Jump to content
ELFORUM - Forumul electronistilor

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


Guest prigbel

Recommended Posts

Guest prigbel

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.

Link to comment
  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

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)

Link to comment
Guest prigbel

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:

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

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

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