Bonjour
Suite de mes essais
Suite a vos conseils, j'ai essayé la méthode de Hippy a la lettre.
Cela fonctionne très bien, évidemment...
Mais je désire passer 2 octets, donc je fais une modif pour en passer 2, en me servant de B0 comme flag pour les différencier.
Ok ca marche, sauf que si je coupe (volontairement) la liaison Hserout/Hserin, le prog attends...
soit je fais une bêtise, ou cela est du au prog de Hippy.
je suis sur un 08M2 pour l’émetteur, et un 20M2 pour le recepteur.
code émetteur
code récepteur
ps:J'ai lu la doc sur le pic du 20M2 et j'au vu qu'il y a 3 registres "pir".
dans ma méthode j'emploie pir1 pour passer 4 octets, (en 2 fois).
serait il préférable d'utiliser pir1 et pir2?
Merci a vous
Suite de mes essais
Suite a vos conseils, j'ai essayé la méthode de Hippy a la lettre.
Cela fonctionne très bien, évidemment...
Mais je désire passer 2 octets, donc je fais une modif pour en passer 2, en me servant de B0 comme flag pour les différencier.
Ok ca marche, sauf que si je coupe (volontairement) la liaison Hserout/Hserin, le prog attends...
soit je fais une bêtise, ou cela est du au prog de Hippy.
je suis sur un 08M2 pour l’émetteur, et un 20M2 pour le recepteur.
code émetteur
Code:
#Picaxe 08M2
#Terminal Off
#No_Data
; .------ 1 = Disable Hserin pin
; |.----- 0 = Enable Hserout pin
; ||.---- 0 = Don't invert input
; |||.--- 0 = Don't invert output
; ||||.-- 0 = No scratchpad receive
Transmitter: ; |||||
HSerSetup b31250_4, %10000
Do
readadc C.2,b1
readadc C.1,b2
Pause 150
HSerOut 0, ( $A0, b1 )
'b0 = b0 + 1 // 100
pause 200
HSerOut 0, ( $B0, b2 )
Loop
code récepteur
Code:
'test hserin
#Picaxe 20M2
'#Terminal 4800
#No_Data
symbol bp=pinC.6
symbol led=C.7
symbol LCD=C.1
symbol baud =T9600_16
Symbol PIR1 = $11
Symbol PIR1_RCIF = bit5
serout LCD,baud, (254,1)
pause 200
; .------ 0 = Enable Hserin pin
; |.----- 1 = Disable Hserout pin
; ||.---- 0 = Don't invert input
; |||.--- 0 = Don't invert output
; ||||.-- 0 = No scratchpad receive
Receiver: ; |||||
HSerSetup B31250_4, %01000
Pause 2000
SerTxd( "Started", CR,LF )
Do
'Do
Do
PeekSfr PIR1, b0
Loop Until PIR1_RCIF = 1
Pause 100
w0 = $FFFF
HSerIn b0
HSerIn b1
if b0=$A0 then
gosub affi1
endif
if b0=$B0 then
gosub affi2
endif
'Loop Until b0 = $D0 And b1 < $100
'SerTxd(#b1, CR, LF )
if bp=1 then
high led
else low led
endif
'serout LCD,baud,(254,128,"Val1=",#b1," ")
Loop
affi1:
serout LCD,baud,(254,128,"Val1=",#b1," ")
return
affi2:
serout LCD,baud,(254,192,"Val2=",#b1," ")
return
ps:J'ai lu la doc sur le pic du 20M2 et j'au vu qu'il y a 3 registres "pir".
dans ma méthode j'emploie pir1 pour passer 4 octets, (en 2 fois).
serait il préférable d'utiliser pir1 et pir2?
Merci a vous