'-------------------------------------------------------------------------------
' IGR.BAS
' File : IGR.BAS
' Autor : Michael Ehrhardt
' Version : 1.0
' CPU : AT90S2313
' Begin : 26.09.2002
' Update : 27.09.2002
' Einlesen des IGR's MB101B-100 MEGATRON Elektronik AG&Co.
'-------------------------------------------------------------------------------
Igr_a Alias Pind.2 ' IGR-Kanal A auf D2
Igr_b Alias Pind.3 ' IGR-Kanal B auf D3

Dim Count As Integer

Config Igr_a = Input ' Input für IGR-Kanal A (INT0)
Config Igr_b = Input ' Input für IGR-Kanal B

On Int0 Int0_int ' initialisiert den INT0 Interrupt
Config Int0 = Falling ' Interrupt auf fallende Flanke

'Portd.2 = 1 ' IGR-Kanal A auf High (Pull Up)
'Portd.3 = 1 ' IGR-Kanla B auf High (Pull Up)

Enable Interrupts ' gibt Interrupts generel frei
Enable Int0 ' gibt INT0 frei

Count = 0 ' Zähler = 0
Do
Print Count ' gibt Zähler seriell aus
Loop
End


' Interrupt Handler für Int0, ausgelöst durch fallende Flanke am IGR-Kanal A----
Int0_int:
Disable Int0 ' sperre INT0 während der Abarbeitung
If Igr_b = 1 Then Incr Count Else Decr Count
Delay ' 1000 µs warten zum Entprellen
Enable Int0 ' gibt INT0 wieder frei
Return ' Interruptreturn
' Ende Int0 --------------------------------------------------------------------