-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
Multitasking:
Már régebben próbáltam, csak nagyjából emlékszem rá.
Van Arduinon a loop1, loop2,...... módszer, a scheduler libraryt használja.
Ez - úgy rémlik - Atmel procikkal is megy.
Valamin próbáltam működött, de már nem emlékszem többre.
Arra sem, hogy melyik schedulert használtam, mert - úgy rémlik - több is van.
Amikor waitet talál, akkor átugrik a következő loopra. Ha nincs wait, akkor kell egy wait(0), vagy ami ugyanez: yield()
https://www.arduino.cc/en/Reference/SchedulerYieldAmire nekem kellet, arra a ticker is megfelelt.
Most nincs időm rendezgetni, bemásolok ide egy program egy részletét. Ha nem érted, majd kérdezel. Két fűtést vezérel, hogy az 5 sec [PWMdurationHeat1Sec] hány százalékában legyen bekapcsolva. (A százalékokat WEBen állítgatjuk percentHeat1on, percentKolonna )
Ne kérdezd, hogy mi az értelme, mert demonstráció IOT-re.
Kell Ticker típusú objektum, nálam kettő (Ticker heat1 ; Ticker heatKolonna ; )
Mindkettőhöz tartozik egy bekapcsoló (ON) és egy kikapcsoló (OFF) függvény [ void heat1ON () ......]
A lényeg, hogy a bekapcsoló, miután bekapcsolta a fűtést, időzíti [heat1.once], hogy mikor fusson le a kikapcsoló. Egy korai verziót írok be, amiben ellenőrző kiírások is vannak..
A setupban mindkettőre kell egy indítás [ heat1OFF () ; heatKolonnaOFF (); ]
Szépen elketyegnek a program többi részétől függetlenül.
Az elnevezések némileg logikátlanok, de hirtelenjében nem találom azt a verziót, amin már át vannak nevezve.Ticker heat1 ;
Ticker heatKolonna ;float PWMdurationHeat1Sec = 5 ;
uint8_t percentHeat1on = 20 ;
uint8_t percentHeat1off = 100 - percentHeat1on ;uint8_t percentKolonna = 80 ;
uint8_t percentKolonnaoff = 100 - percentKolonna ;uint8_t heat1pin = 12 ;
uint8_t kolonnaPin = 13 ;void heat1ON () {
digitalWrite(heat1pin, HIGH) ;
heat1.once ( (PWMdurationHeat1Sec * percentHeat1on / 100) , heat1OFF ) ;
Serial.print ("heat1 be"); Serial.println(" percentHeat1on = "); Serial.println(percentHeat1on);
} ;void heat1OFF () {
digitalWrite(heat1pin, LOW) ;
heat1.once ( (PWMdurationHeat1Sec * ( 100 - percentHeat1on ) / 100 ) , heat1ON ) ;
Serial.println("heat1 ki");
} ;void heatKolonnaON () {
digitalWrite(kolonnaPin, HIGH) ;
heatKolonna.once ( (PWMdurationHeat1Sec * percentKolonna / 100) , heatKolonnaOFF ) ;
Serial.print ("kolonna be"); Serial.print(" percentkolonna = "); Serial.println(percentKolonna);
} ;void heatKolonnaOFF () {
digitalWrite(kolonnaPin, LOW) ;
heatKolonna.once ( (PWMdurationHeat1Sec * ( 100 - percentKolonna ) / 100 ) , heatKolonnaON ) ;
Serial.print ("kolonna ki");
Serial.print(" percentkolonna = "); Serial.println(percentKolonna);
} ;
Új hozzászólás Aktív témák
- Miskolc és környéke adok-veszek-beszélgetek
- Milyen TV-t vegyek?
- aquark: A ló túloldalán (Intel-AMD szivatás)
- Milyen routert?
- Battlefield 6
- Nyaralás topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Milyen autót vegyek?
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3060, 94% Akkumulátor
- 8 GB-os GeForce RTX 2060 SUPER (OEM HP) - garanciával
- DDR5 8/ 16/ 32GB 4800-5600MHz SODIMM laptop RAM, több db- számla, garancia
- iMac Pro 1.1 2017 Intel Xeon W2150B 64GB 1TB VEGA 64 16GB!!! 1 év garancia!
- Telefon felvásárlás!! Samsung Galaxy S21/Samsung Galaxy S21+/Samsung Galaxy S21 Ultra
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest