Wenn ich folgenden Code
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 | // Define PORT for LEDs in DVK90CAN1.
|
4 | #define LED_PORT_IN PINA
|
5 | #define LED_PORT_DIR DDRA
|
6 | #define LED_PORT_OUT PORTA
|
7 |
|
8 | void led_init(void) {
|
9 | //-- Set direction
|
10 | LED_PORT_DIR = 0xFF;
|
11 | //-- Clear LEDs.
|
12 | LED_PORT_OUT = 0x00;
|
13 | }
|
14 |
|
15 | void write_led(unsigned char led_display) {
|
16 | LED_PORT_OUT = led_display;
|
17 | }
|
18 |
|
19 | int main (void) {
|
20 | led_init();
|
21 | while(1) {
|
22 | _delay_ms(500);
|
23 | write_led(0xFF);
|
24 | _delay_ms(500);
|
25 | write_led(0x00);
|
26 | }
|
27 | return 0;
|
28 | } // end of main
|
standardmäßig compiliere und flashe, blinken die LED erwartungsgemäß.
Setze ich allerdings in den "configuration options" die Startadresse von
.text auf 0xF000 (Bootloaderbereich), compiliere und flashe erneut, so
passiert nichts mehr.
In der Simulation läuft das Programm mit beiden Startadressen
einwndfrei.
Was mache ich falsch?
Ingeborg