Jump to content
ELFORUM - Forumul electronistilor

Comunicatii cu PIC pe UART


Guest elektron

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
  • Replies 10
  • Created
  • Last Reply

Top Posters In This Topic

  • Liviu M

    2

  • costi002

    2

  • one

    1

  • Elef

    1

Top Posters In This Topic

Posted Images

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

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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



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