Part Number: LAUNCHCC3220MODASF
Hello,
in my project i am using CC3220SF launchXL development board. I am stuck at the configurations at Timers of CC3220SF.
can anyone helip Regarding How to configure Timer 0, Timer 1 and Timer 2 in ther respective 16 bit mode individually...?
already Timer 1 is configures as a 16 bit mode A and B in the Board.c file but when i am calling api timer open i am getting Error and its failing.
Below is my configurations structures in Board.c file
const Timer_Config Timer_config[CC3220SF_LAUNCHXL_TIMERCOUNT] = { { .fxnTablePtr = &TimerCC32XX_fxnTable, .object = &timerCC3220SFObjects[CC3220SF_LAUNCHXL_TIMER0], .hwAttrs = &timerCC3220SFHWAttrs[CC3220SF_LAUNCHXL_TIMER0] }, { .fxnTablePtr = &TimerCC32XX_fxnTable, .object = &timerCC3220SFObjects[CC3220SF_LAUNCHXL_TIMER1], .hwAttrs = &timerCC3220SFHWAttrs[CC3220SF_LAUNCHXL_TIMER1] }, { .fxnTablePtr = &TimerCC32XX_fxnTable, .object = &timerCC3220SFObjects[CC3220SF_LAUNCHXL_TIMER2], .hwAttrs = &timerCC3220SFHWAttrs[CC3220SF_LAUNCHXL_TIMER2] }, { .fxnTablePtr = &TimerCC32XX_fxnTable, .object = &timerCC3220SFObjects[CC3220SF_LAUNCHXL_TIMER1A], .hwAttrs = &timerCC3220SFHWAttrs[CC3220SF_LAUNCHXL_TIMER1A] }, { .fxnTablePtr = &TimerCC32XX_fxnTable, .object = &timerCC3220SFObjects[CC3220SF_LAUNCHXL_TIMER1B], .hwAttrs = &timerCC3220SFHWAttrs[CC3220SF_LAUNCHXL_TIMER1B] }, };
below is my configuration structures and hw attributes....
const TimerCC32XX_HWAttrs timerCC3220SFHWAttrs[CC3220SF_LAUNCHXL_TIMERCOUNT] = { { .baseAddress = TIMERA0_BASE, .subTimer = TimerCC32XX_timer32, .intNum = INT_TIMERA0A, .intPriority = ~0 }, { .baseAddress = TIMERA1_BASE, .subTimer = TimerCC32XX_timer32, .intNum = INT_TIMERA1A, .intPriority = ~0 }, { .baseAddress = TIMERA2_BASE, .subTimer = TimerCC32XX_timer32, .intNum = INT_TIMERA2A, .intPriority = ~0 }, { .baseAddress = TIMERA1_BASE, .subTimer = TimerCC32XX_timer16A, .intNum = INT_TIMERA1A, .intPriority = ~0 }, { .baseAddress = TIMERA1_BASE, .subTimer = TimerCC32XX_timer16B, .intNum = INT_TIMERA1B, .intPriority = ~0 }, };
and this is my user application files where i am calling respective interface files.
void _WL_TIMER_INIT(void) { int32_t Status = -1; Timer_Handle handle_timer_0; //Timer_Handle handle_timer_1; Timer_Handle handle_timer_1A; Timer_Handle handle_timer_1B; //Timer_Handle handle_timer_2; Timer_Params params_timer_0; //Timer_Params params_timer_1; Timer_Params params_timer_1A; Timer_Params params_timer_1B; //Timer_Params params_timer_2; //initialize timer parameters Timer_Params_init(¶ms_timer_0); //timer 0 //Timer_Params_init(¶ms_timer_1); //timer 1 Timer_Params_init(¶ms_timer_1A); //timer 1A Timer_Params_init(¶ms_timer_1B); //timer 1B //Timer_Params_init(¶ms_timer_2); //timer 2 //timer 0 params_timer_0.periodUnits = Timer_PERIOD_US; params_timer_0.period = 5000000; params_timer_0.timerMode = Timer_CONTINUOUS_CALLBACK; params_timer_0.timerCallback = TIMER0_ISR_Handler; handle_timer_0 = Timer_open(Board_TIMER0, ¶ms_timer_0); if(handle_timer_0 == NULL) { UART_PRINT("Unable to open to Timer 0 Handle\n\n\r"); while(1); } Status = Timer_start(handle_timer_0); if(Status == Timer_STATUS_ERROR) { UART_PRINT("Unable to Start Timer 0 \n\n\r"); while(1); } //timer 1 params_timer_1.periodUnits = Timer_PERIOD_US; params_timer_1.period = 5000000; params_timer_1.timerMode = Timer_CONTINUOUS_CALLBACK; params_timer_1.timerCallback = TIMER1_ISR_Handler; handle_timer_1 = Timer_open(Board_TIMER1, ¶ms_timer_1); if(handle_timer_1 == NULL) { UART_PRINT("Unable to open to Timer 1 Handle\n\n\r"); while(1); } Status = Timer_start(handle_timer_1); if(Status == Timer_STATUS_ERROR) { UART_PRINT("Unable to Start Timer 1 \n\n\r"); while(1); } #if 1 //timer 1A params_timer_1A.periodUnits = Timer_PERIOD_US; params_timer_1A.period = 5000000; params_timer_1A.timerMode = Timer_CONTINUOUS_CALLBACK; params_timer_1A.timerCallback = TIMER1A_ISR_Handler; handle_timer_1A = Timer_open(Board_TIMER1, ¶ms_timer_1A); if(handle_timer_1A == NULL) { UART_PRINT("Unable to open to Timer 1A Handle\n\n\r"); while(1); } Status = Timer_start(handle_timer_1A); if(Status == Timer_STATUS_ERROR) { UART_PRINT("Unable to Start Timer 1A \n\n\r"); while(1); } //timer 1B params_timer_1B.periodUnits = Timer_PERIOD_US; params_timer_1B.period = 5000000; params_timer_1B.timerMode = Timer_CONTINUOUS_CALLBACK; params_timer_1B.timerCallback = TIMER1B_ISR_Handler; handle_timer_1B = Timer_open(Board_TIMER1, ¶ms_timer_1B); if(handle_timer_1B == NULL) { UART_PRINT("Unable to open to Timer 1B Handle\n\n\r"); while(1); } Status = Timer_start(handle_timer_1B); if(Status == Timer_STATUS_ERROR) { UART_PRINT("Unable to Start Timer 1B \n\n\r"); while(1); } #endif
and following from board.h file...
#define Board_TIMER0 CC3220SF_LAUNCHXL_TIMER0 #define Board_TIMER1 CC3220SF_LAUNCHXL_TIMER1 #define Board_TIMER2 CC3220SF_LAUNCHXL_TIMER2 #define Board_TIMER1A CC3220SF_LAUNCHXL_TIMER1A #define Board_TIMER1B CC3220SF_LAUNCHXL_TIMER1B
and following from launchxl.h file
typedef enum CC3220SF_LAUNCHXL_TimerName { CC3220SF_LAUNCHXL_TIMER0 = 0, CC3220SF_LAUNCHXL_TIMER1, CC3220SF_LAUNCHXL_TIMER2, CC3220SF_LAUNCHXL_TIMER1A, CC3220SF_LAUNCHXL_TIMER1B, CC3220SF_LAUNCHXL_TIMERCOUNT } CC3220SF_LAUNCHXL_TimerName;
can someone explain me what is wrong with this code....?
and how to configure all GPT as 16 bit mode...?
Any help appreciated.....