avbrott eller loop?
Postat: 5 september 2006, 18:23:29
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...
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...
