void main(void) { /* Write your local variable definition here */ int a = 0; /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/ PE_low_level_init(); /*** End of Processor Expert internal initialization. ***/ /* Write your code here */ setReg(ADC_CLIST1,0x12); setReg(ADC_SDIS,0xFF88); setRegBitGroup(ADC_CTRL1,SMODE,0x01); AD1_Enable(); Cpu_EnableInt(); while(1) { WDog1_Clear(); a++; if(a) a = 0; } }
/* ** =================================================================== ** Event : Int_Anemometro_2 (module Events) ** ** Component : Entrada_Anemometro_2 [ExtInt] ** Description : ** This event is called when an active signal edge/level has ** occurred. ** Parameters : None ** Returns : Nothing ** ==============================-===================================== */ void Int_Anemometro_2(void) { /* place your Entrada_Anemometro_2 interrupt procedure body here*/ /* place your Entrada_Anemometro_1 interrupt procedure body here*/ /* * Envío y captura de Tiempo de Señal No.2 */ if(Med_1 == FALSE && Med_2 == TRUE) { Entrada_Anemometro_2_Disable(); Entrada_Anemometro_1_Disable(); if(Tiempo_GetCounterValue(&Tiempo_2.Val_Word) == ERR_OK); /* if(Tiempo_2.Val_Word > Tiempo_2_c.Val_Word) Tiempo_2.Val_Word = Tiempo_2.Val_Word - Tiempo_2_c.Val_Word; else Tiempo_2.Val_Word = 0xFFFF; */ Convertir_Dato_Serial(Tiempo_2.Val_Word,Tiempo_Anemometro_2); (void)Senal_25u_2_Disable(); //(void)AD1_EnableEvent(); (void)AD1_Enable(); (void)S1_EnableEvent(); (void)S2_EnableEvent(); //(void)S1_ClearTxBuf(); //Tiempo_Anemometro_2[0] = 0x07; (void)S1_ClearTxBuf(); //Tiempo_Anemometro_2[0] = 0x07; if(S1_SendBlock(Tiempo_Anemometro_2,5,&Enviado) == ERR_OK); //(void)S1_ClearTxBuf(); tiempo_OK = TRUE; /* Med_1 = TRUE; Med_2 = FALSE; */ //Entrada_Anemometro_1_Enable(); Med_2 = FALSE; } }
/* ** =================================================================== ** Event : Int_Anemometro_1 (module Events) ** ** Component : Entrada_Anemometro_1 [ExtInt] ** Description : ** This event is called when an active signal edge/level has ** occurred. ** Parameters : None ** Returns : Nothing ** =================================================================== */ void Int_Anemometro_1(void) { if(Med_1 == TRUE && Med_2 == FALSE) { /* place your Entrada_Anemometro_1 interrupt procedure body here*/ /* * Envío y captura de Tiempo de Señal No.1 */ Entrada_Anemometro_1_Disable(); Entrada_Anemometro_2_Disable(); if(Tiempo_GetCounterValue(&Tiempo_1.Val_Word) == ERR_OK); /* //Compara si el valor obtenido es correcto, si es así, se saca de la resta if(Tiempo_1.Val_Word > Tiempo_1_c.Val_Word) Tiempo_1.Val_Word = Tiempo_1.Val_Word - Tiempo_1_c.Val_Word; else Tiempo_1.Val_Word = 0xFFFF; */ Convertir_Dato_Serial(Tiempo_1.Val_Word,Tiempo_Anemometro_1); (void)Senal_25u_Disable(); //(void)AD1_EnableEvent(); (void)AD1_Enable(); (void)S1_EnableEvent(); (void)S2_EnableEvent(); //(void)S1_ClearTxBuf(); //if(Tiempo_Anemometro_1[0] == 0x07) Tiempo_Anemometro_1[0] = 0x00; (void)S1_ClearTxBuf(); //Tiempo_Anemometro_1[0] = 0x06; //Tiempo_Anemometro_2[0] = 0x06; if(S1_SendBlock(Tiempo_Anemometro_1,5,&Enviado) == ERR_OK); tiempo_OK = TRUE; //Entrada_Anemometro_2_Enable(); /* Med_1 = FALSE; Med_2 = TRUE; */ Med_1 = FALSE; } }