Fråga om Arduino och Simpletimer

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
RadioDJ
Inlägg: 407
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Fråga om Arduino och Simpletimer

Inlägg av RadioDJ »

Jag håller på att grotta ner mig i SimpleTimer biblioteket och har stött på ett problem.
Jag använder flera funktioner redan som fungerar utmärkt.
Det som jag nu inte har fått kläm på är:
Jag anropar: .SetTimer (1000, Nisse, 10);
Detta får funktionen Nisse att utföra en viss sak.
Efter 10 anrop är allt klart och stannar. Inga nya anrop skickas till Nisse.
Hur kan jag i rutinen Nisse veta att det inte kommer fler anrop?
Jag har provat med att göra "10" till en variabel och i Nisse räkna upp en räknare varje gång och sedan jämföra räknaren med antal gånger som Nisse anropas.
Detta fungerar men då antalet anrop kan ha olika värde är detta inget bra sätt.
Skulle vilka hitta ett bättre sätt där jag inte behöver hålla koll på antalet anrop.

Någon som har någon ide?
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Fråga om Arduino och Simpletimer

Inlägg av Icecap »

Jag anser att du griper an saken på fel sätt.

Min lösning är att ha en timer-interrupt med lämplig hastighet.
Om man sedan har en variabel (volatile t_uint8 Do_It) kan man starter ISR'n vid att skriva:

Kod: Markera allt

if(Do_It)
  {
  Do_It--;
  ...gör vad som ska göras
  }
Sedan är det bara att låta main-loop sätta värdet på Do_It till antal loops.
RadioDJ
Inlägg: 407
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: Fråga om Arduino och Simpletimer

Inlägg av RadioDJ »

Tack Icecap.
Ska prova och se om detta kan lösa mina problem.
Skriv svar