Ben sinds 2 dagen met een mega88 aan het stoeien, en ben nu met de timers bezig. Kan iemand mij vertellen of ik een beetje goed gaat met de code? Dit is een interrupt routine waar een externe interrupt binnen komt op INT0, die dan weer een timer start die dan weer elke 102us een interrupt geeft
De rest van het programma is niet echt spannend, want is er nog niet.
Isr_dcc_in:
'Er komt een DCC signaal binnen
'1 klok-puls = 1 / (f_crystal / prescaler)
' = 1 / (10000000 / 1024)
' = 102.4us
'87us / 102.4us = 0.85 (afgerond 1) klokpulsen
'timer1 = 16bits, dus 65535 - 1 = 65534
'
'Meetbereik ligt tussen 58us en 116us
'1 * 102.4us = 102.4us.
Timer1 = 65534
Start Timer1
'Set Intf0 'INT0 = 1, reset INT0 interrupt '
Return
Isr_87us:
'ALs het goed is een interrupt na ongeveer 102us
Stop Timer1
Dcc = Pind.2 'een gemeten 0 is een DCC '1' en een
Dcc = Not Dcc 'gemeten 1 is een DCC '0'
Toggle Led1 'rode led
' Locate 2 , Pos : Lcd Dcc
' Incr Pos
' If Pos > 16 Then
' Pos = 1
' Wait 2
' End If
Return
Mocht het niet kloppen, hoe stel ik de tijd dan goed in
Ik weet dat het LCD gebeuren zwaar 'fout' is in een interrupt routine, maar is alleen voor debug en gaat er later helemaal uit
Ricco