logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega Uart Bascom pytanie

Kubaand 01 Kwi 2010 18:53 2278 2
REKLAMA
  • #1 7908122
    Kubaand
    Poziom 10  
    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
  • REKLAMA
  • Pomocny post
    #2 7908647
    Dexter77
    Poziom 28  
    2*100+6*10+0*1 ?

    temp= bajtpierwszy*100+bajtdrugi*10 i masz juz nawet podzielone przez 10
  • #3 7910762
    Kubaand
    Poziom 10  
    Dzięki
    To było za proste żeby na to wpaść :)
    Pozdrawiam
REKLAMA