Hi,
weil mir mein eigener Vorschlag nicht ganz geheuer war, habe ich das mal mit ATtiny45 und nachgebauter Eingangsschaltung des RN-Control auf Steckbrett ausprobiert. Funktioniert! Allerdings gibt es Probleme bei mir mit Prellen der Tasten und hab da kein wirksames Gegenmittel. Könntest mal ausprobieren und beurteilen, ob das akzeptabel ist - Es werden manchmal die Tastenwerte nicht korrekt bzw. schwankend gemessen, so daß es selten zu Fehlerkennungen kommen kann.
Der Code ist ein Auszug mit den wichtigen Teilen. Hab versucht die Mega32 Unterschiede laut Datenblatt zu kommentieren.
Nicht vergessen die Brücke zwischen PA7 (ADC7) und PD2 (INT0) auf Mega32
OHNE GEWÄHR 
Code:
FÜR ATTINY45 !!!
$hwstack = 48 'hwstack reichlich wg Interruptroutine
Dim Adc_low As Byte
Dim Adc_high As Byte
Dim Adc_result As Word At Adc_low Overlay
Config Adc = Free , Prescaler = Auto
Adcsrb = Adcsrb Or &B00000010 'ADC von free running nach INT0 trigger wechseln
'SFIOR = SFIOR or &B01000000 auf Mega32
Admux = Admux Or &B00000011 'channel ADC3 (PB3) selected
'Admux = Admux Or &B00000111 - channel 7 auf Mega32
On Adc ISR_ADC_Result_Evaluation 'Wenn Messung fertig -> Interrupt zur Auswertung
Config Int0 = Falling 'INT0 auslösen bei fallender Flanke
Config Portb.2 = Input 'PB2 (INT0) als INPUT (anpassen auf Mega32)
Config Portb.3 = Input 'PB3 (ADC3) als INPUT (anpassen auf Mega32)
Portb.2 = 1 'Pullup an PB2(INT0) einschalten (anpassen auf Mega32)
Enable Adc 'enable adc interrupt
Enable Interrupts
DO
'Hauptprogramm
LOOP
ISR_ADC_Result_Eavluation:
Adc_low = Adcl
Adc_high = Adch
Adc_result 'Durch Overlay steht 10bit Meßwert in ADC_result zur Verfügung
Waitms 100 'Entprellung??? Etwas besser aber nicht das Gelbe vom Ei. Geht auch ohne wait
Gifr.intf0 = 1 'clear INT0 flag da nicht durch INT0 ISR gelöscht wird
Return
PS
Warum nicht mit GetAdc auslesen
Hatte selbst mal versucht GETADC im Interrupt zu nutzen und bin damit nicht klargekommen. Bin der Sache aber nicht auf den Grund gegangen und mache das jetzt so wie im Code gezeigt über die ADCH, ADCL register.
Gruß
Searcher
Lesezeichen