lampeplafonnier de voiture

Pour toutes vos questions sur CodeVision et la programmation en C en général

Modérateur : Modérateur

sayian

lampeplafonnier de voiture

Message par sayian »

Bonjour, actuellement en terminal S, les professeurs nous ont proposé un ppe à moi et mes camarades qui consiste à programmer un microcontrolleur ATMEGA 16 8bits dans le but de temporiser l' extinction de lampe du plafond de la voiture. Après quelques semaines, nous avons réussi à boucler une partie du ppe cependant ils nous restent à faire la programmation avec CodeVision avr, ce que nous avons commencer à faire en rentrant le programme que nous avons petit à petit recherché.
Lorsque l' on rentre notre programme en langage C dans CodeVision et que l' on regarde si il comporte des erreurs, le logiciel nous informe qu' il y a aucunes erreurs.
Mais lorsque l' on teste sur une maquette, la temporisation n' est pas pris en compte.
VOILA NOTRE PRESENTATION AINSI QUE NOTRE PROG:
En fait, ce que l' on veut c' est lorque la porte de la voiture est ouverte, la lampe s allume et lorsque l' on ferme la porte la lampe reste allumé 5 secondes puis s' eteigne.

LED=LAMPE
IT1=CAPTEUR DE PORTE 0:porte ouverte 1:porte fermée

PROG EN LANGUAGE C:

While(1)
{ if (IT1==0)
{ LED=1;
do
LED=1
while (IT1==1)
delay_ms(5000);
LED=0;
}
}

JP
Administrateur
Administrateur
Messages : 2323
Inscription : 23 sept. 2003 18:14
Localisation : Strasbourg
Contact :

Message par JP »

Bonjour,
le logiciel nous informe qu' il y a aucunes erreurs.
Ca j'en doute :
LED=1 il manque le ;

Sinon delay_ms(5000); est exécuté à chaque (IT1==0) , il n'est pas soumit à la condition IT1==1.

Il y a la balise code pour mettre ton programme un peu en forme :

Code : Tout sélectionner

While(1)
{ 
	if (IT1==0)
	{ 
		LED=1;

		do
			LED=1
		while (IT1==1)

		delay_ms(5000);

		LED=0;
	}
}
a+
JP
Dernière modification par JP le 03 avr. 2006 11:50, modifié 1 fois.
Ca clignote !!!!

JP
Administrateur
Administrateur
Messages : 2323
Inscription : 23 sept. 2003 18:14
Localisation : Strasbourg
Contact :

Message par JP »

Moi j'aurais plutôt vu quelque chose du genre :

Code : Tout sélectionner

While(1)
{ 
	if (IT1==0) // Si la portière est ouverte
	{ 
		LED=1;  // On allume le plafonnier
		
		if (IT1==1)  // Si la portière se referme
		{
	 		delay_ms(5000); // On attend 5s
			LED=0;		    // et on éteint le plafonnier	
		}
	}
}
Ca clignote !!!!

Avatar de l’utilisateur
vincevg
ACCRO
ACCRO
Messages : 803
Inscription : 05 mars 2005 16:58
Localisation : SMalville
Contact :

Message par vincevg »

Voire même avec un else.

Un atmega8 pour 5 secondes ils sont ambitieux tes prof.
Vince
http://anyedit.free.fr/
http://electropol.free.fr/

Les amis, ça va, ça vient, mais les ennemis, ça s’accumule.

Répondre