void Timer_0_Initilization(void)
{
status_t status;
lpit1_ChnConfig0.period =80000;
LPIT_DRV_Init(INST_LPIT_CONFIG_1, &lpit1_InitConfig);
status = LPIT_DRV_InitChannel(INST_LPIT_CONFIG_1, LPIT_CHANNEL, &lpit1_ChnConfig0);
DEV_ASSERT(status == STATUS_SUCCESS);
INT_SYS_InstallHandler(LPIT_Channel_IRQn, &LPIT_ISR, NULL);
}
void Timer_0_Start(void)
{
LPIT_DRV_StartTimerChannels(INST_LPIT_CONFIG_1, (1 << LPIT_CHANNEL));
}
void Timer_1_Initilization(unsigned int period_count)
{
status_t status;
lpit1_ChnConfig0.period =period_count;
LPIT_DRV_Init(INST_LPIT_CONFIG_1, &lpit1_InitConfig);
status = LPIT_DRV_InitChannel(INST_LPIT_CONFIG_1, LPIT_CHANNEL1, &lpit1_ChnConfig1);
DEV_ASSERT(status == STATUS_SUCCESS);
INT_SYS_InstallHandler(LPIT_Channel1_IRQn, &LPIT_ISR1, NULL);
}
void Timer_1_Start()
{
LPIT_DRV_StartTimerChannels(INST_LPIT_CONFIG_1, (1 << LPIT_CHANNEL1));
}
void Timer_2_Initilization(void)
{
status_t status;
LPIT_DRV_Init(INST_LPIT_CONFIG_1, &lpit1_InitConfig);
status = LPIT_DRV_InitChannel(INST_LPIT_CONFIG_1, LPIT_CHANNEL2, &lpit1_ChnConfig2);
DEV_ASSERT(status == STATUS_SUCCESS);
INT_SYS_InstallHandler(LPIT_Channel2_IRQn, &LPIT_ISR2, NULL);
}
void Timer_2_Start(void)
{
LPIT_DRV_StartTimerChannels(INST_LPIT_CONFIG_1, (1 << LPIT_CHANNEL2));
}
void Timer_3_Initilization(void)
{
status_t status;
LPIT_DRV_Init(INST_LPIT_CONFIG_1, &lpit1_InitConfig);
status = LPIT_DRV_InitChannel(INST_LPIT_CONFIG_1, LPIT_CHANNEL3, &lpit1_ChnConfig3);
DEV_ASSERT(status == STATUS_SUCCESS);
INT_SYS_InstallHandler(LPIT_Channel3_IRQn, &LPIT_ISR3, NULL);
}
void Timer_3_Start(void)
{
LPIT_DRV_StartTimerChannels(INST_LPIT_CONFIG_1, (1 << LPIT_CHANNEL3));
}
void Timer_Initialization(void)
{
Timer_0_Initilization();
Timer_1_Initilization(16000000);
Timer_2_Initilization();
Timer_3_Initilization();
}
int main()
{
Timer_Initialization();
Timer_3_Start();
}
if I do like this below its not working,
int main()
{
Timer_Initialization();
Timer_0_Start();
or
Timer_1_Start();
or
Timer_2_Start();
}
like this I'm using its working fine but, In Timer_Initilization() function I have initialized Timer_3_Initilization(); last so if i call timer_3_start() its working in this same situation if i call timer_0 or1,2_nitilization(); its not working... whatever i have initialized last its related start if i call only its working. why?
I have attached timer configuration also
/* lPIT global configuration */
const lpit_user_config_t lpit1_InitConfig = {
.enableRunInDebug = false,
.enableRunInDoze = false
};
/* Channel configuration 0*/
lpit_user_channel_config_t lpit1_ChnConfig0 = {
.timerMode = LPIT_PERIODIC_COUNTER,
.periodUnits = LPIT_PERIOD_UNITS_COUNTS,
.period = 8000UL,
.triggerSource = LPIT_TRIGGER_SOURCE_INTERNAL,
.triggerSelect = 0U,
.enableReloadOnTrigger = false,
.enableStopOnInterrupt = false,
.enableStartOnTrigger = false,
.chainChannel = false,
.isInterruptEnabled = true
};
/* Channel configuration 1*/
lpit_user_channel_config_t lpit1_ChnConfig1 = {
.timerMode = LPIT_PERIODIC_COUNTER,
.periodUnits = LPIT_PERIOD_UNITS_COUNTS,
.period = 80000UL,
.triggerSource = LPIT_TRIGGER_SOURCE_INTERNAL,
.triggerSelect = 1U,
.enableReloadOnTrigger = false,
.enableStopOnInterrupt = false,
.enableStartOnTrigger = false,
.chainChannel = false,
.isInterruptEnabled = true
};
/* Channel configuration 2*/
lpit_user_channel_config_t lpit1_ChnConfig2 = {
.timerMode = LPIT_PERIODIC_COUNTER,
.periodUnits = LPIT_PERIOD_UNITS_COUNTS,
.period = 6400UL,
.triggerSource = LPIT_TRIGGER_SOURCE_INTERNAL,
.triggerSelect = 2U,
.enableReloadOnTrigger = false,
.enableStopOnInterrupt = false,
.enableStartOnTrigger = false,
.chainChannel = false,
.isInterruptEnabled = true
};
/* Channel configuration 3*/
lpit_user_channel_config_t lpit1_ChnConfig3 = {
.timerMode = LPIT_PERIODIC_COUNTER,
.periodUnits = LPIT_PERIOD_UNITS_COUNTS,
.period = 5600UL,
.triggerSource = LPIT_TRIGGER_SOURCE_INTERNAL,
.triggerSelect = 3U,
.enableReloadOnTrigger = false,
.enableStopOnInterrupt = false,
.enableStartOnTrigger = false,
.chainChannel = false,
.isInterruptEnabled = true
};
everyone is different channel , then it should work na.. otherwise I need to call timer initialize for every timer start how to avoid it?