Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
librairie USB
11-12-2014, 04:37 PM,
#1
librairie USB
bonjour,
je suis nouveau dans les pinguino et je galere un peux.
Je cherche a configurer une communication USB entre ma carte et une appli python.
avec l'aide de tous les exmeples que je trouves sur e net j'ai déja testé le transfert pinguino--> python.
et là je cherche à effectuer l'autre sens python-->pinguino-->python.

voila le code que j'ai ecrit:
Code:
#define RUNLED PORTAbits.RA4    // for visual debug purposes

void setup()
{

}

void loop()
{
    u8 temp[6];
          int rec;

          if (true)
    {
              if (USB.available())
                {
                    rec = USB.read();

                    temp[0] = rec+1;

        USB.send(temp, 1);        // send 4-bit temp on usb bus
        RUNLED = RUNLED ^ 1;        // blinked led for visual debug
        delay(1000);            // wait for 1 sec. before next reading
                }
            
    }
}

Ma carte pinguino est à base de 18f2550 avec le bootloader V4.14, et j'utilise l'IDE V11.0.1.

au moment de la compilation il me dit qu'il y a un probleme sur la ligne suivante:
Code:
rec = USB.read();
et la fenettre du bas me dit ca:
Code:
>>> compilling: C:/Users/cyril.cagnacci/Desktop/test usb1.pde
>>> Board: Pinguino 2550
>>> Proc: 18f2550
>>> Arch: 8
>>> Boootloader: v4
>>>
>>> ERROR: 357:  this is the location of the previous definition
>>> 18:  too few parameters

de partout j'ai trouvé les meme exempls et je ne sais pas quoi faire.
auriez vous une idées du probleme rencontrée?
merci d'avance
Reply
12-12-2014, 03:51 PM,
#2
RE: librairie USB
personne pour m'aider? Sad Sad Sad Sad Sad
Reply
12-12-2014, 07:49 PM,
#3
RE: librairie USB
(12-12-2014, 03:51 PM)cacoucatatonique Wrote: personne pour m'aider? Sad  Sad  Sad  Sad  Sad

Bonjour,
Vous devriez essayer les 2 exemples à chercher dans le dossier examples\04.Communications\USB\Bulk\.
Leur compilation marche.
Les anciennes fonctions USB.read() et + ne sont plus d'actualités.
rec = USB.read(); est remplacé par       receivedbyte = BULK.read(buffer); 
receivedbyte étant le nombre d'octets stockés dans buffer. Cf l'exemple USB_bulk_read_from_host.pde.

De plus le dossier Bulk contient 2 .py associés aux .pde.

Je regarde dans le wiki s'il a des infos relatives à Bulk:
Oui !  Regardez au chapitre Libraries il y a une rubrique Bulk Library. J'approndirai s'il le faut et j'ajouterai les 2 exemples au chapitre examples/04.Communications.

André
Reply
12-12-2014, 07:54 PM,
#4
RE: librairie USB
En fait les fonctions Bulk dans le wiki n'existent que par le nom.
Je complète rapidement.
André
Reply
13-12-2014, 11:50 AM,
#5
RE: librairie USB
(12-12-2014, 07:54 PM)gtcbreizh Wrote: En fait les fonctions Bulk dans le wiki n'existent que par le nom.
Je complète rapidement.
André

Je viens de compléter le wiki http://wiki.pinguino.cc/index.php/Main_Page pour les fonctions BULK.
Chacune a son équivalent en USB. En fait l'une et l' autre appellent exactement la même fonction en C.
Les fonctions USB ont été conservées puisque elles existaient avant les fonctions BULK. Ainsi nous préservons au moins partiellement la compatibilité. Partiellement puisque la syntaxe de USB.read a changé et que USB.sendint a été supprimé.
USB.sendint est remplacé par USB.send(buffer,2) buffer[0] contient les bits 0-7 et buffer[1] les bits 8-15 de l'integer à transmettre.
André
Reply
13-12-2014, 12:08 PM,
#6
RE: librairie USB
(13-12-2014, 11:50 AM)gtcbreizh Wrote:
(12-12-2014, 07:54 PM)gtcbreizh Wrote: En fait les fonctions Bulk dans le wiki n'existent que par le nom.
Je complète rapidement.
André

