estoy haciendo el código por RTOs porque quiero aprovechar la oportunidad para aprender el manejo de las mismas, adjunto el código pero en este el problema es que no se generan los pulsos.
#include <18f4550.h>
#fuses HS, NOWDT, NOBROWNOUT, NOMCLR, NOPROTECT, NOWRT
#use fast_io(B)
#use delay(clock=20000000)
#use rtos(timer=0,minor_cycle=1us)//8330us) //8330us
float ret = 0;
#task(rate=16666us,max=1us)
void pulsadores(){
//for (;
{
delay_ms(125);
if(input(pin_B6)==0 && ret <=8.33){
output_high(PIN_C0);
ret += 0.231;
}
if(input(pin_B7)==0 && ret > 0){
output_low(PIN_C0);
ret -= 0.231;
}
//rtos_yield();
}
//}
#task(rate=16666us,max=1us)
void fase0(){ //maneja la fase a 0
delay_us(100);
if(input(pin_B0)==0){ //cruce por cero
if(input(pin_B0)==1){
output_high(PIN_C1);
delay_ms(ret);
output_high(PIN_D0);
delay_us(100);
output_low(PIN_D0);
}
}
}
void main(void)
{
port_b_pullups(true);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_adc_ports(no_analogs);
set_tris_B(0b11111111);
set_tris_C(0b00000000);
set_tris_D(0b00000000);
output_low(PIN_D0);
output_low(PIN_D1);
output_low(PIN_D2);
output_low(PIN_C0);
output_low(PIN_C1);
rtos_run();
;
}