[elektro] PIC32 flag probléma
Balla Zoltán
sdrlab at yandex.ru
Thu May 3 13:28:25 CEST 2012
Feladó: "Móczik Gábor" <pm_levlista at progzmaster.hu>
>Az IT rutin:
>minden megszakítás beütésekor vegyen egy pufferből adatokat és írja a TX
>regiszterbe. Ha az utolsót vette ki, tiltsa le a megszakítást. Mivel már
>ekkor letiltod, elvileg már nem üthet be IT, ha nincs küldendő adat.
>
>(célszerű gyakorlat, hogy biztos ami biztos alapon küldés előtt is
>ellenőrizheted, és ha tényleg nincs, akkor letiltod az IT-t.)
>
>Főprogram:
>megszakítás tiltása
>ha előtte sem volt engedélyezve, akkor nem volt transzfer folyamatban,
>tehát az első adat a TXREG-be kell a többi a pufferbe. Ha előtte
>engedélyezve volt, akkor az összes adat a pufferbe (majd az IT rutin
>kiszedi)
>megszakíás engedélyezése
>
>Az elején azért kell tiltani, hogy amég a feltételt vizsgálod közben ne
>üssön be IT, atomikus legyen a puffer kezelése.
>
Na ez az...majdnem így működött eddig is, csak én nem tiltottam le a megszakítást...mondván ha
kiment az utolsó byte, és nincs több adat, az utolsó megszakítás után csak a flag-et törlöm, és ki
is lép, többé addig nem lépve be, míg újra nem irtam be adatot a TXREG-be, ami előidézte a
kommunikáció lezajlását a fenti folyamat szerint!!
De most már ez nem járható út, na meg elegánsabb is minden adatot a megszakításkezelőben tölteni,
nem pedig a főprogramból az első beírásával elindítani mint eddig....
Zoli
More information about the Elektro
mailing list