Projet

Général

Profil

« Précédent | Suivant » 

Révision 157

Ajouté par piduvernoi il y a plus de 6 ans

Programme fin de seance
fonction tourelle et vitesse fonctionnelle

Voir les différences:

branch/duvernois/Emb_App/programme_principal_etud.c
#include "carte_io.h"
#include "carte_m32.h"
#include <math.h>
short alpha;
short rottourelle;
short rotroue;
// Potentiometre: lire les registres ad00 et ad01, les valeurs sont sur 10 bits.
// Clavier: vrcv_dtq(QdmTouche,&code_touche) pour lire la derniere touche appuyee sur le clavier.
......
// disponible. 0xab avec a-> nombre de couleurs bien plac?es et b -> couleurs pr?sentes mais mal plac?es.
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
// correspondant au nom du v?hicule si le nom se termine par '*'
void tourelle (int consignetourelle)
{ CanFrame comm;
CanFrame demande;
CanFrame reponse;
demande.data.id='R'; demande.data.rtr=1;
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
if (comm.data.id='R')
{
alpha=reponse.data.val; //contient la valeur de retour du simulateur.
rottourelle=(consignetourelle-alpha);
comm.data.id='T'; comm.data.rtr=0; comm.data.val=rottourelle;
snd_dtq (CanTx,comm.msg);
}
else
{
snd_dtq (CanTx,demande.msg);
}
}
void vitesse (int consignevitesse)
{
short vit;
CanFrame comm;
CanFrame demande;
CanFrame reponse;
demande.data.id='V'; demande.data.rtr=1;
snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
if (comm.data.id='V')
{
vit=reponse.data.val; //contient la valeur de retour du simulateur.
rotroue=(consignevitesse-vit);
comm.data.id='V'; comm.data.rtr=0; comm.data.val=rotroue;
snd_dtq (CanTx,comm.msg);
}
else
{
snd_dtq (CanTx,demande.msg);
}
}
void main()
{
ports_mcu();
......
can_init();
clavier_init(1);
capture_init();
sta_cyc(ID_acqui);
// sta_tsk(ID_periph_rx);
//sta_tsk(ID_periph_rx);
while(1)
{
{
tourelle(450);
vitesse(50);
LED_J=1;
dly_tsk(100);
LED_J=0;
dly_tsk(100);
}
}
}
void acqui()
branch/duvernois/bsp/periph.c
Tperiph periph['z'-'A'];
#define eot 0x0D
#define eot 0x0D
void periph_init (void)
{

Formats disponibles : Unified diff