VISUAL BASIC ET MICROPROCESSEUR MBED

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 16 sept. 2011 à 12:29
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 17 sept. 2011 à 18:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53591-visual-basic-et-microprocesseur-mbed

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 sept. 2011 à 18:12
Bonjour,

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 ?
ccllee Messages postés 10 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 15 septembre 2011
16 sept. 2011 à 14:14
Voici le prog mbed:

#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);
}
}
ccllee Messages postés 10 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 15 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és 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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.
Rejoignez-nous