Sari la conținut
ELFORUM - Forumul electronistilor

Comunicatia seriala USART


satelit

Postări Recomandate

  • Răspunsuri 10
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • satelit

    5

  • aghora17

    3

  • cirip

    3

Top autori în acest subiect

nu stiu sa iti zic codul, pt ca nu am facut cod pt asta pana acum, dar trebuie sa fie simplu. incarci caracterul ala in registrul de date al serialei si ii dai send, dupa ce in prealabil ai setat portul pentru comunicatie (protocol, viteza etc.) totul este in datasheet. (sper ca integratul asta de care vorbesti are functia implementata. daca nu, tre sa emulezi protocolul, beachs)

Link spre comentariu

Am scris o secventa si nu stiu daca e bine.Va rog sa-mi spuneti si mie daca e bine. bsf 03h,5 movlw 20h movwf TXSTA movlw 06h movwf SPBRG bsf PIE1,TXIE bcf 03h,5 bsf RCSTA,SPEN bsf INTCON,PEIE bsf INTCON,GIE movlw 41h ; litera A movwf TXREG btfss PIR1,TXIF goto trans trans bsf 03h,5 tx btfss TXSTA,TMRT goto tx bcf 03h,5 return

Link spre comentariu

inainte de toate, as avea ceva de comentat, ca asa sunt eu mai carcotas.cine este acel 03h? de ce nu ii dai un nume, macar temp? ajuta la citirea codului. e rutina recomandata de producator?daca da, imi cer scuze.pentru caractere ascii este mai usor sa folosesti sintaxa a'A' pentru caracterul "A"apoi rutina de testat bitul ala de te trimite la trans nu e bine.daca e setat sare direct la trans, daca nu e setat executa instructiunea goto trans. care e logica ei?probabil ca partea cu btfss ar trebui sa arate asa:movlw 41h ; litera A movwf TXREG loopbtfss PIR1,TXIF ; daca tx1f inseamna busy pe 0goto loop trans bsf 03h,5 tx btfss TXSTA,TMRT goto tx bcf 03h,5 return

Link spre comentariu

cine este acel 03h?

Exact de asta n-am raspuns. Este dificil de verificat cod care nu foloseste etichete simbolice sugestive sau care e necomentat.Ca idee, etapele pe care le-am folosit eu au fost asa:-seteaza rata de baud-porneste TX-ul-testezi busy si daca nu e ocupat, ii arunci un octet in buferul de transmisieNu ai neaparata nevoie sa lucrezi cu intreruperi (Am vazut TXIF pe-acolo.)Cirip
Link spre comentariu

nu ai inteles, exemplul era numai la nivel de cod. adica sa iti dai seama cum trebuie scris codul, ca lexic, sintaxa, gramatica, ce vrei tu. ca rutina pentru usart e f posibil sa nu fie corect. cirip ti-a dat niste sugestii bune. setezi baud, configurezi portul pt comunicatie, bla bla bla....

Link spre comentariu

schimba bank-ul de memorie

Eu folosesc directiva "banksel "Mi se pare mult mai practic, mai intuitiv si mai sigur. Asamblorul stie sa genereze exact instructiunile care trebuie, fara sa trebuiasca sa te gandesti: O fi in bankul 0, o fi in bankul 1, o fi-n padure, o fi-n fantana... ? :) Cirip
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări