Hvornår bruger man interrupts på Ar duino?

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?

Reply to
Martin Larsen
Loading thread data ...

Den 25-10-2010 23:39, Martin Larsen skrev:

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:

formatting link

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

Leif

Reply to
Leif Neland

en

et

,

Jeg har aldrig brugt en Arduino, men atmega har mulighed for pin change interrupt p=E5 de fleste ben, input capture i timeren er ogs=E5 en mulighed s=E5 der er mulighed for mange flere end to eksterne interrupts

-Lasse

Reply to
langwadt

"Leif Neland" skrev i en meddelelse news:4cc6eac6$0$36587$ snipped-for-privacy@dtext01.news.tele.dk...

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

formatting link

mvh JBH

Reply to
JBH

Tak for linket.

Reply to
Martin Larsen

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

Reply to
Martin Larsen

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

Reply to
Christen Fihl

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.