Gast
#5401312
Hallo,
habe mich an interrupts probiert und jetzt das problem dass die Befehle
EIMSK und ISR (INT0_vect) nicht erkannt werden.
Hier der Programmauschnitt:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#include "lcd.h"
/* Der CPU-Takt wird definiert; Dieser entspricht der Frequenz des
Quarz. */
#define F_CPU 3686400UL
/* Start des Programmes. */
int main(void) {
EIMSK = (1<<INT0);
sei();
ISR (INT0_vect) // Interrupt Service Routine für externen Interrupt
INT0
{
Menue++;
_delay_ms(100); // kurzes delay zum "Entprellen"
}
DDRD &= ~(1 << DDD2); // Int0-Pin ist Eingang
PORTD |= (1 << PORTD2); // Pullup aktiv
// Hier folgen die Konfigurationen zum externen Interrupt INT0
MCUCR |= (1 << ISC01); // INT0 trigger bei fallender Flake an PD2
GICR |= (1 << INT0); // INT0 aktivieren
lcd_init(); // LCD wird initialisiert, angeschaltet und gelöscht.
lcd_on();
lcd_clear();
lcd_write_s("Drahtmessung");
DDRC= 0x00; //Alles Eingänge
PORTC= 0xFF;
DDRB=0b11111110; //Alles Ausgänge
PORTB=0b11111110;