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

[atmaga8][bascom] error 1

Ficu 11 Mar 2010 16:45 1407 2
REKLAMA
  • #1 7814770
    Ficu
    Poziom 31  
    Witam,
    bascom wysypuje mi error 1 w tym programie:
    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 1a
    Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.4 , Db6 = Portb.0 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1
    Config Pinc.5 = Input
    Config Pinc.4 = Input
    Config Timer1 = Counter , Edge = Rising                     'konfiguracja Timera do zliczania impulsów
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    S1 Alias Pinc.4
    S2 Alias Pinc.5
    Set Portc.5
    Set Portc.4
    
    Dim Wynik As Long
    Dim I As Byte
    Dim Wart_ac As Word
    Dim V As Single
    Dim Wart_nap As String * 4
    Dim Sekundy As Byte
    Dim Minuty As Byte
    Dim Godziny As Byte
    
    
    Declare Sub Obrotomierz
    Declare Sub Pomiar
    Declare Sub Ustaw_zegar_godz
    Declare Sub Ustaw_zegar_minuty
    Declare Sub Ustaw_zegar_sekundy
    Declare Sub Zm_ustaw
    Declare Sub Odcz_pcf
    
    
    
    Cursor Off
    Do
       Cls
       Locate 1 , 1
       Lcd "Poczekaj az kontrolki zgasna"
       Waitms 200
       For I = 1 To 20
       Shiftlcd Left
       Waitms 200
       Next I
       Cls
       Locate 1 , 1
       Lcd "Odpal"
       Locate 2 , 1
       Lcd "silnik"
       Wait 1
    
       Goto Pomiar
    Loop
    End
    
    
    
    Sub Obrotomierz
    Do
       Timer1 = 0                                               'zeruj licznik
       Start Timer1                                             'zacznij liczyć
       Wait 1                                                   'zliczaj impulsy przez 1 sekundę
       Stop Timer1                                              'przestań liczyć
    
       Wynik = Timer1 * 10                                      'wynik zliczania w czasie 1s mnożymy przez 60 dla otrzymania wyniku w: obr/min
    
       Cls
       Lcd "Obroty:"
       Locate 2 , 1
       Lcd ; Wynik
    Loop
    End Sub
    
    Sub Pomiar
    Start Adc
    Do
       Wart_ac = Getadc(0)
       Wart_ac = Wart_ac * 20
       Cls
       Locate 2 , 1
       V = Wart_ac * 0.0049
       Wart_nap = Fusing(v , "#.&&")
       Lcd Wart_nap ; "V"
       Waitms 500
    Loop
    End Sub
    
    
    
    
    
    Sub Ustaw_zegar_godz
    Do
       Cls
       Lcd "Godziny"
       Locate 2 , 1
       Lcd Godziny ; ":" ; Minuty ; ":" ; Sekundy
    
    If Godziny = 24 Then
       Godziny = 0
    End If
    If S2 = 1 Then
    Gosub Ustaw_zegar_minuty
    End If
    Loop
    End Sub
    
    Sub Ustaw_zegar_minuty
    Do
       Cls
       Lcd "Minuty"
       Locate 2 , 1
       Lcd Godziny ; ":" ; Minuty ; ":" ; Sekundy
    
    If Minuty = 60 Then
       Minuty = 0
    End If
    If S2 = 1 Then
    Gosub Ustaw_zegar_sekundy
    End If
    Loop
    End Sub
    
    Sub Ustaw_zegar_sekundy
    Do
       Cls
       Lcd "Sekundy"
       Locate 2 , 1
       Lcd Godziny ; ":" ; Minuty ; ":" ; Sekundy
    
    If Sekundy = 60 Then
       Sekundy = 0
    End If
    If S2 = 1 Then
    Gosub Zm_ustaw
    End If
    Loop
    End Sub
    
    
    Sub Zm_ustaw
    Sekundy = Makebcd(sekundy)
    Minuty = Makebcd(minuty)
    Godziny = Makebcd(godziny)
    I2cstart
    I2cwbyte 162
    I2cwbyte 0
    I2cwbyte 8
    I2cstop
    I2cstart
    I2cwbyte 162
    I2cwbyte 2
    I2cwbyte Sekundy
    I2cwbyte Minuty
    I2cwbyte Godziny
    I2cstop
    Cls
    Lcd "Zapis.."
    Wait 1
    Gosub Obrotomierz
    End Sub
    
    
    Sub Odcz_pcf
    I2cstart
    I2cwbyte 162
    I2cwbyte 2
    I2cstart
    I2cwbyte 163
    I2crbyte Sekundy , Ack
    I2crbyte Minuty , Ack
    I2crbyte Godziny , Nack
    I2cstop
    Sekundy = Makedec(sekundy)
    Minuty = Makedec(minuty)
    Godziny = Makedec(godziny)
    End Sub

    Wg mnie wszystkie port/pin są poprawne - nie wiem o co chodzi.
    Mógłby ktoś podpowiedzieć co popsułem?
  • REKLAMA
  • Pomocny post
    #2 7814916
    alien_audio
    Poziom 21  
    Witam.
    Brak konfiguracji szyny I2C
    kod: np:

    Config Sda = Portc.4
    Config Scl = Portc.5
  • #3 7815007
    Ficu
    Poziom 31  
    A no fakt :oops:
    Po zdefiniowaniu scl i sda wszystko się kompiluje.
    Dzięki!
REKLAMA