Hallo zusammen Ich habe folgenden Code:
1 | /*
|
2 | * main.c
|
3 | *
|
4 | * Created on: 25.02.2012
|
5 | * Author: darkhedie
|
6 | */
|
7 | |
8 | #include <avr/io.h> |
9 | #include <util/delay.h> |
10 | #include <avr/interrupt.h> |
11 | |
12 | volatile unsigned char ucDelay = 0; |
13 | |
14 | #define Out_0 PORTB &= ~(1<<PB3);
|
15 | #define Out_1 PORTB |= (1<<PB3);
|
16 | |
17 | ISR(PCINT0_vect) |
18 | {
|
19 | unsigned char ucTest = 0; |
20 | ucDelay++; |
21 | ucTest = ucDelay; //// Mit diesem werden 3000Bytes angehängt |
22 | |
23 | _delay_ms(ucTest ); |
24 | Out_1; |
25 | _delay_ms(250); |
26 | Out_0; |
27 | |
28 | }
|
29 | |
30 | |
31 | int main(void) |
32 | {
|
33 | DDRB = 0xFB; |
34 | |
35 | GIMSK |= (1<<PCIE); //Interrupt Aktivieren |
36 | PCMSK |= (1<<PCINT2); |
37 | sei(); |
38 | |
39 | |
40 | while(1) |
41 | {
|
42 | |
43 | }
|
44 | }
|
Wenn ich im Interrupt auf die Globale Variable umkopieren oder direkt der DelayFunktion übergeben möchte, so fügt der Compiler der Program Section mal eben 3000 Bytes an. Woran kann das liegen? Danke schonmal