Buenas a todos, decir lo primero que estoy aprendiendo y me he embarcado en un proyecto personal, el primero, que fue muy bien, lo hice con la mitica 16f84. Os cuento mi problema, estoy programando C con CCS, pues vereis, ya tenia todo probado emulado..., me he puesto a dejar el programa bonito y de repente ya no funcionaba perfecto..., no se quedaba en sleep, entraba y salir instantaneamente, bueno tran muchas pruebas sin saber "el porque", veo que antes no habia activado WDT y ahora tenia ya el perrito suelto..., os cuento lo que tengo.
La idea es sacar de sleep mediante #int RB, que funciona perfectamente sin el WDT, no tengo configurado que WDT saque al pic de Sleep, os pego un trozo del programa de main:
void Main()
{
set_tris_a (0b000011);
set_tris_b (0b11110000);
set_tris_c (0b00000001);
puerto_a=0;
puerto_b=0;
puerto_c=0;
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_18MS);//da igual el tiempo, el problema estar ..., esta.
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_8);
enable_interrupts(INT_RB);
ext_int_edge(L_TO_H);
enable_interrupts(GLOBAL);
he querido introducir este comando , pero CCS siempre me dice error de parentesis , lo pongo del modo que se me ocurra: WDT_FROM_SLEEP, mas que nada porque parece tener relacion, para llevarlo a sleep asi lo he hecho
void ApagadoManual()
{
while(true)
{
if(!input(Apagado))
delay_ms(300);
if(!input(Apagado))
{
output_low(LedEncendidoMonitor);
CloseMonitor=0;
puerto_a=0; // reinicio puertos para que se apaguen todos los led, ya que quedan algunos
puerto_b=0; // encendidos, pero si esta en sleep.
puerto_c=0;
CloseMonitor=2;
sleep();
}
else
break;
}
}
como no se apagaban los led, configure el ADC para que diera errores y CCS me los registrara, cuando se iba a sleep se paraban los errores pese a estar los led encendidos, ESTO SIN WDT activado , claro.
Que podeis indicarme de este pequeño dilema, no he podido leer un caso igual en toda la red de redes.
Saludos.
Nadie sabe decirme nada....?
La idea es sacar de sleep mediante #int RB, que funciona perfectamente sin el WDT, no tengo configurado que WDT saque al pic de Sleep, os pego un trozo del programa de main:
void Main()
{
set_tris_a (0b000011);
set_tris_b (0b11110000);
set_tris_c (0b00000001);
puerto_a=0;
puerto_b=0;
puerto_c=0;
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_18MS);//da igual el tiempo, el problema estar ..., esta.
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_8);
enable_interrupts(INT_RB);
ext_int_edge(L_TO_H);
enable_interrupts(GLOBAL);
he querido introducir este comando , pero CCS siempre me dice error de parentesis , lo pongo del modo que se me ocurra: WDT_FROM_SLEEP, mas que nada porque parece tener relacion, para llevarlo a sleep asi lo he hecho
void ApagadoManual()
{
while(true)
{
if(!input(Apagado))
delay_ms(300);
if(!input(Apagado))
{
output_low(LedEncendidoMonitor);
CloseMonitor=0;
puerto_a=0; // reinicio puertos para que se apaguen todos los led, ya que quedan algunos
puerto_b=0; // encendidos, pero si esta en sleep.
puerto_c=0;
CloseMonitor=2;
sleep();
}
else
break;
}
}
como no se apagaban los led, configure el ADC para que diera errores y CCS me los registrara, cuando se iba a sleep se paraban los errores pese a estar los led encendidos, ESTO SIN WDT activado , claro.
Que podeis indicarme de este pequeño dilema, no he podido leer un caso igual en toda la red de redes.
Saludos.
Nadie sabe decirme nada....?
Última edición por un moderador: