RS232<->MCU podivne chovani

andrej jancura hw_aj@zoznam.sk
Neděle Srpen 10 14:31:33 CEST 2008


Ahoj,

> Mam procesor PIC18 , s krytalem na 20MHz a komunikuje pomoci rs232 
> (avsak jen LOG0 LOG1, nikoliv pres MAX prevodnik).

Mozno potrebujes invertovat urovne, ale uz som s tym dlho nerobil. A ked
nieco, tak ten MAX232 tam mam vzdy.

> Mam jednoduchy program
> USART_init(19200);
> //spustime interupt
> TMR0L=101;
> T0CON = 0xC4;
> INTCON=0xA0;

Tak si to prepis do normalnych instrukcii. Ako napisat tri riadky, kde si
vsetko nastavis ako treba asi nie je problem. A hlavne budes vediet co si si
nastavil.

> while (1) {
>    if (USART_Data_Ready()) {
>                     tbyte=USART_Read();   // read the received data
>                    print(tbyte);
>         }
> }

dtto. Testovat priamo dva flagy na TX a RX asi nie je problem. Ako su
urobene tie funkcie zase netusis...

> Potiz je v tom ze obcas prijima nesmysly, dokonce kdyz poslu retezec 
> znaku, tak prijme retezec nesmyslu.

Tie rutiny su sw-rs232?!

> Komunikaci jsem zkousel v rychlosti 2400,9600 a 19200 bd.
> Taktovani bylo na20 MHz, pote jsem zkusil 8MHz.
> Kompilator je Mikroelektronikca C.

Skus HiTech...

> Vystup  na RS232 je bezchybny ( monitoruji RX pin na MCUpres 
> Hyperterminal a tam data prijdou v poradku)

Nastavenie IO pinov vs. USART je v poriadku?

> Je fakt ze mam v tom programu jeste pretuseni, ale to by snad na to 
> nemelo mit vliv, vypnout jej by znamenalo obtiz , protoze komunikace je 
> posilana pres casomiru v interaptu.

Tak si ho vypni a skus cistu komunikaciu poslem z PC znak, prijmem znak v
MCU, urobim echo. Pokial nejde, je kdesi chybycka...

A.



--- reklama -----------------------------------------------------
Viac ako 2,5 milióna slov.
Najlepší prekladový slovník na slovenskom internete.
http://slovnik.zoznam.sk



Další informace o konferenci Hw-list