Tool/software: TI C/C++ Compiler
I am using the launchxl2-570lc43 and developing with Halcogen and CCS.
I followed the example_EPWM_ADC from Halcogen with the exception that I utilized AD1IN_6 (which is connected to a potentiometer) as the input.
I also added some code to test the value of the ADC and light an LED.
I am able to use the pot to adjust the PWM duty cycle while monitoring on an oscope.
I have observed a strange behavior on the nError LED.
Executions starts with no nError LED on.
When I adjust the duty cycle and the IF condition toggles, the nError LED comes on and stays on beyond that point.
This happens when I start from a high value and descend or a low value and ascend.
What might this error be related to and how can I prevent it from throwing the flag?
Here is the code I used in CCS:
/* USER CODE BEGIN (0) */ /* USER CODE END */ /* Include Files */ #include "HL_sys_common.h" /* USER CODE BEGIN (1) */ #include "HL_etpwm.h" #include "HL_adc.h" #include "HL_gio.h" /* USER CODE END */ /** @fn void main(void) * @brief Application main function * @note This function is empty by default. * * This function is called after startup. * The user can use this function to implement the application. */ /* USER CODE BEGIN (2) */ /* USER CODE END */ int main(void) { /* USER CODE BEGIN (3) */ _enable_interrupt_(); adcInit(); etpwmInit(); gioInit(); adcEnableNotification(adcREG1, adcGROUP0); adcStartConversion(adcREG1, adcGROUP0); while(1); /* USER CODE END */ return 0; } /* USER CODE BEGIN (4) */ void adcNotification(adcBASE_t *adc, uint32 group) { adcData_t data; uint32 count; uint16 cmpA; count = adcGetData(adcREG1, adcGROUP0, &data); cmpA = (etpwmREG1->TBPRD * data.value)/0xFFF; etpwmSetCmpA(etpwmREG1, cmpA); if(data.value>=1000){ gioSetBit(gioPORTB, 6,1); } else{ gioSetBit(gioPORTB, 6,0); } } /* USER CODE END */