Programmer un ATMEGA 8515 pour petit projet industrielle
cs_joffrey57
Messages postés7Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention12 juin 2009
-
8 juin 2009 à 10:30
cs_badou007
Messages postés3Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention20 juin 2009
-
20 juin 2009 à 11:45
Bonjour,
Je suis acutellement en stage dans le cadre de ma 1ère année de BTS système électronique et j'ai donc un projet à traiter.
Mon projet consiste à éviter les remplacement systématiques sur des freins à disque. Au départ après avoir lu la documentation constructeur des freins, j'ai réflechi à ce que j'allais faire comme circuit electronique mais au final j'ai opté pour la solution d'un microcontroleur mais le seul souci c'est la syntaxe du programme pour moi , je sais ce que je veux faire à partir du signal qui m'est donné mais je n'arrive pas à l'écrire;(.
Pour les pièces jointes, j'attendrais d'être chez moi pour pouvoir vous les donner parce que je n'ai pas accès à certaines options(insérer une image...) du net au stage...
cs_joffrey57
Messages postés7Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention12 juin 2009 11 juin 2009 à 14:00
JE ME PERMET DE RELANCER LE SUJET AVEC LE NOUVEAU PROGRAMME MODIFIE. IL RESTE A VOIR COMMENT METTRE EN PLACE UN TIMER ET UNE INSTRUCTION DE SAUT QUI ME PERMET DE RETOURNER AU DEBUT DU PROGRAMME!
Project :
Version :
Date : 05/06/2009
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega8515
Program type : Application
Clock frequency : 8,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
// Declare your global variables here
unsigned char convertiV1,convertiV2,convertiV3,convertiV4,convertiV5,convertiV6,convertiV7,convertiV8,convertiV9;
unsigned char convertiV10,convertiV11,convertiV12,convertT1;
void main(void)
{
// Declare your local variables here
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
//Début du programme:
while((PINA.1<=0 && PINA.2<=0)) //test de tension(V) et de courant(I) pour détecter une présence de tension et de courant dans le système
{PORTB.1=1;
PORTB.2=0; //on initialise les led à 0 car on a déja fait un cycle //on initialise les led à 0 car on a déja fait un cycle
PORTB.3=0;} //on initialise les led à 0 car on a déja fait un cycle //Non alimenté alor led orange allumé
PORTB.1=0; //on éteint la le dorange si alimenté et allume la verte
PORTB.3=1;
convertiV1=PINA.3; //on prend une valeur du signal
delay_ms(19); //on met une tempo de 19ms
convertiV2=PINA.3; //on reprend une autre valeur plus tard que la 1ère
convertT1=convertiV1-convertiV2;
if(convertT1>=0) //Pente montante du signal?
{PORTB.1=1;}
else
{PORTB.2=1;
PORTB.1=0;
PORTB.4=1;
return;}
cs_joffrey57
Messages postés7Date d'inscriptionlundi 8 juin 2009StatutMembreDernière intervention12 juin 2009 12 juin 2009 à 15:36
En parlant de chiffre, je me suis apercu que le microcontroleur que je veux utiliser n'est pas muni de convertisseur analogique numérique .
Il y en existe-t-il? Il me faudrait un micro avec 2 convertisseurs interne si possible.
J'ai deux signal a traiter en meme temps.
cs_badou007
Messages postés3Date d'inscriptionsamedi 20 juin 2009StatutMembreDernière intervention20 juin 2009 20 juin 2009 à 11:40
bonjour:
j'y connais pas grand chose mais il me semble que pour répéter indéfiniment une partie d'un programme il faut un "while(1){blabla....}"
donc si vous mettez tout ce qui est dans le main(), il sera répété :
void main(void)
{
while(1){..............}
}
Remarque : vous écrivez toujours 12