M
maha384
Guest
Questo codice non funziona quando mi ENABLE WDT.E NON SO IL PROBLEMA O COME FARE Watchdog Timer LAVORO.# define AC PORTA.F1
# define PORTA.F2 VALVOLA
# define STARTER PORTA.F3
# define INPUT PORTB.F3
# define ALLARME PORTB.F7
# define RESET PORTB.F6
# define ritardo 1.000
# define startup_prd 5
# define wait_prd 10
# define noload_prd 20
void main (void)
(
unsigned char n, x;
TMR0 = 0x00;
OPTION_REG = 0x0F;
TRISA = 0x02;
TRISB = 0x48;
VALVOLA = 0;
STARTER = 0;
ALLARME = 0;
standby:
ASM CLRWDT ();
VALVOLA = 0;
STARTER = 0;
delay_ms (delay);
if (input == 1) (goto standby
else (goto avvio
avvio:
ALLARME = 0;
delay_ms (delay);
for (n = 0; n <3; n )
(
delay_ms (delay);
if (input == 1) goto standby;
VALVE = 1;
STARTER = 1;
for (x = 0; x <startup_prd; x )
(
Delay_ms (delay);
/ / asm CLRWDT ();
if (input == 1) goto standby;
if (AC == 0) (STARTER = 0; goto normal
ASM CLRWDT) ();
VALVOLA = 0;
STARTER = 0;
if (n == 2) (ALLARME = 1; allarme goto
delay_ms (delay);
if (input == 1) goto standby;
for (x = 0; x <wait_prd; x )
(
delay_ms (delay);
ASM CLRWDT ();
)
if (input == 1) goto standby;
)
normale:
ASM CLRWDT ();
if (AC == 1) (ALLARME = 1; VALVOLA = 0; allarme goto
delay_ms (delay);
if (input == 0) goto normale;
if (input == 1) noload goto;
normale goto;
Allarme:
ASM CLRWDT ();
delay_ms (delay);
if (RESET == 0) (ALLARME = 0; goto attesa
goto di allarme;
noload:
for (n = 0; n <noload_prd; n )
(
delay_ms (delay);
asm (CLRWDT;
)
if (input == 0) goto normale;
VALVOLA = 0;
goto attesa;
)
# define PORTA.F2 VALVOLA
# define STARTER PORTA.F3
# define INPUT PORTB.F3
# define ALLARME PORTB.F7
# define RESET PORTB.F6
# define ritardo 1.000
# define startup_prd 5
# define wait_prd 10
# define noload_prd 20
void main (void)
(
unsigned char n, x;
TMR0 = 0x00;
OPTION_REG = 0x0F;
TRISA = 0x02;
TRISB = 0x48;
VALVOLA = 0;
STARTER = 0;
ALLARME = 0;
standby:
ASM CLRWDT ();
VALVOLA = 0;
STARTER = 0;
delay_ms (delay);
if (input == 1) (goto standby
else (goto avvio
avvio:
ALLARME = 0;
delay_ms (delay);
for (n = 0; n <3; n )
(
delay_ms (delay);
if (input == 1) goto standby;
VALVE = 1;
STARTER = 1;
for (x = 0; x <startup_prd; x )
(
Delay_ms (delay);
/ / asm CLRWDT ();
if (input == 1) goto standby;
if (AC == 0) (STARTER = 0; goto normal
ASM CLRWDT) ();
VALVOLA = 0;
STARTER = 0;
if (n == 2) (ALLARME = 1; allarme goto
delay_ms (delay);
if (input == 1) goto standby;
for (x = 0; x <wait_prd; x )
(
delay_ms (delay);
ASM CLRWDT ();
)
if (input == 1) goto standby;
)
normale:
ASM CLRWDT ();
if (AC == 1) (ALLARME = 1; VALVOLA = 0; allarme goto
delay_ms (delay);
if (input == 0) goto normale;
if (input == 1) noload goto;
normale goto;
Allarme:
ASM CLRWDT ();
delay_ms (delay);
if (RESET == 0) (ALLARME = 0; goto attesa
goto di allarme;
noload:
for (n = 0; n <noload_prd; n )
(
delay_ms (delay);
asm (CLRWDT;
)
if (input == 0) goto normale;
VALVOLA = 0;
goto attesa;
)