Witam napisałem programik w bascomie który wysyła po uarcie do drugiej atmegi8 temperature moje pytanie brzmi :
1 atmega wysyła mi temperature np.260 a druga odbiera mi to w pojedynczych bajtach czyli 2 6 0 jak to połączyć razem? abym mógł podzielić 260 przez 10
Nadajnik:
$regfile = "m8def.dat" 'Amega8
$crystal = 7200000 'kwarc
$baud = 1200 'predkosc transmisji
'$hwstack = 32
'$swstack = 10
'$framesize = 40
Config Pinb.1 = Output 'dioda
Config Pinb.2 = Output 'dioda
Config Pinc.1 = Output 'dioda
Config 1wire = Portd.7 '1wire
Dzielona Alias Portb.2
Dczerwona Alias Portb.1
Dzolta Alias Portc.1
Declare Sub Odczyt_temp
Dim Bd(9) As Byte
Dim Tmp As Byte
Dim T As Integer
Dim T1 As Integer
Wait 1
Set Dzielona
Wait 1
Set Dczerwona
Wait 1
Set Dzolta
Wait 1
Do
Call Odczyt_temp
Print T;
Reset Dzielona
Waitms 25
Set Dzielona
Wait 4
Loop
End
Sub Odczyt_temp 'procedura odczytu temp
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
1wreset
1wwrite &HCC
1wwrite &HBE
Bd(1) = 1wread(9)
Tmp = Bd(1) And 1 ' 0.1C
If Tmp = 1 Then Decr Bd(1)
T = Makeint(bd(1) , Bd(2))
T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
T1 = T1 / Bd(8) : T = T + T1 : T = T / 10
End Sub
Odbiornik
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 1200
'$hwstack = 32
'$swstack = 10
'$framesize = 40
Config Lcd = 16 * 1
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , Rs = Portd.7
Dim A(3) As Byte
'Dim B As Byte
'Dim C As Byte
'Dim D As Byte
Cls
Cursor Off
Do
A(1) = Waitkey()
A(2) = Waitkey()
A(3) = Waitkey()
'D = Waitkey()
Lcd Chr(a(1)) ; Chr(a(2)) ; Chr(a(3))
Waitms 100
Cls
Loop
End
1 atmega wysyła mi temperature np.260 a druga odbiera mi to w pojedynczych bajtach czyli 2 6 0 jak to połączyć razem? abym mógł podzielić 260 przez 10
Nadajnik:
$regfile = "m8def.dat" 'Amega8
$crystal = 7200000 'kwarc
$baud = 1200 'predkosc transmisji
'$hwstack = 32
'$swstack = 10
'$framesize = 40
Config Pinb.1 = Output 'dioda
Config Pinb.2 = Output 'dioda
Config Pinc.1 = Output 'dioda
Config 1wire = Portd.7 '1wire
Dzielona Alias Portb.2
Dczerwona Alias Portb.1
Dzolta Alias Portc.1
Declare Sub Odczyt_temp
Dim Bd(9) As Byte
Dim Tmp As Byte
Dim T As Integer
Dim T1 As Integer
Wait 1
Set Dzielona
Wait 1
Set Dczerwona
Wait 1
Set Dzolta
Wait 1
Do
Call Odczyt_temp
Print T;
Reset Dzielona
Waitms 25
Set Dzielona
Wait 4
Loop
End
Sub Odczyt_temp 'procedura odczytu temp
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
1wreset
1wwrite &HCC
1wwrite &HBE
Bd(1) = 1wread(9)
Tmp = Bd(1) And 1 ' 0.1C
If Tmp = 1 Then Decr Bd(1)
T = Makeint(bd(1) , Bd(2))
T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
T1 = T1 / Bd(8) : T = T + T1 : T = T / 10
End Sub
Odbiornik
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 1200
'$hwstack = 32
'$swstack = 10
'$framesize = 40
Config Lcd = 16 * 1
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , Rs = Portd.7
Dim A(3) As Byte
'Dim B As Byte
'Dim C As Byte
'Dim D As Byte
Cls
Cursor Off
Do
A(1) = Waitkey()
A(2) = Waitkey()
A(3) = Waitkey()
'D = Waitkey()
Lcd Chr(a(1)) ; Chr(a(2)) ; Chr(a(3))
Waitms 100
Cls
Loop
End