Hjälp med avstudsare.

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Om jag förstår det rätt så pollar du strömbrytaren 1000 ggr i sekunden i ett timer-interrupt?

I sådana fall kan du hoppa över delayen och istället kolla att du haft samma värde de 5 eller 10 senaste pollningarna och först då utföra det som ska göras när strömbrytaren ändras.
Användarvisningsbild
Icecap
Inlägg: 26612
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag brukar göra sånt vid att räkna upp eller ner ett värde beroende på input. När värdet sedan når noll eller X är det avkodat färdigt.

Kod: Markera allt

if(input)
  {
  if(Counter < 100) Counter++;
  else Output = 1;
  }
else
  {
  if(Counter > 0) Counter--;
  else Output = 0;
  }
Edit: värdet 100 är vald på måfå.
Senast redigerad av Icecap 17 mars 2005, 18:48:38, redigerad totalt 1 gång.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31173
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Vilken är teoretiskt den kortast möjliga tiden som mikrobrytaren kommer kunna vara intryckt?
Användarvisningsbild
ensten
EF Sponsor
Inlägg: 3759
Blev medlem: 19 oktober 2004, 15:55:20
Ort: Hudiksvall

Inlägg av ensten »

Det verkar som om mjukvaran i styrningen till pelletsbrännaren jobbar med tre tider.
30 sekunder - Startsats (Fyller på ordentligt i brännarkoppen)
5 sekunder - Normalladdning under drift
1 sekund - Underhållseldning (Den underhållseldar om det blir allt för tätt mellan startsatserna.) Dvs den släcker inte brännaren om den räknar med att behöva elda igen inom kort. Eftersom min mätmetod är snabbare än den upplösning som tillverkaren använt sig av så blir det i realiteten ungefär så här:
29,470 sekunder
5,037 sekunder
1,040 sekunder

En annan variant som inte är så snygg är att helt enkelt strunta i nollvärdet som genereras vid studsen, den stör ju så att säga inte eftersom den levererar värdet '0'.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31173
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Eftersom den kortaste tiden är ca 1s så startar du tidtagnningen vid första avlästa tillslaget, och sen helt enkelt strunta i att läsa in något över huvud taget från brytaren nästkommande 0,1s.
Skriv svar