Forum: Mikrocontroller und Digitale Elektronik Interrupt-Programmierung


von Michael K. (Gast)


Lesenswert?

Hallo ihr Experten,

wie kann ich eine LED per interrupt ein/aus schalten?
Genauer gesagt, will ich z.B nach dem ablauf eines Timers, eine bereits 
leuhtende LED per interrupt ausschalten lassen. Wenn der 
interruptroutiene abgearbeitet ist soll die LED wieder leuchten, und das 
ganze nochmal von vorne(also eigentlich einfach ein Blinkverhalten 
erzeugen). kann mir vielleicht jemand ein entsprechendes Code-Beispiel 
dazu zeigen, vielleicht mit einer kurzen Erklärung dazu? Es geht mir ja 
nur darum das Interrupt-Programmierung an sich besser verstehen zu 
können und vorallem zu wissen wie man Thumb2 Befehle nutzten kann.
Mein system ist übrigens: LPC1768. Ein Cortex-M3

Gruß und danke schonmal im voraus.

von Krapao (Gast)


Lesenswert?

Hier ist ein Beispiel mit timer interrupt für den LPC1768
http://gvworks.blogspot.com/2011/01/interrupts-in-lpc1768.html

Statt eine LED zu toggeln könntest du deine Anforderung so einbringen 
(Beispiel #1 von oben):
1
void TIMER0_IRQHandler (void)
2
{
3
    if((LPC_TIM0->IR & 0x01) == 0x01) // if MR0 interrupt
4
    {
5
        LPC_TIM0->IR |= 1 << 0; // Clear MR0 interrupt flag
6
        LPC_GPIO1->FIOPIN |= (1 << 29); // active-high LED ON
7
8
        // hier der eigene IRQ-Code...
9
10
        LPC_GPIO1->FIOPIN &= ~(1 << 29); // active-high LED OFF
11
    }
12
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.