Hallo izaseba,
ich habe es mal ausprobiert. Allerdings fehlt in deinem Programm noch die Initialisierung von Timer2. Damit läuft die Infrarot Schnittstelle nicht.
Nachdem ich das korrigiert hatte, funktionierte alles prima. Die Werte werden dauerhaft im EEPROM gespeichert, wenn ich das 2 .Testprogramm brenne, werden die korrekten Taster erkannt und ausgegeben![]()
Hier noch meine Änderungen (für beide Testprogramme):
@sternthaler _delay_ms ist als Funktion eigentlich schon lange implementiert. In früheren AVR Versionen stand die Header Datei im AVR Ordner. Probier mal:Code:ISR (TIMER2_OVF_vect) { TCNT2 += 0x25; } ... void init(void) { /* Timer2 Init */ TCCR2 = (1<<WGM20) | (1<<WGM21) | (1<<COM20) | (1<<COM21) | (1<<CS20); OCR2 = 0x91; // duty cycle fuer 36kHz TIMSK |= (1<<TOIE2); // 36kHz counter /*Statusled, IRLED Init*/ DDRB =(1<<PB0) | (1<<PB3); ...
F_CPU muß allerdings auch noch definiert sein, damit es funktioniert. Das habe ich im Makefile geändert:Code:#include<avr/delay.h>
Code:CFLAGS = -g -O$(OPT) -DF_CPU=8000000UL -I../../lib/inc\ -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \ -Wall -Wstrict-prototypes \ -Wa,-ahlms=$(<:.c=.lst)







Zitieren

Lesezeichen