//Lo desactivo y activo:Esta manera de "enable/disable" es ensambler no? se puede implementar aunque el resto este escrito en ccs?
TMR1ON = 0;
TMR1ON = 1;
Esta manera de "enable/disable" es ensambler no? se puede implementar aunque el resto este escrito en ccs?
MAIN(){
setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);//|RTCC_8_bit);///PRESCALER 4
clear_interrupt(int_timer1);
SET_TIMER1(1); //okp=0;
disable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL); delay_ms(2);
lcd_gotoxy(1,3);
printf(lcd_putc,"T1.%u",TMR1ON);
delay_ms(1000); lcd_putc("\f");
WHILE{
......
.....
}
}
Tengo para rato mucho mas que mirar pero a saber porque inicialmente da TMR1ON=1 desde el principio
#INT_TIMER0
void TIMER0_isr(void){
if(!okp){//1º IF//int1 okp se refiere a ocupado
if(puerta==piso){//2º IF //Se abre la (puerta exterior corespondiente == al piso donde se encuentra el ascensor)
okp=1;//Este Ascensor ya esta "okupado=1" <--SOLO SE CUMLE ESTO Y ENTONCES YA NO VUELVE A ENTRAR EN 2º IF
f=2;//funcion_2º que va a desempeñar Timer_1 //EN ESTE CASO usuario entro se espera cierre puertas=8.todas_cerradas
T1=0;//puesta a 0 de contador de espera
[size=12pt] //ESTA ENTRADA A Timer1 NO SE CUMPLE[/size]
clear_interrupt(int_timer1);
SET_TIMER1(1000);
enable_interrupts(INT_TIMER1); }//delay_ms(2);
}
}
//ESTA ENTRADA A Timer1 NO SE CUMPLE Me parece que por una chorrada al estilo "efecto mariposa" ya estaba equivocado de antes ni siquiera entraba en el 1º IF(!OCUPADO) como creia desde principio main() ya puso ocupado=True, Ahora esto al menos ya va