navegante 420
la nave nodriza
Pordonad, es que estoy tan agoviado con esto que ya pierdo el oremus, teoricamente deveria de funcianar el miercoles y veo que no me va a ser posible.....
Lo de los dos niveles lo tenia claro, pero al usar dos interrupciones lo que no tenia nada es donde manda cada una, y claro si no os pongo el texto poco podeis ver, XD.
Os dejo el texto y haber si puedes oscar ponerme eso que dices de dedactivar las interrupciones manualmente, o si por el contrario esta to mal, que no me extrañaria lo mas minimo.
#include "F:\puente definitivo\gestorcarreras.h"
#use fast_io(D)
#int_RB
void RB_isr(void)
{
if(input(pin_B4)==0) //Botón de programación
{
output_high (pin_D2);
delay_ms(500);
output_low (pin_A4);
}
if(input(pin_B5)==0) //botón inicio de carrera
{
output_high (pin_D3);
delay_ms(500);
output_low (pin_D3);
}
if(input(pin_B6)==0) //cuenta vueltas coche 1
{
output_high (pin_D4);
delay_ms(500);
output_low (pin_D4);
}
if(input(pin_B7)==0) //cuentavueltas coche 2
{
output_high (pin_D5);
delay_ms(500);
output_low(pin_D5);
}
}
#int_COMP
void COMP_isr(void)
{
if (C1OUT==0) output_high (pin_D0); Seguidor de tension coche1
if (C1OUT==1) output_low(pin_D0);
if (C2OUT==0) output_high (pin_D1); seguidor de tension coche 2
if (C2OUT==1) output_low(pin_D1);
}
void main()
{
set_tris_D(0x1F);
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_vref(VREF_LOW|15);
setup_comparator(A0_VR_A1_VR);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RB);
enable_interrupts(INT_COMP);
setup_oscillator(OSC_8MHZ|OSC_TIMER1|OSC_31250|OSC_PLL_OFF);
// TODO: USER CODE!!
Lo de los dos niveles lo tenia claro, pero al usar dos interrupciones lo que no tenia nada es donde manda cada una, y claro si no os pongo el texto poco podeis ver, XD.
Os dejo el texto y haber si puedes oscar ponerme eso que dices de dedactivar las interrupciones manualmente, o si por el contrario esta to mal, que no me extrañaria lo mas minimo.
#include "F:\puente definitivo\gestorcarreras.h"
#use fast_io(D)
#int_RB
void RB_isr(void)
{
if(input(pin_B4)==0) //Botón de programación
{
output_high (pin_D2);
delay_ms(500);
output_low (pin_A4);
}
if(input(pin_B5)==0) //botón inicio de carrera
{
output_high (pin_D3);
delay_ms(500);
output_low (pin_D3);
}
if(input(pin_B6)==0) //cuenta vueltas coche 1
{
output_high (pin_D4);
delay_ms(500);
output_low (pin_D4);
}
if(input(pin_B7)==0) //cuentavueltas coche 2
{
output_high (pin_D5);
delay_ms(500);
output_low(pin_D5);
}
}
#int_COMP
void COMP_isr(void)
{
if (C1OUT==0) output_high (pin_D0); Seguidor de tension coche1
if (C1OUT==1) output_low(pin_D0);
if (C2OUT==0) output_high (pin_D1); seguidor de tension coche 2
if (C2OUT==1) output_low(pin_D1);
}
void main()
{
set_tris_D(0x1F);
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_vref(VREF_LOW|15);
setup_comparator(A0_VR_A1_VR);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RB);
enable_interrupts(INT_COMP);
setup_oscillator(OSC_8MHZ|OSC_TIMER1|OSC_31250|OSC_PLL_OFF);
// TODO: USER CODE!!