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

[Atmega8][Bascom] Termometr.

ma16 25 Paź 2009 12:11 2018 1
REKLAMA
  • #1 7172470
    ma16
    Poziom 13  
    Witam

    Jestem początkujący w sprawach programowania i robię sobie przykłady z książki Marcina Wiązania. Podczas pisania programu do odczytu z magistrali 1wire wyskakuje mi błąd takie błędy:
    
    Error : 40    Line :   0     Variable can not be used with RESET [PORT1]  , in File : 
    Error : 41    Line :   0     Variable can not be used with SET [PORT1]  , in File : 
    Error : 40    Line :   0     Variable can not be used with RESET [PORT1]  , in File : 
    


    Tutaj jest program do tego
    
    $regfile = "m8def.dat"                                      ' zdeklarowane dla Atmegi8
    $crystal = 8000000                                          ' Taktowanie wewnetrzne 1mHz
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5
    
    Config 1wire = Portc.0                                      ' ustawienie pinu dla magistrali 1wire (czujnik temperatury)
    Declare Sub Odcz_temp
    
    Dim Temp(2) As Byte                                         ' adres czujnika temperatury
    'definicja znaku stopnia
    Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32
    Do
       Call Odcz_temp
       Cls
       If Temp(2) = 0 Then
          Lcd "Temp: " ; Temp(1) ; Chr(0) ; "C"
       Else
          Lcd "Temp: -" ; Temp(1) ; Chr(0) ; "C"
       End If
    Loop
    End
    
    Sub Odcz_temp
    
       1wreset
       1wwrite &HCC
       1wwrite &H44
       Waitms 750
       1wreset
       1wwrite &HCC
       1wwrite &HBE
    
       Temp(1) = 1wread(2)
    
       1wreset
       If Err = 1 Then
          Cls
          Lcd "Brak układu"
    
          Do
          Loop
       End If
       If Temp(2) > 0 Then
          Temp(1) = 256 - Temp(1)
       End If
       Temp(1) = Temp(1) / 2
    End Sub
    

    Proszę o pomoc z góry dziękuje. Program to Bascom Avr 1.11.9.5
  • REKLAMA
  • Pomocny post
    #2 7172503
    grysek
    Poziom 19  
    Brak kropki w deklaracji pinów wyświetlacza ma byc:
    DB6 = portb.1


    Następnym razem sprawdz dokładnie tego typu błedy i nie dodawaj tematu z tak błahego powodu
REKLAMA