Révision 368
Ajouté par maporte3 il y a plus de 6 ans
branch/porte/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0042
|
||
RESET=ff0068
|
branch/porte/Emb_App/programme_principal_etud.c | ||
---|---|---|
unsigned int Info_capteur;
|
||
//Variable de la fonction Distance_bord
|
||
unsigned int Bord_defaut=0, ecart=400;
|
||
//Variable de la fonction IHM
|
||
short Touche_clavier;
|
||
//Variable des fonctions IHM
|
||
short Touche_clavier, Temps;
|
||
//char *Temps;
|
||
//Variable de la fonction Circuit
|
||
unsigned int Info_circuit, Etat_feu, Num_circuit, Depart_ok=0, Arret_urgence=0;
|
||
//Variable de la fonction Evenement
|
||
... | ... | |
|
||
}
|
||
|
||
void Commande_IHM(){
|
||
void Commande_clavier(){
|
||
|
||
// Interface Homme Machine muni du clavier matricielle, de l'?cran LCD,
|
||
// des LEDs, des potentiometre et des interrupteurs.
|
||
... | ... | |
|
||
if(Touche_clavier != 0){
|
||
if(Touche_clavier != 42 && Touche_clavier != 35){
|
||
lcd_putc(Touche_clavier);
|
||
vit = vit*i+(Touche_clavier-48);
|
||
i = 10*i;
|
||
}
|
||
... | ... | |
|
||
}
|
||
|
||
void Commande_LCD(){
|
||
|
||
//'H'/72/0x48?: Donne le temps de course actuel
|
||
CanFrame comm;
|
||
CanFrame demande;
|
||
CanFrame reponse;
|
||
|
||
while(1){
|
||
|
||
demande.data.id='H';
|
||
demande.data.rtr=1;
|
||
|
||
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique sur le temps de course actuel.
|
||
Temps=periph[ADDR('H')].val; // contient la valeur de retour du simulateur sur le temps de course actuel.
|
||
|
||
lcd_init();
|
||
switch(Num_circuit){
|
||
case 1: lcd_str("VERT"); break;
|
||
case 2: lcd_str("BLEU"); break;
|
||
case 3: lcd_str("ROUGE"); break;
|
||
case 4: lcd_str("NOIR"); break;
|
||
default : lcd_str("Inconnu");
|
||
}
|
||
lcd_putc('|');
|
||
switch(Info_capteur){
|
||
case 0x560: lcd_str("VERT"); break;
|
||
case 0x430: lcd_str("NOIR"); break;
|
||
case 0x520: lcd_str("ROUGE"); break;
|
||
case 0x4a0: lcd_str("JAUNE"); break;
|
||
case 0x420: lcd_str("BLEU"); break;
|
||
default : lcd_str("!!");
|
||
}
|
||
lcd_putc('|');
|
||
//lcd_str('Temps');
|
||
|
||
dly_tsk(1000);
|
||
}
|
||
}
|
||
|
||
void Bp_hc(){
|
||
|
||
if(Bp_G == 1){ Arret_urgence = 1;}
|
||
if(Bp_G == 0){ Arret_urgence = 0;}
|
||
|
||
|
||
}
|
||
|
||
void Circuit(){
|
||
... | ... | |
|
||
}
|
||
|
||
void Evenement(){
|
||
void Evenement(){ // non fonctionnelle
|
||
|
||
//'E'/69/0x45?: Lecture des evenements,
|
||
CanFrame comm;
|
||
... | ... | |
|
||
sta_tsk(ID_Distance_bord);
|
||
|
||
sta_tsk(ID_Commande_IHM);
|
||
sta_tsk(ID_Commande_clavier);
|
||
sta_cyc(ID_Bp_hc);
|
||
sta_tsk(ID_Commande_LCD);
|
||
|
||
|
||
sta_tsk(ID_Circuit);
|
||
|
||
sta_tsk(ID_Evenement);
|
branch/porte/Emb_App/conf_noyau.cfg | ||
---|---|---|
};
|
||
|
||
task[]{
|
||
entry_address = Commande_IHM();
|
||
name = ID_Commande_IHM;
|
||
entry_address = Commande_clavier();
|
||
name = ID_Commande_clavier;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
... | ... | |
};
|
||
|
||
task[]{
|
||
entry_address = Commande_LCD();
|
||
name = ID_Commande_LCD;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 6;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = Circuit();
|
||
name = ID_Circuit;
|
||
stack_size = 256;
|
Formats disponibles : Unified diff
Amélioration de l'IHM, le clavier matricielle affiche le circuit en cours et la zone actuel.
Le temps est prélevé par la tache mais il faut la convertir en chaîne de caractère avant de l'afficher.