[elektro] PIC, TRMT

Móczik Gábor pm_levlista at progzmaster.hu
Fri Sep 20 12:29:34 CEST 2013


2013.09.20. 11:14 keltezéssel, Balla Zoltán írta:
> Pic-es felhasználókat kérdeznék arról, hogy futott e már valaki olyan hibába, miszerint a TRMT bit
> figyelése az adatok elküldéséhez viszonyítva nem mindig korrekt ?! Az az, elvileg akkor áll be,
> amikor befejeződött a vonalon a kommunikáció..., na de mikor törlődik ? Mert ugye, a TXregbe írás
> után, ha van még kiküldendő adat, ezt a bitet figyeli az ember, mikor mutat üres állapotot, hogy a
> következő kimenő adat írását megejtsük. De ha a TRMT nem akkor törlődik, amikor a TXreg kiürül,
> akkor előfordulhat hogy még egyet mutat, az az már üreset, holott épp csak el fog kezdődni a
> kommunikáció...ergó egymásra íródhat pl 2 byte adat.... Vagy hogy is van ez ?

Emlékeim szerint van egy shift register amibe az adat átkerük a 
TXREG-ből, és ennek (az előbbi) üres állapotát jelzi a TRMT bit, azaz 
amikor kiment az utoljára küldött byte.

Gyakorlatilag double-buffer technika. Ha a TXREG üres állapotát akarod 
megtudni, azaz hogy mikor írhatsz bele új adatot, akkor a TXIF bitet 
kell figyelni. Ha megszakítást használsz, akkor az is ilyenkor fog beütni.

A TRMT bit arra jó, hogy ha mondjuk le akarod tiltani a kommunikáció 
után a perifériát, vagy mondjuk pl. soros porton bejött REBOOT parancsra 
akarsz még egy ACK választ küldeni, akkor a RESET utasítás előtt 
megvárod amég a TRMT üreset jelez.



More information about the Elektro mailing list