Zaczynam zabawe z mikrokontrolerami i chciałem napisac w bascomie na ATiny2313 stoper liczący z dokładnościa do 0,01 ale utknąlem na wyswietlaniu aktualnego czasu na lcd - to znaczy nie ma z tym problemu ale funkcja lcd jest strasznie wolna. Przerwanie zglaszane jest co 10 ms i mam wrażenie ze w tym czasie komenda lcd nie jest w stanie wyslac wszystkiego do wyswietlacza i nastepne zadanie przerwania jest zglaszane podczas obslugi bieżącego co powoduje błędny pomiar czasu.
Ponizej kod:
Moze ktoś juz się zetknął z podobnym problemem ??
Ponizej kod:
$regfile "ATtiny2313.dat"
$crystal 4000000
Dim Setsek As Byte , Dziesek As Byte , Sekjed As Byte , Sekdzies As Byte
Dim Licz As Bit , 10ms As Byte
Config Portd = 124 : Portd = 127
Config Timer1 = Timer , Prescale = 64
Enable Interrupts : Enable Timer1 : On Timer1 Co10ms
Cursor Off
Do : Loop : End
Co10ms:
Timer1 = 64911
Cls
(=65535-64911)impulsów =10ms
If Pind.0 = 0 Then Licz = 1
If Pind.1 = 0 Then Licz = 0
If Licz = 1 Then
Incr Setsek
If Setsek = 10 Then
Setsek = 0
Incr Dziesek
If Dziesek = 10 Then
Dziesek = 0
Incr Sekjed
If Sekjed = 10 Then
Sekjed = 0
Incr Sekdzies
If Sekdzies = 9 Then Sekdzies = 0
End If : End If : End If : End If
Lcd Sekdzies ; Sekjed ; "." ; Dziesek ; Setsek
Return
Moze ktoś juz się zetknął z podobnym problemem ??