duinozone.cz - Arduino a Raspberry fórum

Autor Téma: problem z delay  (Přečteno 1788 krát)

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:problem z delay
« Odpověď #30 kdy: Únor 08, 2017, 21:33:23 odpoledne »
tohle byl samozřejmě základní program pro ukázku jak řešit menu.
Právě ty různé delaye pak zpusobují porblémy s detekci talčítka.
Já to řeším bu´d tak, že použiju knihovnu pro časovač TIMER ONE
http://playground.arduino.cc/Code/Timer1
a to tak, že si navolím opakování 100ms a každých 100 ms mi zavola podprogrma pro detekci ltačítka a pohyb v menu. Udělám tak vastně "vedlejší vlákno pro paralellní funkci" V podstatě jak uběhne 100ms tak se zastaví hlavní smyčka loop() provede se ta detekce talčítka, pohyb v menu a až to skončí tak hlavní smyčka pokračuje dál.

Druhá varianta je takový "ojeb". Použiju analogový vstup jako digitální a když stisknu tlačítko, tak se sníží napětí pod 1/3 napájecího což stačí na detekci "log 0!.  Na to mám navěsenou funkci přerušení, takže když něco stisknu tak se přeruší hlavní program a opět zavolá podfunkce detekce tlačítka a pohyb v menu. je třeb upravit klávesnici tak aby fungovalal pouze v dolní 1/3 napájecího napětí, takže se musí změnit odpory. já jsem si udělal nový LCD shield a dal jiné odpory.
https://www.arduino.cc/en/Reference/AttachInterrupt

Samozřejmě funkce detekce tlačítka apohyb v menu je pak vysekaný z toho původního kodu.
Zobrazení menu už bych řešil opět v hlavní smyčcce. Tam okamžitou reakci nepotřebuješ.

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
Re:problem z delay
« Odpověď #31 kdy: Březen 06, 2017, 17:38:07 odpoledne »
Zdravim
mam dve arduina z jedneho potrebujem poslat do druheho teploty pricom ten vysielaci bude 18b20 iba citat a posielat ich cez   TX a ten druhy by ich mal vediet precitat a pracovat z tymi hodnotami. ako spravit kod vo visielaci a v primaci? googlil som a nejako som nevedel dat nic dokopy.  :-\

dakujem za rady

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:problem z delay
« Odpověď #32 kdy: Březen 06, 2017, 18:45:28 odpoledne »
řekl bych, že to do tohoto tématu nepatří.
Založ si nové vlákno a můžeme se na to podívat ...