Hai,

so wie es aussieht, übersetzt der Compiler die Variablen-Deklaration überhaupt nicht ?! HAb mal den Code bis zur ersten ISR gepostet. Die Variablen-Deklaration müsste vorher sein, ich finde sie aber nicht.

Code:
main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000356  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000004  00800060  00000356  000003ea  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000001  00800064  00800064  000003ee  2**0
                  ALLOC
  3 .stab         00000360  00000000  00000000  000003f0  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000071  00000000  00000000  00000750  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000020  00000000  00000000  000007c1  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 00000060  00000000  00000000  000007e1  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000202  00000000  00000000  00000841  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 0000012f  00000000  00000000  00000a43  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   00000217  00000000  00000000  00000b72  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  00000060  00000000  00000000  00000d8c  2**2
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    00000127  00000000  00000000  00000dec  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    00000058  00000000  00000000  00000f13  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0e c0       	rjmp	.+28     	; 0x1e <__ctors_end>
   2:	27 c0       	rjmp	.+78     	; 0x52 <__bad_interrupt>
   4:	26 c0       	rjmp	.+76     	; 0x52 <__bad_interrupt>
   6:	26 c0       	rjmp	.+76     	; 0x54 <__vector_3>
   8:	37 c0       	rjmp	.+110    	; 0x78 <__vector_4>
   a:	23 c0       	rjmp	.+70     	; 0x52 <__bad_interrupt>
   c:	22 c0       	rjmp	.+68     	; 0x52 <__bad_interrupt>
   e:	21 c0       	rjmp	.+66     	; 0x52 <__bad_interrupt>
  10:	20 c0       	rjmp	.+64     	; 0x52 <__bad_interrupt>
  12:	1f c0       	rjmp	.+62     	; 0x52 <__bad_interrupt>
  14:	1e c0       	rjmp	.+60     	; 0x52 <__bad_interrupt>
  16:	1d c0       	rjmp	.+58     	; 0x52 <__bad_interrupt>
  18:	1c c0       	rjmp	.+56     	; 0x52 <__bad_interrupt>
  1a:	1b c0       	rjmp	.+54     	; 0x52 <__bad_interrupt>
  1c:	1a c0       	rjmp	.+52     	; 0x52 <__bad_interrupt>

0000001e <__ctors_end>:
  1e:	11 24       	eor	r1, r1
  20:	1f be       	out	0x3f, r1	; 63
  22:	cf ed       	ldi	r28, 0xDF	; 223
  24:	cd bf       	out	0x3d, r28	; 61

00000026 <__do_copy_data>:
  26:	10 e0       	ldi	r17, 0x00	; 0
  28:	a0 e6       	ldi	r26, 0x60	; 96
  2a:	b0 e0       	ldi	r27, 0x00	; 0
  2c:	e6 e5       	ldi	r30, 0x56	; 86
  2e:	f3 e0       	ldi	r31, 0x03	; 3
  30:	03 c0       	rjmp	.+6      	; 0x38 <.do_copy_data_start>

00000032 <.do_copy_data_loop>:
  32:	c8 95       	lpm
  34:	31 96       	adiw	r30, 0x01	; 1
  36:	0d 92       	st	X+, r0

00000038 <.do_copy_data_start>:
  38:	a4 36       	cpi	r26, 0x64	; 100
  3a:	b1 07       	cpc	r27, r17
  3c:	d1 f7       	brne	.-12     	; 0x32 <.do_copy_data_loop>

0000003e <__do_clear_bss>:
  3e:	10 e0       	ldi	r17, 0x00	; 0
  40:	a4 e6       	ldi	r26, 0x64	; 100
  42:	b0 e0       	ldi	r27, 0x00	; 0
  44:	01 c0       	rjmp	.+2      	; 0x48 <.do_clear_bss_start>

00000046 <.do_clear_bss_loop>:
  46:	1d 92       	st	X+, r1

00000048 <.do_clear_bss_start>:
  48:	a5 36       	cpi	r26, 0x65	; 101
  4a:	b1 07       	cpc	r27, r17
  4c:	e1 f7       	brne	.-8      	; 0x46 <.do_clear_bss_loop>
  4e:	36 d0       	rcall	.+108    	; 0xbc <main>
  50:	81 c1       	rjmp	.+770    	; 0x354 <_exit>

00000052 <__bad_interrupt>:
  52:	d6 cf       	rjmp	.-84     	; 0x0 <__vectors>

00000054 <__vector_3>:
}

// Eine nichtunterbrechbare Interrupt-Service-Routine
SIGNAL (TIM1_COMPA_vect)
{
  54:	1f 92       	push	r1
  56:	0f 92       	push	r0
  58:	0f b6       	in	r0, 0x3f	; 63
  5a:	0f 92       	push	r0
  5c:	11 24       	eor	r1, r1
  5e:	8f 93       	push	r24
   // ISR-Code
   //PORTB ^= (1<<PB2);
	 //PORTB |= (1 << PB2);    // setzt Bit 3 an PortB auf 1
	 PORTB &= ~(1 << PB2);   // loescht Bit 3 an PortB
  60:	c2 98       	cbi	0x18, 2	; 24
	 Zeittick = Zeittick + 1;
  62:	80 91 64 00 	lds	r24, 0x0064
  66:	8f 5f       	subi	r24, 0xFF	; 255
  68:	80 93 64 00 	sts	0x0064, r24
  6c:	8f 91       	pop	r24
  6e:	0f 90       	pop	r0
  70:	0f be       	out	0x3f, r0	; 63
  72:	0f 90       	pop	r0
  74:	1f 90       	pop	r1
  76:	18 95       	reti

00000078 <__vector_4>:

}

SIGNAL (TIM1_OVF_vect)
{
.......
Muss ich mir wohl was anderes einfallen lassen, hat jemand eine Idee ?

Internette Grüße
Stefan

Nachtrag: es sieht so aus, als würde der Compiler sämtliche Variablen-Deklarationen außerhalb des HAuptprogramms bzw. der Unterprogramme ignorieren?!