Below function called respectively for temperature and voltage. uint16_t Rechargeable_battery_read(void) { //uint32_t i; uint16_t vltg = 0; Adc_Vltg_init(); GPIO_setAsOutputPin(GPIO_PORT_P7,GPIO_PIN4); GPIO_setOutputHighOnPin(GPIO_PORT_P7, GPIO_PIN4); GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P4,GPIO_PIN7,GPIO_TERTIARY_MODULE_FUNCTION); ADC14_configureConversionMemory(ADC_MEM0,ADC_VREFPOS_INTBUF_VREFNEG_VSS, ADC_INPUT_A6, false); /* Enabling/Toggling Conversion */ ADC14_enableConversion(); ADC14_toggleConversionTrigger(); //i=0; //while(i tempC[i+1]) { temp=tempC[i+1]; tempC[i+1]=tempC[i]; tempC[i]=temp; } } } if(MinMax==1) return(tempC[0]); //return minimum value. else return(tempC[20]); //return maximum value.*/ return ltempC; } void Adc_Vltg_init(void) { REF_A_enableReferenceVoltage(); REF_A_setReferenceVoltage(REF_A_VREF2_5V); ADC14_setResolution(ADC_14BIT ); /* Initializing ADC (SMCLK) */ ADC14_disableModule(); ADC14_enableModule(); ADC14_initModule(ADC_CLOCKSOURCE_SMCLK, ADC_PREDIVIDER_1, ADC_DIVIDER_1,0); /* Configuring ADC Memory */ ADC14_enableReferenceBurst(); ADC14_configureSingleSampleMode(ADC_MEM0, true); /* Configuring Sample Timer */ MAP_ADC14_enableSampleTimer(ADC_AUTOMATIC_ITERATION); /* Enabling interrupts */ MAP_ADC14_enableInterrupt(ADC_INT0); //MAP_Interrupt_enableInterrupt(INT_ADC14); //MAP_Interrupt_enableMaster(); }
↧