Hallo zusammen
Ich teste im Moment meinen ATmega32 ein wenig.
Am uC hängt ein 16MHz Quarz welcher korrekt konfiguriert wurde
(_delay_ms() funktioniert)
Mein Code:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 | #include <avr/pgmspace.h>
|
4 | #include <util/delay.h>
|
5 |
|
6 | ISR(TIMER0_COMP_vect) {
|
7 | PORTC ^= (1<<PC1);
|
8 | }
|
9 |
|
10 | int main(void) {
|
11 | DDRC |= (1<<PC0);
|
12 | DDRC |= (1<<PC1);
|
13 |
|
14 | TCCR0 = (1<<CS02) | (1<<WGM01); // /64 | CTC mode
|
15 | OCR0 = 97; // => 99.328ms @ 16 MHz
|
16 | TIMSK |= (1<<OCIE0);
|
17 | sei();
|
18 |
|
19 | for(;;) {
|
20 | _delay_ms(100);
|
21 | PORTC ^= (1<<PC0);
|
22 | }
|
23 | }
|
Eine LED an PC0 blinkt wie erwartet mit 10Hz. Die LED an PC1 leuchtet
allerdings nur schwach (50%). Es schaut so aus als wäre der Prescaler
nicht aktiv.
Weiss jemand warum das so sein könnte?
Vielen Dank & Grüsse
prog0