Zitat Zitat von liggi
wie sieht das den in c aus???
mfg liggi
Ist doch klar - gut sieht das aus.


Möglicherweise ist das eine Antwort:
Code:
/* =================================================================================
  Target MCU        : ATmega16
  Target Hardware   : RNControl
  Target cpu-frequ. : 16 MHz, externer Quarzoszillator
 ===================================================================================
  Enthaltene Routinen:
	void TMR_0_init( void )		// ISR Timer0 initialisieren
	SIGNAL(SIG_OUTPUT_COMPARE0)	// Timer0 ISR, Zeitmarke hochzählen
	int main(void)
 ================================================================================ */

#include <stdlib.h> 
#include <avr/io.h> 
#include <avr/interrupt.h>

#define MCU = ATMega16 

//   Mit Quarz 16 Mhz-CPU 
#define F_CPU  16000000 

/* beachte: volatile!  und   Vorzeichenlos                                        */
volatile uint16_t Izeit_1;			/* Timer läuft hoch
  Die Interruptroutine läuft mit 10 kHz                                           */
/* ============================================================================== */

/* ===  Initialisierung fuer Timer mega16(32)  ================================== */
void TMR_0_init( void )	
{				//Initialisiere 8-Bit-Timer auf 10 kHz
    TCCR0 |= (1<<CS01 | 1<<CS00); // Prescaler 1/64 / Clock <- CPU
    TCCR0 |= (1<<WGM01 | 0<<WGM00);	// Timer im CTC-Mode
    OCR0 = 25;   			// Preset 25 für 100µs bei 16Mhz  
    TIMSK |= (1<<OCIE0); 		// Compare Match IRQ 
}
/* ============================================================================== */

/* ===  Nicht unterbrechbare ISR für timer ====================================== */
/* Diese Routine zählt hoch im Takt 10 kHz.                      */
SIGNAL(SIG_OUTPUT_COMPARE0)
{
  {
    if (Izeit_1 <= 10000)
	Izeit_1 ++;		//Zeitstand Interupt-Timer läuft von 1 .. 10 000
    else
	Izeit_1 = 0;
  }
  {				// von hier bis Ende (LED2 toggeln) nur Testphase
    if (Izeit_1 == 1)
    PORTC ^= (1<<PC2);		//LED3 toggeln alle Sekunde
  }
	PORTC ^= (1<<PC1);	//LED2 toggeln jeden Interrupt
}
/* ============================================================================== */



// ------------------------------------------------------------------ 
/*### Hauptschleife ###*/ 
int main(void) 
	DDRC |= 0xFF;	//11111111 -> Ausgänge
	TMR_0_init();	//Initialisiere den Timer0-Interrupt (10 kHz)
	sei();		//Globalen Interrupt freigeben

for(;;) { 	
		// Dieses Programm toggelt Ausgänge PC1 und PC2
	}
}
. . . aber wenns nicht deine Frage war - dann stell die Frage doch präzise.