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