Hallo *,
habe mal wieder ein kleines Problem zw. Hard- & Software.
Ich möchte wenn an PB0 ein low (GND) anliegt, einen Interrupt starten
ausführen der in der Routine einen Zähler Incrementiert. Im AVR Studio
4.0 klappt dies ohne Probleme, aber in Hardware leider nicht. Habe den
internen Pullup an PB0 aktiviert und einen Taster angeschlossen der
gegen GND kurzschließt. Wie gesagt per Simulation alles OK, aber
Hardware .... :-(
Kann mir jemand sagen, ob der GCC coder richtig ist, oder ob ich dort
wieder einmal einen "Logicfehler" drinnen hab?!
Hier einmal der GCC Teil, für den Interrupt:
1 | // ********** Impulszähler Start **********
|
2 |
|
3 | ISR(TIMER1_CAPT_vect)
|
4 | {
|
5 | pulse ++;// ISR-Code
|
6 | //später rein gekommen zum debuggen
|
7 | PORTB |= (1 << 3);
|
8 | for(i=0;i<100000;i++){ }
|
9 | PORTB &= ~(1 << 3);
|
10 | }
|
11 | // ********** Impulszähler Ende **********
|
12 |
|
13 | // ICP Interrupt initialisieren
|
14 | TIMSK |= (1<<TICIE1); //((TIMSK | 0b00100000);
|
15 | TCCR1B = (TCCR1B | 0b00100000);
|
Zu Debuggzwecken habe ich die Interruptroutine erweitert und eine LED an
PB2 angeschlossen. Aber nichts. Der ATMEGA8 springt nicht in die
Interruptroutine.
Danke schon mal an euch.