Re[2]: pic 16f628 probléma
Pintér Dezső
skandi at t-email.hu
Sat Apr 30 21:04:49 CEST 2005
Hello bela,
Saturday, April 30, 2005, 8:32:01 PM, you wrote:
>> Érdekes problémába futottam bele, kíváncsi vagyok a véleményetekre.
>> Írok egy soros vevő rutint, ami teljesen interruptból végezné el a
>> vételt.
>> A soros adat az RB0-n jön be, interruptot kérve. Ekkor én letiltom
>> az rb0 int.-et (intcon,inte) törlöm a jelzőbitet (intcon,intf) és
>> jelzem, hogy jön az adat. A timer rutinban kezdem fogadni a soros
>> adatot, a timer0 időzítés fél bit hosszú.
>> A jelenség az, hogy hiába tiltom le az rb0/int-et, az újra
>> engedélyeződik a retfie utasításra.
>> A könyv aztat írja:
>> "The 'return from interrupt' instruction, RETFIE, exits interrupt
>> routine as well as sets the GIE bit, which re-enable RB0/INT
>> interrupts."
>>
>> Ezekszerint én nem tilthatom le a megszakítás rutinomban a további
>> megszakítást?
>> Tud-e valaki valami értelmes megoldást erre a problémára?
>>
> Nincs itt valami félreértés?
> A RETFIE csak a GIE bitet állítja vissza (intcon,7), vagyis a globális
> IT engedélyezőt. Az RB0-nak külön engedélyező bitje van, az intcon,4.
> Viszont: Az IT flagek mindig bebillennek, amikor az interrupt feltétele
> adott. Hiába van tehát letiltva az RB0 interruptod, ha billen az Rb0,
> akkor az ő IT bitje is bebillen. Az engedélyező bitnek annyi a szerepe,
> hogy ha le van tiltva az Rb0 IT, akkor a proci nem ugrik el a 0x04 címre.
> Ez kavarodást okozhat, ha valami egyéb (pl. egy másik IT) miatt mégis a
> 0x04-re ugrik a proci. Ha ott végigkérdezed az IT flageket, akkor
> bebillenve találod azt is, ami le van tiltva.
> Én csinálnék egy jelzőflaget, ami jelzi, hogy most épp kell-e vizsgálni
> az RB0 IT bitet, vagy nem.
> üdv: béla
Azt csinálom éppen.
Teljesen logikus a megoldásod, valsz így lehet.
A jelzőflag, amit mondasz, úgy néz ki, hogy megoldotta a problémát.
De a félreértés a könyvben lehet, amit leírtam idézetet, próbáld másképp
értelmezni. Nekem nem sikerült.
--
Best regards,
Pintér mailto:skandi at t-email.hu
More information about the Elektro
mailing list