Guten Morgen alle zusammen.
Ich hab hier ein Board mit einem AT90CAN128 drauf. Um das Board zu
testen, wollte ich die LED auf dem Board blinken lassen. Programmieren
tu ich mit dem AVR Studio und den uC brenn ich mit dem Atmel JTAGICE
mkII über USB. Beim Debuggen mit dem Simulator funktioniert alles
einwandfrei. Wenn ich aber beobachte, was der uC mit dem Programm macht,
versteh ich die Welt nicht mehr. Hier erstmal mein Testprogramm:
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | #ifndef F_CPU
|
4 | #define F_CPU 12000000UL
|
5 | #endif
|
6 |
|
7 | int main (void) {
|
8 |
|
9 |
|
10 | DDRC |= (1 << PC0);
|
11 | PORTC |= (1 << PC0);
|
12 |
|
13 |
|
14 | while (1) {
|
15 |
|
16 | PORTC &= ~(1 << PC0);
|
17 | _delay_ms(200);
|
18 | PORTC |= (1 << PC0);
|
19 | _delay_ms(200);
|
20 |
|
21 |
|
22 | }
|
23 | return 0;
|
24 | }
|
Beim Live-Debuggen springt er mir nach der ersten delay Funktion wieder
aus der while-Schleife und fängt bei
wieder an.
Was soll das?
Weiss jemand, warum der das macht? Ich schnalls nicht.