bonjour,
je travaille en C avec Mandriva 2011 via VirtualBox supporté par Windows 8.1
Je dois piloter une carte Velleman P8055-1, ses sorties digitales (leds) pour l'instant. Velleman fournit tous les fichiers nécessaires à l'installation.
J'avais écrit au début:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
int adresse;
 
adresse = OpenDevice(0);
if(adresse < 0)
{
  printf("OpenDevice: echec (%d).\n", adresse);
  _exit(-1);
}
WriteAllDigital(1);  //allumer led 1
usleep(500000);
WriteAllDigital(2);  //allumer led 2
usleep(500000);
WriteAllDigital(4);  //allumer led 3
usleep(500000);
ClearAllDigital();
CloseDevice();
led 1 s'allume systématiquement, led2 de temps en temsp et led 3 jamais. Et elles ne s'éteignent jamais à la fin.
J'en suis venu à écrire cela (désolé):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
nt adresse;
 
adresse = OpenDevice(0);
WriteAllDigital(1);  //allumer led 1
CloseDevice(0);
usleep(500000);
adresse = OpenDevice(0);
WriteAllDigital(2);  //allumer led 2
CloseDevice(0);
usleep(500000);
adresse = OpenDevice(0);
WriteAllDigital(4);  //allumer led 3
CloseDevice(0);
usleep(500000);
adresse = OpenDevice(0);
ClearAllDigital();
CloseDevice();
Et ça fonctionne. Si quelqu'un a utilisé ce genre de matériel et a été confronté au pb, je veux bien un avis.

Pour finir, j'ai placé mon code dans une boucle infinie et là, OpenDevice() échoue systématiquement mais de façon aléatoire.
Je n'arrive pas à déterminer si c'est un pb matériel, d'installation ou autres...

Merci