I2C und Interrupteingänge
Hallo Leute
ich hab ein paar Fragen:
1. Wie kann man einen Eingang(INT0), der Interrupt fähig ist als Interrupteingang festlegen.
2. Bei I2C gibt es ja eine Interruptleitung, kann diese an den oben genannten Interrupteingang angeschlossen werden?
3. Bei der LCD-Erweiterung wird der oben genannte Pin benutzt kann man dies irgendwie verändern?
Vielen Dank im vorraus
Liste der Anhänge anzeigen (Anzahl: 1)
mahlzeit, ich find das ganz interessant mit dem interrupt
ich hab mal folgendes versucht
Code:
void StartExtInt(void)
{
PORTD &= ~(1 << PD2);
DDRD &= ~(1 << PD2); // Switches as Input => ext. Int 1
MCUCR &= ~((1 << ISC00) | (1 << ISC01));// Low level generates interrupt
GICR |= ~(1 << INT0);
}
void StopExtInt(void)
{
GICR &= ~(1 << INT0);
DDRD |= ~(1 << PD2); // Switches as Input => ext. Int 1
PORTD |= ~(1 << PD2);
}
// die ISR hab ich in der prog-file angelegt
SIGNAL (SIG_INTERRUPT0)
{
StopExtInt();
SerWrite("SIG INT0 Done", 13);
StartExtInt();
}
meine frage, wäre das in ordnung um den INT0 port als interrupt zu schalten ?
ausserdem die frage was soll ich mit dem rotanschlus der status LED machen (im Bild mit ? markiert)? muss ich den wegkratzen ? weil wenn ich jetzt CON2 mit VCC überbrücke (mit und ohne widerstand probiert) passiert nix ... aber mein atmega scheint jedesmal neu zu starten wenn ich startswitch(); (ja ich meine startSWITCH()) aufrufe (also der aufruf im interrupt)
wo liegt mein fehler, was muss ich machen um con2 effektiv nutzen zu können ?