Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Atmega8][Bascom] Termometr.

ma16 25 Oct 2009 12:11 1928 1
  • #1
    ma16
    Level 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:
    Code:

    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
    Code:

    $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
  • Helpful post
    #2
    grysek
    Level 19  
    Brak kropki w deklaracji pinów wyświetlacza ma byc:
    Code:
    DB6 = portb.1


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