Stránka 1 z 1

PIC - zahájení a ukončení sériové komunikace přes USART

Napsal: 06 úno 2008, 15:40
od p4ul
Ahoj, komunikuju s PIC přes USART a COM port. Komunikace je v pořádku (příjem i vysílání). PIC přijímá data v přerušení a posílá normálně v programové smyčce, kde se nachází také kód pro blikání diod. A teď 2 problémy.

1.
Zapnu PIC. Diody blikají. Na straně PC otevřu COM port. Diody přestanou blikat (PIC se asi sekne). Musím vypnout a zapnout PIC a pak komunikace běží.

2.
Na straně PC otevřu COM port. Zapnu PIC. Diody blikají a vesele se komunikuje. Zavřu COM port. Diody přestanou blikat (PIC se asi sekne).

Nevíte čím to je, že se PIC při otevření nebo zavření COM portu PIC zastaví?
Nevíte jak to ošetřit? Už mě nebaví pořád vypínat a zapínat PIC.

Napsal: 06 úno 2008, 16:30
od jankop
S ohledem na poskytnuté informace odpověď trochu zobecním:
"Jářku, bude to asi pokažený! Buď máš chybu v hardware, nebo software, nebo v obojím."

Napsal: 06 úno 2008, 16:32
od mikollar
nemoze to byt tym ze pri zapinani resp vypiani COM portu posiela PC nejake znaky, ktore v programe PIC niesu osetrene a sekne sa porgram? Len tipujem :?

Napsal: 06 úno 2008, 17:33
od p4ul
:idea: už jsem na to přišel..je nutné reagovat na chyby:

if (RCSTAbits.OERR)
{
// nastala chyba overrun, musime ji vynulovat vypnutim a zapnutim prijimani
RCSTAbits.CREN = 0;
RCSTAbits.CREN = 1;
} else if (RCSTAbits.FERR)
{
// framming error napravime prectenim dat (w = RCREG)
ReadUSART();
}