Sida 1 av 1

Fråga om Arduino och Simpletimer

Postat: 11 juli 2020, 18:35:38
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?

Re: Fråga om Arduino och Simpletimer

Postat: 11 juli 2020, 18:44:31
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.

Re: Fråga om Arduino och Simpletimer

Postat: 13 juli 2020, 08:24:33
av RadioDJ
Tack Icecap.
Ska prova och se om detta kan lösa mina problem.