Guten Morgen RN-Community,
ich möchte gerne die Tasten meines RN-Control per Interrupt abfragen, um den Ablauf des Hauptprogramms nicht zu stören. Habe mich dazu dumm und dämlich gesucht, aber außer dieser wohlbekannten Seite nichts Verwertbares gefunden:
http://halvar.at/elektronik/kleiner_...rs/interrupts/
Vorraussetzung ist hierbei jedoch, dass die Taster direkt an INT0 oder INT1 angeschlossen sind. Das ist aber beim RN-Control nicht der Fall, dort liegen sie doch über einen Spannungsteiler an PINA.7 (ADC7). Wie ich die Tasten abfrage, ist mir bekannt.
Wie kombiniere ich jetzt den Tasteraufbau des RN-Control mit den Interrupt-Pins? Muss ich nicht das Signal der Taster irgendwie auf einen INT-Pin umbiegen? Warum finde ich dazu nichts im RN, über diese Aufgabenstellung müssten doch schon viele in Verbindung mit dem RN-Control gestolpert sein.
Hier mein bestehender Code:
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
Declare Function GetButton() As Byte
Config Adc = Single , Prescaler = Auto
Config Pina.7 = Input
Porta.7 = 1
Dim bButton As Byte
Do
'Irgendein weiterer Programmablauf.
bButton = GetButton()
Loop
Function GetButton() As Byte
Local Ws As Word
GetButton = 0
Start Adc
Ws = Getadc(7)
Print Ws
If Ws < 1023 Then
Select Case Ws
Case 390 To 400
GetButton = 1
Case 320 To 330
GetButton = 2
Case 250 To 260
GetButton = 3
Case 175 To 185
GetButton = 4
Case 95 To 105
GetButton = 5
End Select
End If
Print GetButton
Waitms 10
End Function
Danke für's Lesen.
Lesezeichen