Jump to content
ELFORUM - Forumul electronistilor

transmisie seriala ( mai mult de 8 biti)?


JQ

Recommended Posts

salutare, as dori sa fac un program care sa transmita la o aplicatie in calculator niste date pe portul serial. Pana acuma am mai facut asta , insa m-am limitat la date care nu depasesc 1byte. Daca de exemplu vreau sa transmit valoarea 5000 , asta inseamna 00010011 10001000 , deci 2 octeti. Banuiesc ca se face cu un vector, insa cum impart valoarea respectiva in octeti? merci

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

pai poti sa faci in 2 modruri unu sa transmiti caracter cu caracter tot numaru sau imparti numaru ala la 2^8 si trimiti primu catu si dupa trimti restu si il reconstruiesti la receptie insa trebuie sa folosesti 2 octeti. + + multe alte artifici !! oricum nu poti sa trimiti mai mult de 8 biti de date pe seriala daca folosesi modul USART !

Link to comment
Share on other sites

Guest mastermind

Eu as face un vector de 16 elemente pentru numarul care vrei sa il transmiti si as trimite pe rand fie doi vectori mici de cate 8 elemente, fie 2 secvente din primul vector. Evident la destinatie trebuie sa reconstitui primul vector.Acum am si eu o intrebare te rog frumos, poti sa imi zici cum ai facut sa transmit pe seriala cate unul singur, mai ales softurile (bucatile de cod) de pe microcontroler si pc, ca eu aici sunt in momentul asta :)Multumesc

Link to comment
Share on other sites

in primul rand acesta e un proiect la care inca lucrez, vreau sa masor frecvente mai mari de 10Mhz. am facut un program de test, care sa trimita 4 octeti: secventa e urmatoarea:char ReceivedByte; int j,n=4; unsigned long int var; unsigned char byte[4]; var=100000000; UCSRB |= (1 << RXEN) | (1 << TXEN); // Turn on the transmission and reception circuitry UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1); // Use 8-bit character siz byte[0]=(var & 255); byte[1]=(var >> 8); byte[2]=(var >> 16); byte[3]=(var >> 24);//pentru descompunerea in octeti am folosit deplasarea pe biti. as fi curios cum se face cu pointeri deoarece se pare ca e cea mai eficienta metoda for (;;) // Loop forever { for(j=0;j

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.




×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines