M
M3GAPL3X
Guest
Ahoj Lidi,
Jsem jak se tyto chyby z nějakého důvodu.V podstatě jsem pomocí čítače ke sledování toho, jak dlouhou dobu stisknutí tlačítka.WDT se probudí každých 18 ms.
Kód:# include <htc.h>
# define BUTTON_INPUT GP0/ / Klidový příkaz
Klidový void (void)
(
# asm
spát
# endasm
)/ / hlavní funkce
void main ()
(
while (1) / / dělat věčně
(
CLRWDT (); / / vymazat WatchDog časovač
CheckButton (); / / check tlačítko
WDTCON = 1, / / umožnit WatchDog časovač
Sleep (); / / jít spát za 18 ms
WDTCON = 0; / / vypnutí časovače WatchDog
CheckButton (); / / zkontrolovat znovu tlačítko
)
)/ / Funkce: CheckButton
/ / Popis: Informace o stavu RC2
/ / je-li aktivní nízký přírůstek POČÍTADLO.
POČÍTADLO zkontrolovat, zda je to více než 3 sekundy.
Pokud ano, uveďte moc
/ / do hlavního počítače.
Je-li aktivní vysoká, reset proti 0void CheckButton (void)
(
unsigned int counter = 0;if (BUTTON_INPUT == 0) / / je-li aktivní nízký přírůstek v POČÍTADLO
(
Counter ;
if (COUNTER> = 10000) / / 3
(
/ / POSLAT POWER TO HOST, při testování, SVĚTELNOU AN LED
)
)
jinde / / jinak - resetovat POČÍTADLO zpět na hodnotu 0, protože není stisknuto tlačítko
(
Counter = 0;
)
)
Jsem jak se tyto chyby z nějakého důvodu.V podstatě jsem pomocí čítače ke sledování toho, jak dlouhou dobu stisknutí tlačítka.WDT se probudí každých 18 ms.
Kód:# include <htc.h>
# define BUTTON_INPUT GP0/ / Klidový příkaz
Klidový void (void)
(
# asm
spát
# endasm
)/ / hlavní funkce
void main ()
(
while (1) / / dělat věčně
(
CLRWDT (); / / vymazat WatchDog časovač
CheckButton (); / / check tlačítko
WDTCON = 1, / / umožnit WatchDog časovač
Sleep (); / / jít spát za 18 ms
WDTCON = 0; / / vypnutí časovače WatchDog
CheckButton (); / / zkontrolovat znovu tlačítko
)
)/ / Funkce: CheckButton
/ / Popis: Informace o stavu RC2
/ / je-li aktivní nízký přírůstek POČÍTADLO.
POČÍTADLO zkontrolovat, zda je to více než 3 sekundy.
Pokud ano, uveďte moc
/ / do hlavního počítače.
Je-li aktivní vysoká, reset proti 0void CheckButton (void)
(
unsigned int counter = 0;if (BUTTON_INPUT == 0) / / je-li aktivní nízký přírůstek v POČÍTADLO
(
Counter ;
if (COUNTER> = 10000) / / 3
(
/ / POSLAT POWER TO HOST, při testování, SVĚTELNOU AN LED
)
)
jinde / / jinak - resetovat POČÍTADLO zpět na hodnotu 0, protože není stisknuto tlačítko
(
Counter = 0;
)
)