Förseningar inom RTOS uppgift.

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:
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);}}}
Jag har kollat ​​den här koden på en hård och det verkar fungera bra.
 
Du måste kontrollera din RTOS dokumentation. Är delay_ms () funktionen en OS-medföljande, eller något som du skrev själv? Om det är ett OS som funktion, då fördröjningen () kan sätta processen tillfälligt sova för att andra processer att köra. Om det körs på hårdvara som du säger, så är det bra. Simuleringar är just det - simuleringar, inte nödvändigtvis korrekt.
 
Din funktion delay_ms () liknar mig en av GCC kompilator för AVR. Är det verkligen OS funktion?
 
din funktion delay_ms () liknar mig en av GCC kompilator för AVR. Är det verkligen OS funktion?
Jag har kollat ​​det. det är inte OS-funktionen. Dess CCS kompilatorn funktion. Jag förstår inte varför det fungerar bra. OS tillhandahåller funktionen RTOS_AWAITS (uttryck). Men det kontrollerar till och uttryck för att vara sant. Hur kan jag använda den för en tidsfördröjning? [Color = "Silver"] [SIZE = 1] ---------- Post läggas till 05:36 ---------- Tidigare inlägg var 05:30 ---------- [/SIZE] [/COLOR]
din funktion delay_ms () liknar mig en av GCC kompilator för AVR. Är det verkligen OS funktion?
Jag har kollat ​​det. det är inte OS-funktionen. Dess CCS kompilatorn funktion. Jag förstår inte varför det fungerar bra. OS tillhandahåller funktionen RTOS_AWAITS (uttryck). Men det kontrollerar till och uttryck för att vara sant. Hur kan jag använda den för en tidsfördröjning?
 
Kära w_bwr , för att du först fråga: du kan använda någon försening RTOS uppgift. Du kan även stoppa den för evigt) Du ska inte använda någon försening funktioner inte från RTOS tjänsten biblioteket, annars din RTOS kan inte fungera ordentligt. Jag rekommenderar er att läsa manualen för din RTOS. Det måste finnas funktioner som något som "sömn".
 

Welcome to EDABoard.com

Sponsor

Back
Top