W
w_bwr
Guest
Controller: PIC 18F452 Compiler: CCS CCS har en inbyggd RTOS som inte är i förebyggande syfte. Jag har skrivit enkla RTOS uppgift som detekterar en knapp och om du trycker sedan stega räkningen på skärmen. Skjut knappen fungerar på grundval av detta: kontrollera för knapp, om du trycker vänta 100 ms, kontrollera igen om det fortfarande pressad, jag har en giltig press. väntar 100 ms efter att knappen intryckt en giltig version. Min uppgift utför alla 100US och max körtid är 50us. Jag är förvirrad här, kan förseningar mer max tid att användas i ett RTOS uppgift? Finns det andra metoder att hålla reda på tiden i en RTOS uppgift? Här är koden:
Jag har kollat den här koden på en hård och det verkar fungera bra.
Code:
# uppgift (hastighet = 100US, max = 50us) void Button_input () {if {delay_ms (100), om {dt_lcd_gotoxy (100, (ingång (PIN_A4)!) (Ingång (PIN_A4)!) 2); printf (dt_lcd_printchar "% lu", timer0); timer0 + +; delay_ms (100);}}}