Hvornår bruger man interrupts på Ar duino?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Jeg er helt ny med Arduino, så derfor er jeg i tvivl om hvordan man
bedst registrerer input som kommer uregelmæssigt og evt. med lang tid
imellem.

Et simpelt eksempel kunne være et lille kredsløb som logger hvis nogen
har ringet på døren. Enten kunne man lave en løkke som konstant tjekker
om der trykkes på ringetrykket, eller man kunne lave en interrupt-rutine.

Et andet eksempel med kortere intervaller, men stadig uregelmæssigt, er
et kredsløb der kunne måle elforbruget ved at tælle lyspulserne fra
elmåleren.

Hvis det bare var en demo, ville en simpel løkke der konstant poller
input være det letteste, men jeg forestiller mig at min Arduino skal
lave en masse ting hen ad vejen, og så er de jeg tænker på om den ville
misse nogle input hvis man kun pollede for dem?

På den anden side er den jo trods alt ret hurtig, og selv en kort
lyspuls fra elmåleren ville sikkert være let for den at opdage?

Kort sagt, er der nogen retninglinjer for hvornår man poller og hvornår
man bruger interrupts?

Og så et ps: Nu er der jo kun 2 eksterne interrupts på Arduinoen, men
ville det være muligt at forbinde hver indgang gennem en diode til en
fælles interrupt-indgang, således at interrupt-rutinen registrerer et
signal og derefter poller for at finde ud af hvad de enkelte indgange viser?

Re: Hvornår bruger man interrupts på Arduino?
Den 25-10-2010 23:39, Martin Larsen skrev:

Quoted text here. Click to load it

Det ville så give det problem, at hvis et signal trak i interruptlinien,
så vil det ikke blive registreret at andre også gjorde det før den
første slap.

Så skal du måske bruge en interruptcontroller:
http://www.intersil.com/products/deviceinfo.asp?pn82%C59A

Om en sådan kan interfaces til en Arduino ved jeg ikke.

Leif

Re: Hvornår bruger man interrupts på Arduino?
Quoted text here. Click to load it

Jeg har aldrig brugt en Arduino, men atmega har mulighed for pin
change interrupt pE5% de fleste ben, input capture i timeren er ogsE5% en
mulighed
sE5% der er mulighed for mange flere end to eksterne interrupts

-Lasse

Re: Hvornår bruger man interrupts på Arduino?

Quoted text here. Click to load it


Fungerer Arduino'ens interrupt anderledes end en "normal"  mcu, hvor man kan
sætte et interruptregister til at trigge på et niveau skift ?

http://gonium.net/md/2006/12/20/handling-external-interrupts-with-arduino /

mvh
JBH



Re: Hvornår bruger man interrupts på Arduino?

Quoted text here. Click to load it

Tak for linket.

Re: Hvornår bruger man interrupts på Arduino?

Quoted text here. Click to load it

Det tror jeg umiddelbart ikke ville gøre noget. Hvis der fx kommer et
interrupt fra elmåleren og den også lige tjekker ringetrykket, så vil
den jo opdage om der tilfældigvis samtidigt er nogen der ringer på døren.

Jeg forestiller mig at interrupt-rutinen tjekker samtlige porte når den
bliver kaldt.

Martin

Re: Hvornår bruger man interrupts på Arduino?
Quoted text here. Click to load it

Du kan have en interrupt rutine for hver enkelt mulig interrupt.
Så du behøver ikke checke alle input, kun den det vedrører.

Interrupt rutiner kan kaldes tusindvis af gange hver sekundt, så du mister
ikke noget, selvom der kun trykkes et halvt sekundt på dørklokken.

Christen



Site Timeline