Witam,
bascom wysypuje mi error 1 w tym programie:
Wg mnie wszystkie port/pin są poprawne - nie wiem o co chodzi.
Mógłby ktoś podpowiedzieć co popsułem?
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 SubWg mnie wszystkie port/pin są poprawne - nie wiem o co chodzi.
Mógłby ktoś podpowiedzieć co popsułem?