Je viens de compléter le wiki http://wiki.pinguino.cc/index.php/Main_Page pour les fonctions BULK.
Chacune a son équivalent en USB. En fait l'une et l' autre appellent exactement la même fonction en C.
Les fonctions USB ont été conservées puisque elles existaient avant les fonctions BULK. Ainsi nous préservons au moins partiellement la compatibilité. Partiellement puisque la syntaxe de USB.read a changé et que USB.sendint a été supprimé.
USB.sendint est remplacé par USB.send(buffer,2) buffer[0] contient les bits 0-7 et buffer[1] les bits 8-15 de l'integer à transmettre.
André

d'accord je comprend mieux pourquoi ca compilais pas lol.
super merci je vais regarder ca de plus pret.
Reply
13-12-2014, 12:12 PM,
#7
RE: librairie USB
(13-12-2014, 12:08 PM)cacoucatatonique Wrote:
(13-12-2014, 11:50 AM)gtcbreizh Wrote:
(12-12-2014, 07:54 PM)gtcbreizh Wrote: En fait les fonctions Bulk dans le wiki n'existent que par le nom.
Je complète rapidement.
André

Je viens de compléter le wiki http://wiki.pinguino.cc/index.php/Main_Page pour les fonctions BULK.
Chacune a son équivalent en USB. En fait l'une et l' autre appellent exactement la même fonction en C.
Les fonctions USB ont été conservées puisque elles existaient avant les fonctions BULK. Ainsi nous préservons au moins partiellement la compatibilité. Partiellement puisque la syntaxe de USB.read a changé et que USB.sendint a été supprimé.
USB.sendint est remplacé par USB.send(buffer,2) buffer[0] contient les bits 0-7 et buffer[1] les bits 8-15 de l'integer à transmettre.
André

d'accord je comprend mieux pourquoi ca compilais pas lol.
super merci je vais regarder ca de plus pret.
Reply
13-12-2014, 12:25 PM,
#8
RE: librairie USB
d'accord je comprend mieux pourquoi ca compilais pas lol.
super merci je vais regarder ca de plus pret.
alors il y a un chisme, car le code pour envoyer des données sur l'usb depuis la puce fonctionne mais pas celui pour recevoir.
bon c'est pas un soussi en soit maintenant que j'ai la reponse à mon probleme mais je pense que c'est tous de meme important de le signaler.....
Reply
13-12-2014, 04:00 PM,
#9
RE: librairie USB
(13-12-2014, 12:25 PM)cacoucatatonique Wrote: d'accord je comprend mieux pourquoi ca compilais pas lol.
super merci je vais regarder ca de plus pret.
alors il y a un chisme, car le code pour envoyer des données sur l'usb depuis la puce fonctionne mais pas celui pour recevoir.
bon c'est pas un soussi en soit maintenant que j'ai la reponse à mon probleme mais je pense que c'est tous de meme important de le signaler.....

Je peux vous assurer que USB_bulk_read_from_host.pde reçoit bien le string venant de USB_bulk_write_to_pinguino.py et le retransmet à ce même .py qui affiche bien le string émis.
Je précise travailler avec un 18f2550 sous IDE V11 et Python 2.7
André
Reply
13-12-2014, 04:50 PM, (This post was last modified: 13-12-2014, 04:51 PM by gtcbreizh.)
#10
RE: librairie USB
Le programme suivant (le vôtre légèrement simplifié) marche très bien. J'envoie A par Python (programme joint) le pinguino me retourne B.
void setup()

{

}

void loop()
{
u8 rec[64];
if (true)
{
if (USB.available())
{
USB.read(rec);
rec[0] = rec[0]+1;
USB.send(rec, 1); // send 4-bit temp on usb bus
PORTAbits.RA4 ^=1;
delay(1000); // wait for 1 sec. before next reading
}
}
}


Attached Files
.py   USB_bulk_write_to_pinguino.py (Size: 1.51 KB / Downloads: 5)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)