ccllee
Messages postés10Date d'inscriptionsamedi 8 novembre 2008StatutMembreDernière intervention15 septembre 2011 16 sept. 2011 à 14:09
Bonjour,
je dois regarder dans mes archives si je possède encore le code du mbed sur le site de mbed, ce sont des sources que j'ai réalisées il y a quelque temps déjà.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 16 sept. 2011 à 12:29
Où est le programme à mettre dans le Microcontrolleur ?
Tu pourrais améliorer la source en centralisant les appels aux fonctions d'envois vers le port COM.
17 sept. 2011 à 18:12
Par habitude dans te sources .NET :
- Actives Option Strict
- Retires l'import automatique de Microsoft.VisualBasic ("Références" du projet)
Ta source ne pose pas de pb, mais c'est une bonne habitude à prendre.
Nommes mieux tes contrôles, Button5 est moins parlant que BtnLed1.
Tu ne peux activer qu'un LED à la fois ?
16 sept. 2011 à 14:14
#include "mbed.h"
Serial pc1(USBTX, USBRX);
int i, j, virgule, flag;
char chaine[1000];
char latitude[6];
char longitude[5];
char altitude[4];
char carac,taille;
BusOut myled1(LED1);
BusOut myled2(LED2);
BusOut myled3(LED3);
BusOut myled4(LED4);
AnalogIn potard(p15);
int flag_led;
unsigned long ana;
float v;
DigitalIn PosY(p16);
DigitalIn PosX(p17);
float valeurx;
float valeury;
Timer timer;
void reception()
{
char i;
i=pc1.getc();
if(flag_led)
{
if((i&0x01)==1)
{
myled1 =1;
}
else
{
myled1 =0;
}
if((i&0x02)==2)
{
myled2 =1;
}
else
{
myled2 =0;
}
if((i&0x04)==4)
{
myled3 =1;
}
else
{
myled3 =0;
}
if((i&0x08)==8)
{
myled4 =1;
}
else
{
myled4 =0;
}
flag_led=0;
}
if(i=='l')
{
flag_led =1;
}
if(i=='a')
{
ana=potard.read_u16();
pc1.printf("%lu",ana);
}
}
void decript()
{
}
int main() {
pc1.baud(9600);
pc1.attach(&reception);
i = 0;
myled1=0;
myled2=0;
myled3=0;
myled4=0;
while(1)
{
while (PosY.read()==1);
while (PosY.read()==0);
if (PosY.read() > 0)
{
timer.reset();
timer.start();
while (PosY.read() > 0){}
timer.stop();
valeury = timer.read_us() - 4970;
valeury = (valeury*90)/1290;
}
while (PosX.read()==1);
while (PosX.read()==0);
if (PosX.read() > 0)
{
timer.reset();
timer.start();
while (PosX.read() > 0){}
timer.stop();
valeurx = timer.read_us() - 5000;
valeurx = (valeurx*90)/1260;
}
//pc.printf("Position X : %6.2f, Position Y : %6.2f\r\n",valeurx, valeury);
//v=(float)ana/65535.0;
//servo = v;
//wait(0.2);
}
}
16 sept. 2011 à 14:09
je dois regarder dans mes archives si je possède encore le code du mbed sur le site de mbed, ce sont des sources que j'ai réalisées il y a quelque temps déjà.
16 sept. 2011 à 12:29
Tu pourrais améliorer la source en centralisant les appels aux fonctions d'envois vers le port COM.