Hallo Leuts,
nach vielen Jahren habe ich mal wieder mein Olimexboard mit dem Mega16
bestückt und bin am probieren.
Mein AVR Dragon funzt einwandfrei, daran kann es nicht liegen.
An Port B0 ist eine LED angeschlosen, die eifnach nur blinken soll: Aber
ich kann den Endwert der for-Schelifen ändern wie ich will, es tut sich
nichts.
Wenn ich nur den Port einschalte oder ausschalte, also nur EINE
Anweisung in der while schleife, dann geht es.
Hat jemand eine rettende Idee ?
1 | #define __AVR_ATmega16__ 1
|
2 | #define OSCSPEED 8000000 /* in Hz */
|
3 |
|
4 | #include "avr/io.h"
|
5 |
|
6 |
|
7 | void Initialize()
|
8 | {
|
9 | PORTB = 0x01; //Led is set off
|
10 | PORTC = 0x00;
|
11 | PORTD = 0x00;
|
12 |
|
13 | DDRB = 0x01; // Led is set as output
|
14 | DDRC = 0x01;
|
15 | DDRD = 0x01;
|
16 |
|
17 | }
|
18 |
|
19 | int main()
|
20 | {
|
21 | unsigned long l;
|
22 | Initialize();
|
23 | while (1)
|
24 | {
|
25 | PORTB = 0xFF;
|
26 | PORTD = 0xFF;
|
27 | for(l=0;l<100000;l++)
|
28 | ;
|
29 | PORTB = 0x00;
|
30 | PORTD = 0x00;
|
31 | for(l=0;l<100000;l++)
|
32 | ;
|
33 | }
|
34 | return 0;
|
35 | }
|