priznak preruseni u 8051

Vladimír Anděl vaelektronik@mirnet.cz
Středa Červenec 6 13:45:13 CEST 2005


Procesor mi beha ve smycce, vzdycky probehne programovou smycku, prejde do
rezimu IDL (PCON=1) a prerusenim od casovace se zase probudi. Ted potrebuju,
abych mohl zachytit impulz, ktery privedu na prerusovaci vstup (muze prijit
kdykoliv, at je zrovna procesor v zakladni programove smycce, v preruseni od
casovace nebo v IDL rezimu) a abych si nekde v zakladni smycce mohl precist,
ze impulz prisel.
Takze kdyz treba INT0 bude mit vyssi prioritu nez T0, sice to do nej skoci
kdykoliv, ale problem by byl, kdyby se zapomnel pozadavek od casovace
(zavisi na nem casovani celeho programu). Kdyz mu dam nizsi prioritu, tak
zase aby preruseni od casovace nezpusobilo "zapomenuti" pozadavku od INT.
Jinak mam tady knizku Skalicky, Mikroprocesory rady 51 (BEN) (strana 17) a
potom takovou starou zelenou, co kdysi vydala Tesla Eltos. Mam dojem, ze
nektere veci jsou tam az podezrele stejne :-)
Andel
----- Original Message ----- 
From: "Jan Waclawek" <wek@evona.sk>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Wednesday, July 06, 2005 1:17 PM
Subject: Re: priznak preruseni u 8051


Vladimír Anděl wrote:
> vsude se pise, ze kdyz pri preruseni s vyssi prioritou dam
> pozadavek s nizsi prioritou, uz se neprovede ani po navratu z te vyssi
> urovne preruseni.

Hm, mohli by ste to "vsude" konkretizovat?
Odporucam taky zdroj rychlo zahodit.
Ultimativnym zdrojom informacie pre 8051 je User's manual, 27238302.pdf
od intelu, v kapitole Architectonal overview, stat Interrupt Structure,
strana 1-20; alebo este lepsie, v kapitole 8051/8052 hardware
description stat Interrupts na strane 3-23. Toto je bohuzial scanovane,
takze je vhodnejsie pouzivat prakticky ekvivalentne dokumenty od
Philipsu
(http://www.semiconductors.philips.com/acrobat/various/80C51_FAM_ARCH_1.pdf,
http://www.semiconductors.philips.com/acrobat/various/80C51_FAM_HARDWARE_1.pdf)
ci Atmela.
V kocke, ak neprebieha prerusenie vyssej priority, ak neprebieha , ak je
nastavi flag, ktory prerusenie sposobuje (), a je dane prerusenie
povolene, tak sa vykona, nezavisle na existencii povoleneho prerusenia
inej urovne. To, ze kedy bol dany flag nastaveny (t.j. pocas prerusenia
ci mimo neho) je uplne irelevantne; pri odchode z akehokolvek prerusenia
(reti) sa nenastavuje ani nenuluje ziadny z uzivatelom viditelnych
flagov (akurat sa nuluju interne flagy, vdaka ktorym mcu "vie", ze prave
prebieha prerusenie, a ktorej priority).

Flag sposobujuci prerusenie je vynulovany hardwarom pri vykonani volania
obsluznej rutiny prerusenia, s vynimkou flagov ti a ri (to je
pochopitelne, kedze zdielaju prerusovaci vektor) (a u '52 aj tf2/exf2).
Pochopitelne je vzdy mozne ho nulovat aj softwarom, v takom pripade sa
uz prerusenie nevyvola.

Inak nie presne chapem Vas problem, neda sa pouzit akykolvek bit v
pamati? Mohli by ste troska konkretizovat Vas napad?

wek

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list