Werd aus dem letzten Kommentar nicht ganz schlau, weil mir glaub ich der
Unterschied immer noch nicht klar ist.
Ich hab im Programm zwei ISR's eine für den INT0 und eine für den PCINT1
hab jetzt die entsprechenden Stellen im Datenblatt die ich gefunden hab
durchgelesen.
Hab die zugehörige Routine mit richtigem Vektor und hab soweit alle
zugehörigen Bit's gesetzt, oder ist da grundlegend was falsch?
1 | /*DDRB &= ~(1<<PB1);*/
|
2 | EICRA = /*(1<<ISC01)|*/(1<<ISC00);
|
3 | //EIMSK = (1<<INT0);
|
4 | PCICR = (1<<PCIE0);
|
5 | PCMSK0 = (1<<PCINT1);
|
6 |
|
7 |
|
8 | /*ISR(INT0_vect)
|
9 | {
|
10 | cli();
|
11 | //LED_PORT ^= (1<<LED1); //LED1 anschalten
|
12 | sei();
|
13 | }*/
|
14 |
|
15 | ISR(PCINT1_vect)
|
16 | {
|
17 | //cli();
|
18 | if(hallindi==1)
|
19 | hallindi=0;
|
20 | else
|
21 | hallindi=1;
|
22 | //sei();
|
23 | }
|
Wie gesagt es geht mir darum das der Interrupt vom PCINT1 nicht das
gesamte Program neu startet. Was löst den Fehler für diesen Reset aus?