Jepp es klappt:

Habe soeben das Program ergänzt und es funktioniert genau so wie ich es möchte.


Code:
// Timer_Interrupt_TEST_3.c Programm //

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


int A;
int Delai;

// Routine d'interruption
//-----------------------

ISR (TIMER1_COMPB_vect) {


	if(A==0x00){
		PORTB=0x05;
		}
	
	if(A==0x01){
		PORTB=0x00;
		}

	if(A==0x0A){
		PORTB=0x0A;
		}

	if(A==0x0B){
		PORTB=0x00;
		}

	A=A++;
	OCR1B=TCNT1+Delai;

	if(A==0x0C){		//0x14
		A=0;
	TCCR1B=(0<<CS10); // timer stopp	
		}
}

// Programme principal:
//---------------------

int main () {

	A=0;

	DDRB=0xFF; 				// PORTB mis en sortie
	DDRC=0xFF;

	Delai=3686000/20/20/165;

	OCR1B=TCNT1+Delai; 		// initialisation du registre de comparaison

	TIMSK|=(1<<OCIE1B); 	// autorisation de l'interruption

	sei (); 				// autorisation de toutes les interruptions


while (1){

	if(PINA == 0xFE){ 
		TCCR1B=(3<<CS10); //timer1 start, timer1 source: ck/64
		} 
	}	
}

Natürlich währe es ohne eure Hilfe nix geworden.

Danke normals.

Dass mit dem

CS12, CS11, CS10 (Clock Select Bits)
Diese 3 Bits bestimmen die Quelle für den Timer/Counter:
CS12 CS11 CS10 Resultat
0 0 0 Stopp, Der Timer/Counter wird angehalten.
0 0 1 CPU-Takt
0 1 0 CPU-Takt / 8
0 1 1 CPU-Takt / 64
1 0 0 CPU-Takt / 256
1 0 1 CPU-Takt / 1024
1 1 0 Externer Pin T1, fallende Flanke
1 1 1 Externer Pin T1, steigende Flanke



hatte ich aus einer anderen Website aber bin gestern einfach nicht darauf gekommen, obwohl es gross draufstand... 0<<CS10 = timer Stopp eieiei


Naja jetzt gehts ja lol


Ciao

Euer Nightlord