Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
prigbel

ATMega8 comunicatie cu PC pe RS232, MARI PROBLEME, HEEEEELP!

Recommended Posts

Nu reusesc sa trimit date la PC pe RS232, Din p.v. HW totul e OK, in sensul ca pe PC primesc date dar total aiurea. Poate nu stiu eu cum sa trimit. la unele cuvinte trimise da eroare la altele nu. PT o analiza mai detaliata anexez fisierul .asm pate ma ajuta cineva!!! Programelul trimite repetat un cuvant la PC in cazul asta $FB, pe calculator receptionez $C0.Cu hiperterminalul nu vad nimic, am luat cateva programele demonitorizare a portului serial si acolo m-am jucat.

Share this post


Link to post
Share on other sites

Nu stiu ce viteza ai, (depinde de oscilator) cu factorul de 47 ,( de ex. 7.37MHz ai 9600 baud), verifica Si important vezi ca ai setat DOI BITI de stop . Daca vrei 8N1 atunci nu te bagi in reg.UCSRC, este default la resetCa sfat, trimite un caracter ascii care este lizibil in hyperteminal ( A = $41)

Share this post


Link to post
Share on other sites

E de coma chestia asta!!! Folosesc un Quartz de 7.3728MHz rata de bit 9600, paritate N, biti de stop 2, date 8. eu ii dau sa trimita $47 si citesc [C0][00][C0] , cand trimite $46 citesc [00][00][C0]. CRED CA O SA IL AJUSTEZ CU CIOCANUL !!! :axe:

Share this post


Link to post
Share on other sites
Guest severika

SalutCam aceeasi problema o aveam si eu candva; problema e de sincronizare (ie viteza, baudrate, bla-bla) incearca sa setezi o viteza mai mica la baudrate (ex mie mi-a mers ok la 4800 cu orcilatorul intern la 1MHz)Morala e ca, cu cat ii setezi un baudrate mai mare, cu atat cresc erorile, si ai avea nevoie de o frecventa de ceas mai mare; 9600 cred ca ar merge OK de la 8MHz in sus.SAU, ai putea sa folosesi un mediu (sau generator de cod) serios, care sa-ti faca e calculale; Eu folosesc de ceva timp CodeVision, fara probleme.Sper sa te ajute.

Share this post


Link to post
Share on other sites
Guest yoco

incerc sa dau un sfat:

setarile tale pt. conifg sunt bune din fisierul .asm dar cateva chesti care ar fi de adaugat ...

 

1. prin "SEI" ai activat intreruperile globale si in codul tau nu folosesti nici macar o intrerupere care sa necesite acest lucru

2. daca vrei sa faci o bucla de intarziere calculata la un interval fix sfatul meu e sa folosesti un programel numit "AVRDelayloop3"

il gasesti aici :

http://www.electronics-lab.com/downloads/mcu/003/index.html

sau daca vrei sa faci tu neaparat bucla sfatul me e sa folosesti alti registri decat r0,r1,r2... etc pt ca registrii de uz general incep cu r16 pana la r31.

Share this post


Link to post
Share on other sites

Am uitat sa-ti spun. Ia verifica daca nu cumva ai fuse pus pe oscilatorul intern. El vine default din fabrica setat pe osc.intern

Share this post


Link to post
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.

Sign in to follow this  

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