Hallo Leute,
Eigentlich Programmiere ich PIC. Nun aber liegt ein ATmega328P vor mir,
auf diesen möchte ich den PCINT0 Interrupt laufen lassen. Er soll
ausgelöst werden wenn der PIN auf HIGH steht. Ich habe nun viele
möglichkleiten ausprobiert, aber er springt mir nur beim Initialisieren
in den Interrupt! Nun wollte ich fragen ob jemand erkennen kann was ich
da falsch gemacht habe.
Den Port habe ich folgendermaßen Initialisiert dazu dann auch noch
Interrupt enabled
1 | DDRB |= 0x00;
|
2 |
|
3 | PCICR |= (1 << PCIE0);
|
4 | PCMSK0 |= (1 << PCINT0);
|
Damit rufe ich den Interrupt auf:
1 | ISR(PCINT0_vect)
|
2 | {
|
3 | PORTD |= (1 << PD4);
|
4 | }
|
5 |
|
6 |
|
7 | void main (void)
|
8 | {
|
9 | sei();
|
10 |
|
11 | while(1)
|
12 | {
|
13 | PORTD &= ~(1 << PD4);
|
14 | }
|
15 | }
|
Bei diesem Beispiel soll eine LED so lang leuchten wie der Interrupt
anliegt.
Habe ich da was falsch gemacht?
Ich danke für Hilfe!
Grüße, Arthur