[elektro] PIC, TRMT

potyo potyo.ada at gmail.com
Fri Sep 20 14:37:33 CEST 2013


Ha jól sejtem, hardveresen a TXIF jel felfutó élváltozása okoz
megszakítást, tehát ha beleírsz valamit a TXREG-be, akkor a TXIF csinál egy
le-fel ciklust, ezzel a globális megszakítást bebillenti, hogy a CPU
ugorjon a megszakítási címre. Odamegy, megnézed, hogy a TXIE és a TXIF
egyidejűleg magasak-e, mivel igen, azt jelenti, hogy van hely a TXREG-ben,
beleírsz valamit. Ha még mindig marad benne hely, akkor továbbra is magas
marad a TXIF, írhatsz bele még valamit. Ha viszont betelt, akkor magától
átáll 0-ra, ezzel jelzi, hogy nincs benne több hely, és nem okoz a
továbbiakban megszakítást, amíg ki nem ürül egy hely. Bármikor, amikor jön
egy TXIF megszakítás, azt jelenti, hogy felszabadult egy hely a TXREG-ben.
Ha te már beleírtad az utolsó küldendő bájtot is a TXREG-be, akkor le kell
tiltani a TXIF megszakítást, egyszerűen a TXIE nullába állításával. Ha
legközelebb megint küldeni kell valamit, akkor csak egyesbe billented a
TXIE-t, automatikusan azonnal bekövetkezik egy megszakítás a TXIF miatt, és
a megszakításkezelő már töltheti is be a TXREG-be az adatot.

Szerintem logikus a működése


2013. szeptember 20. 14:23 Balla Zoltán írta, <sdrlab at yandex.ru>:

> Szóval többen ajánlottátok inkább a TXIF bit használatát. Viszont ott van
> egy érdekes momentum...,
> amikor a TXREG-be írok adatot, a TXIF törlődik, konkrétan egy órajelre,
> amíg a TXREG-ből átíródik az
> adat a TSR-be. Ekkor ha mondjuk megszakításra is van beállítva, jön egy
> megszakítás. Benne
> vizsgálhatnánk, hogy TX-től eredt...ám mivel egy órajel alatt beáll vissza
> a TXIF bit, mire a
> megszakításba ezt vizsgálnánk, már elvileg rég üreset jelez..., az az nem
> derül ki mi okozott
> megszakítást. Vagy valamit nem jól értelmezek ?
>
> Zoli
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list