Jump to content
ELFORUM - Forumul electronistilor

Comunicatii cu PIC pe UART


Guest elektron
 Share

Recommended Posts

Guest elektron

Buna ziua tuturor ,De citva timp lucrez la un proiect pentru o salupa telecomandata(RC ) Am pus pe ea un PIC16F690 ,care va transmite urmatoarele telemasuri : temperatura la cele doua motoare curentii consumati de cele doua motoare tensiunea bateriei .Pentru citirea datelor in regim "local " am pus un display LCD 2x16 Pina aici totul merge OK ! Acum as dori sa am aceste telemasuri linga telecomanda RC ,adica sa le transmit de la salupa spre telecomanda RC .Nu reusesc sa fac transmisia asincrona seriala cu PIC16F690?Daca ma poate ajuta cineva ,m-as bucura mult . Codul l-am scris in Basic ( Proton ) ,iar simularea o fac cu Proteus v7.10 ,dar m-as buxura si daca mi-ar indica cineva un cod in C++ .La nevoie vin cu mai multe detalii !Va multumesc anticipat !

Link to comment
Share on other sites

Bineinteles ca poti... sau ai putea.Foloseste module FM pe 433MHz sau module ZigBee (2.4GhZ).Nu stiu ce cod iti poate indica cineva cand nu dai schema de conexiuni si precizia masurarii curentilor... 8bit, 16bit...pentru transmisia seriala cu PIC cred ca este suficient sa scrii in Google... PIC UART example

Link to comment
Share on other sites

Guest elektron

Daca cineva este dispus sa ma ajute revin cu schema .Transmisia merge acum ,dar doar pentru un parametru .Cred ca va trebui sa folosesc o intrerupere sa pot transmite toti 5 parametrii ?

Link to comment
Share on other sites

Guest elektron

Deocamdata am scris codul doar pentru emisie ,iar proba o fac pe calculator prin simulare ,in Proteus .Astfel se poate observa prin debbug ca se transmite doi byte ( lowbyte si high byte ) indiferent de citi parametrii as introduce in registrul shift serial. Cred ca ar trebui sa folosesc cumva si flagul din TMR care se face "high" de fiecare data ce se termina o transmisie .Am sa atasez schema si codul pentru cine doreste sa arunce o privire .Multumesc anticipat !

Tx-UART.txt

post-27288-139829485794_thumb.jpg

Link to comment
Share on other sites

eu cu C sunt la inceput.Eu am reusit sa transmit foarte usor 20 byte, unul dupa altul catre un pc. cel mai bine este sa iti faci partea hard si sa transmiti pe serial catre pc si vezi valorile in hiperteminal. cand acesta va fi ok, continui cu receptia, unde este un pic mai dificil ca trebuie sa iti iei rapid datele din buffer, altfel le pierzi.

Link to comment
Share on other sites

Guest elektron

Nu reusesc sa atasez codul copiat intr-un fisier cu extensia "txt" caci vad ca nu ma lasa sa-l pun cu extensia originala " bas" ? ce sa fac ?

Link to comment
Share on other sites

Mie codul asta imi merge:

    TXEN = 1; // activat numai cand am nevoie        for (ucIdx = 0; (ucIdx < cMessLen) ; ucIdx++)    {        TXREG = *cMessage; //char cMessage[] e bufferul meu de transmisie, cMessLen e lungimea mesajului        while (TRMT == 0) //wait for Transmit Shift register to be empty        {           asm("NOP");        }            __delay_us(60);  //lungimea unui bit la 16660 baud. Nu stiu daca-i necesar peste tot        *cMessage++;    }    TXEN = 0;
Dupa cum mi-a mers si

    for (ucIdx = 0; (ucIdx < cMessLen) ; ucIdx++)    {        TXREG = *cMessage;         __delay_ms(5);         *cMessage++;    }
da' la ultima varianta se pierde timp aiurea.
Link to comment
Share on other sites

Guest elektron

Vad ca s-a reusit upload-ul . Cred ca ar trebui incrementat un contor care sa numere parametrii ce trebuie transmisi si dupa fiecare parametru contorul sa se incrementeze cu o unitate .Dar nu stiu cum sa scriu asta ?

Link to comment
Share on other sites

As zice sa grupezi parametrii intr-o structura de genu:struct PACKET{ type1 param1..typen param2}Transmiti toata structura si la receptie verifici daca ti-au sosit toti octetii.Stii cati octeti trebuie sa ajunga - un sizeof(PACKET) ar indeajuns.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • 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