avbrott eller loop?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
dreadful
Inlägg: 39
Blev medlem: 10 januari 2005, 02:53:50
Kontakt:

avbrott eller loop?

Inlägg av dreadful »

Funderar lite på programstrukturen hurvida jag ska använda en loop som hela tiden kollar en ingång eller om man ska köra den via ett avbrott. Det handlar om en ingång som aktiverar allting. En annan ingång som används för att kolla att allt är okej. Och en utgång som utlöser processen. Det som är viktigt är följande:

Ingången som aktiverar allting är en microswitch. Den kan komma att ändra läge upp till 20-30ggr i sekunden. Det är oerhört viktigt att den absolut inte missar ett enda avtryck. Och avstudsningen ska ske i programmet.

När utgången har aktiverats för att utlösa hela processen måste den vara aktiv i ett visst antal millisekunder (5-15ms). Detta förinställda värde är oerhört viktigt att det alltid är exakt samma tid den är aktiv.

Det jag har funderat på och fick som förslag är att köra microswitchen via interrupt med en räknare som räknar uppåt. Och sedan köra processen i en loop med samma räknare som räknar neråt. Men vad händer egentligen om man aktiverar microswitchen precis innan processen ska avslutas, kommer den då att fördröjas den tiden det tar för avbrottet att köra? Och hur kan man lösa det med avstudsningen utan att avbrottet tar så lång tid. Känns som att 1. räkna upp räknaren 2. vänta en evighet 3. gå ur avbrottet inte känns som en sådan bra ide...
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Avstudsa med två interrupt.

Ett som triggas om pinnen ändras, och som nollställer en timer när det körs.
Ett som triggas om timern inte nollställs på en viss tid.

Om timer-interruptet körs betyder det att pinnen är stabil och tryckningen kan registreras...
Pjoms
EF Sponsor
Inlägg: 644
Blev medlem: 24 maj 2004, 12:18:40
Ort: Ö-vik

Inlägg av Pjoms »

Att avstudsa en kontakt som inte får klicka och återkommer med nermot 30ms, tycker jag låter lite vanskligt. Går det inte att ersätta microswitcen med nå't elektroniskt alternativ, eller är switchen "fix & fast" sedan tidigare?
Annars är nog cyr:s förslag en vettig lösning.
sodjan
EF Sponsor
Inlägg: 43267
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Håller med Pjoms, en switch (om den inte är av väldigt bra kvalitet)
kan mycket väl studsa i 30 ms. Så det blir väldigt besvärligt att filtrera
bort studsar från "riktiga" omslag.

Jag kollade ett par mikroswitchar hos ELFA, och med 30 omslag/sek
så blir livslängden knappt 10 timmar...
Ska prylen inte användas längre tid än så ??
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

dreadful, du har inte lust att tala om vad för någon intressant applikation det ska användas i? Då är det också lättare att tipsa om bättre lösningar än t.ex. mikroswitchen som kommer slitas ut hyfsat snabbt..
dreadful
Inlägg: 39
Blev medlem: 10 januari 2005, 02:53:50
Kontakt:

Inlägg av dreadful »

Programmet ska styra en paintballmarkör. Microswitchen och kortet (PIC16F628A) sitter redan där så dessa kan inte ändras.

Jag skrev 20-30ggr i sekunden för att ha lite marginal men det är snarare 15-20ggr i sekunden en vanlig person som snabbast kan skjuta. (Man använder 2 fingrar och skjuter växelvis på en lång avtryckare).
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Varför inte ha en knapp som du trycker in och låta elektroniken avfyra 30 kulor i sekunden?
dreadful
Inlägg: 39
Blev medlem: 10 januari 2005, 02:53:50
Kontakt:

Inlägg av dreadful »

Det jag vill bygga först är grunden. Dvs. semiautomatik. Tanken är sedan att lägga till andra lägen som fullauto, ramping osv...
Finns olika regler för olika tävlingar. Vissa måste man köra med semi. Och andra får man köra med ramping, dvs. t.ex. trycka in avtryckaren 5ggr i sekunden skjuter iväg 15bollar i sekunden.
sodjan
EF Sponsor
Inlägg: 43267
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Sitter switchen på någon slags måltavla ?
Eller på skytten ?
dreadful
Inlägg: 39
Blev medlem: 10 januari 2005, 02:53:50
Kontakt:

Inlägg av dreadful »

Så här kan det se ut. Det är alltså avtryckaren på markören som jag håller i. Kortet och batteriet sitter inne i greppet.
Bild
Användarvisningsbild
Nisse
Inlägg: 908
Blev medlem: 9 juli 2006, 23:25:46
Ort: Kumla

Inlägg av Nisse »

sodjan skrev:Sitter switchen på någon slags måltavla ?
Eller på skytten ?
Är nog inte självklart för alla här :) Men i paintballsammanhang kallas bössan för markör. Man markerar motståndaren med färg.

Hmmm, 15-20 boll/sek. Det börjar lukta Q-loader för att hänga med i det tempot, eller bygger du en ny revolotionerande hopper också?

Mvh
Nisse
dreadful
Inlägg: 39
Blev medlem: 10 januari 2005, 02:53:50
Kontakt:

Inlägg av dreadful »

Nej bygger inget revolutionerande. Allting finns redan att köpa. Vill bara programmera ett eget kort för att det kan vara kul att friska upp sina programmeringskunskaper och det är alltid kul att bygga ihop sina egna prylar.

Hopper/Magasin finns det några stycken idag som klarar 15-25 bollar per sekund. Det som är på bilden klarar enkelt 15bps konstant och det är något år sedan det kom ut.
Skriv svar