M
M3GAPL3X
Guest
Hi Guys,
I am getting następujące błędy z jakiegoś powodu.Zasadniczo jestem za pomocą licznika, aby śledzić, jak długo wciśnięty jest przycisk.W WDT budzi się co 18 ms.
Kod:# include <htc.h>
# define BUTTON_INPUT GP0/ / Sleep komendy
void Sleep (void)
(
# asm
spać
# endasm
)/ / główna funkcja
void main ()
(
podczas gdy (1) / / nie zawsze
(
CLRWDT (); / / usunąć watchdog'iem Minutnik
CheckButton (); / / sprawdza przycisk
WDTCON = 1; / / umożliwić watchdog'iem Minutnik
Sleep (); / / iść spać przez 18 ms
WDTCON = 0; / / wyłączyć watchdog'iem Minutnik
CheckButton (); / / sprawdza przycisk ponownie
)
)/ / Funkcja: CheckButton
/ / Opis: Sprawdź stan RC2
/ / jeśli aktywnych niskie, podwyżki COUNTER.
Aby sprawdzić, czy jest to ponad 3 sekundy.
Jeżeli tak, należy dostarczyć moc
/ / do głównego komputera.
Jeśli aktywnych wysoki, aby zresetować COUNTER 0void CheckButton (void)
(
unsigned int counter = 0;if (BUTTON_INPUT == 0) / / jeśli aktywnych niskie, podwyżki kontrgwarancja
(
COUNTER ;
if (COUNTER> = 10000) / / 3
(
/ / WYŚLIJ POWER TO HOST, w testach, ŚWIATŁA LED
)
)
else / / else - wyzerować licznik wartości z powrotem do 0, ponieważ przycisk nie jest naciśnięty
(
COUNTER = 0;
)
)
I am getting następujące błędy z jakiegoś powodu.Zasadniczo jestem za pomocą licznika, aby śledzić, jak długo wciśnięty jest przycisk.W WDT budzi się co 18 ms.
Kod:# include <htc.h>
# define BUTTON_INPUT GP0/ / Sleep komendy
void Sleep (void)
(
# asm
spać
# endasm
)/ / główna funkcja
void main ()
(
podczas gdy (1) / / nie zawsze
(
CLRWDT (); / / usunąć watchdog'iem Minutnik
CheckButton (); / / sprawdza przycisk
WDTCON = 1; / / umożliwić watchdog'iem Minutnik
Sleep (); / / iść spać przez 18 ms
WDTCON = 0; / / wyłączyć watchdog'iem Minutnik
CheckButton (); / / sprawdza przycisk ponownie
)
)/ / Funkcja: CheckButton
/ / Opis: Sprawdź stan RC2
/ / jeśli aktywnych niskie, podwyżki COUNTER.
Aby sprawdzić, czy jest to ponad 3 sekundy.
Jeżeli tak, należy dostarczyć moc
/ / do głównego komputera.
Jeśli aktywnych wysoki, aby zresetować COUNTER 0void CheckButton (void)
(
unsigned int counter = 0;if (BUTTON_INPUT == 0) / / jeśli aktywnych niskie, podwyżki kontrgwarancja
(
COUNTER ;
if (COUNTER> = 10000) / / 3
(
/ / WYŚLIJ POWER TO HOST, w testach, ŚWIATŁA LED
)
)
else / / else - wyzerować licznik wartości z powrotem do 0, ponieważ przycisk nie jest naciśnięty
(
COUNTER = 0;
)
)