Hallo zusammen,
seit einiger Zeit arbeite ich an meiner ersten uC Schaltung mt dem
ATMega16 und dank diesem Forum konnte ich immer alles zum Laufen bringen
;-)
Nun bin ich aber leider an einem Punkt, wo ich nicht weiterkomme und
auch eine intensive Suche im Internet bringt mich nicht weiter.
Ich habe das Beispiel aus den FAQ verwendet, um ein Interrupt beim
Overflow von Counter0 auszulösen. Leider wird dieses Interrupt aber nie
aufgerufen.
Hier nochmal das Beispiel:
1 | #define F_CPU 14745600UL
|
2 | #include <avr/io.h>
|
3 | #include <avr/interrupt.h>
|
4 |
|
5 | ISR( TIMER0_OVF_vect ) // Overflow Interrupt Vector
|
6 | {
|
7 | static uint8_t swTeiler = 0;
|
8 |
|
9 | swTeiler++;
|
10 | if( swTeiler == 200 ) {
|
11 | swTeiler = 0;
|
12 |
|
13 | PORTB &= ~(1 << PB0);
|
14 | }
|
15 | }
|
16 |
|
17 | int main()
|
18 | {
|
19 |
|
20 | DDRB |= (1<<PB0)|(1<<PB1);
|
21 | PORTB |= (1<<PB0)|(1<<PB1);
|
22 |
|
23 | TCCR0 = (1<<CS01);
|
24 | TIMSK |= (1<<TOIE0);
|
25 |
|
26 |
|
27 | sei();
|
28 |
|
29 |
|
30 | while( 1 )
|
31 | {
|
32 | }
|
33 | }
|
An Port B sind LEDs, die auch leuchten, aber leider geht die an PB0
nicht aus :(
Habe im Interrupt selbst auch schon alles außer PORTB &= ~(1 << PB0);
gelöscht, was zu keiner Veränderung führt.
Kann es an der interrupt.h liegen, die oben eingebunden wird?
Kann der Mikrocontroller derart defekt sein, dass nur der Timer nicht
funktioniert?
Den Systemtakt habe ich zu Testzwecken mal auf 1MHZ vom internen
Oszilator gestellt, ohne Erfolg.
Würd mich über einen Tipp echt freuen.
Viele Grüße
Philipp