[elektro] AVR IRQ

Pataki István pataki.istvan at freemail.hu
Mon Jan 25 18:33:57 CET 2016


Az eredeti kérdésre ugyan nem tudok válaszolni, de én úgy értem, hogy ha 
a megszakítási rutin futása alatt újabb megszakítás(ok) jön(nek), akkor 
azokat se veszítse el.

Erre javasolta valaki, hogy tegyen rá számlálót.

Nem vagyik szoftveres, nézzétek el nekem, ha nagyon rossz az ötletem, de 
én úgy csinálnám, hogy a megszakítás először inkrementálna egy 
számlálót, Ha az éppen 1, akkor törölné a megszakítás flaget, 
engedélyezné a megszakítást és elindítaná a megszakítás végrehajtó 
rutinját, aminek a végén dekrementálná a számlálót. és ha nem nulla, 
akkor ismét futtatná a végrehajtó rutint. Ha az inkrementálás eredménye 
nagyobb, mint 1, akkor törölné a megszakítás flaget, engedélyezné a 
megszakítást, és kilépne. Vagyis a végrehajtás közben beeső 
megszakításkéréseket egy rövid rutinban számlálná, és a végrehajtó rutin 
végén nézné meg, hogy van-e még várakozó esemény.

pi


----- Original Message ----- 
From: "Kiss Gabor" <kissg at ssg.ki.iif.hu>
Newsgroups: hun.lists.elektro
To: <elektro at tesla.hu>
Sent: Monday, January 25, 2016 9:13 AM
Subject: Re: [elektro] AVR IRQ


On 01/24/2016 07:59 PM, Szima Gábor wrote:
> AVR (Mega168) esetén lehet olyan megszakítási módot használni 
> (konkréten
> INT0-nál), hogy ne vesszen el egyetlen megszakítás sem, viszont ne a
> megszakítást szakítsa meg egy újabb esemény hanem az épp futó
> megszakításrutint befejeztével fusson le újból?

Hogyhogy "újból"?
(Van általános elképzelésem a problémáról, csak előbb tisztázzuk, hogy
mit is szeretnél!)

g




More information about the Elektro mailing list