Přepadové v pic vlajky RCIF

N

Naumanpak

Guest
Odborníci,

Čtu sériová data ze GPS do PIC.A to funguje (data jsou odesílána na 1Hz).PROBLÉM:Chystáte další, dám nějaké pokyny, které budou vyžadovat 5 ms, zpoždění však jednou za sekundu.

ale když jsem dal nějaké zpoždění, RCIF přepady nikdy nezapadá znovu, mám jen 2 char tisku.

Kontrolou přetečení, mohu oživit nepřetržitý přenos ale údaje, které obdržely není správný.

Kód:

if (RCSTA.OERR == 1) (

RCSTA.CREN = 0;

RCSTA.CREN = 1;)
 
Ahoj Naumanpak,

Od datasheet:

"RCREG je dvojí-buffered rejstříku (tj. jedná se o dva-hluboká FIFO). Je možné, že dva bajty dat které mají být přijaty a převedeny do RCREG FIFO a třetí byte začít přesouvá do RSR registr. na detekci bit Stop třetí byte, pokud je registr RCREG je stále plný, <1>) Překročení Chyba bit, OERR (RCSTA, budou stanoveny. slovo v RSR budou ztraceny. registr RCREG může přečíst dvakrát k získání dvou bytů v FIFO. Překročení bit OERR musí být schváleny v software. To se provede reset dostávají logiku (CREN zúčtuje a potom nastavit). Je-li bit OERR je nastaven, převody z registru RSR do registru RCREG jsou inhibovány a žádné další údaje budou přijaty. Je proto nezbytné, aby byl jasný chyba bit OERR, pokud je nastaveno. "

Pokud je overflow, poslední obdržel byte by se ztratil a předchozí dva bajty lze získat čtením RCREG dvakrát.

Doporučuji vám nejprve uložit obdržel bytů na pole a pak zobrazit hodnoty nebo zkusit snížit přenosovou rychlost, takže se můžete dostat dostatek času mezi dvěma po sobě jdoucími recepce.

 
Hej díky matbob!

Real užitečné a hodné info, jeho vyřešit hned.na zdraví
Nauman

 

Welcome to EDABoard.com

Sponsor

Back
Top