本文整理汇总了C++中Timer_Object::tickFxn方法的典型用法代码示例。如果您正苦于以下问题:C++ Timer_Object::tickFxn方法的具体用法?C++ Timer_Object::tickFxn怎么用?C++ Timer_Object::tickFxn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Timer_Object
的用法示例。
在下文中一共展示了Timer_Object::tickFxn方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Timer_isrStub
/*
* ======== Timer_isrStub ========
*/
Void Timer_isrStub(UArg arg)
{
ti_catalog_arm_peripherals_timers_TimerRegsM4 *timer;
Timer_Object *obj = (Timer_Object *)arg;
timer = (ti_catalog_arm_peripherals_timers_TimerRegsM4 *)
Timer_module->device[obj->id].baseAddr;
/* clear all timer interrupt status bits */
Timer_write(obj->altclk, &timer->GPTMICR, 0xFFFFFFFF);
/* for DYNAMIC, mode latch prevThreshold and detect rollovers */
if (obj->runMode == Timer_RunMode_DYNAMIC) {
/*
* if the current threshold is greater than the prevThreshold
* then a rollover has occurred.
*/
if (obj->prevThreshold < timer->GPTMTAMATCHR) {
obj->rollovers += 1;
}
obj->prevThreshold = timer->GPTMTAMATCHR;
}
obj->tickFxn(obj->arg);
}
示例2: Timer_periodicStub
/*
* ======== Timer_periodicStub ========
*/
Void Timer_periodicStub(UArg arg)
{
Timer_Object *obj = (Timer_Object *)arg;
volatile UInt32 dummy;
dummy = Hwi_nvic.STCSR; /* read to ack the interrupt */
Hwi_nvic.ICSR = 0x02000000; /* clear SysTick pending */
obj->tickFxn(obj->arg);
}
示例3: Timer_stub
/*
* ======== Timer_stub ========
*/
Void Timer_stub(UArg arg)
{
Timer_Object *obj = (Timer_Object *)arg;
TimerRegs *timer;
timer = (TimerRegs *)Timer_module->device[obj->id].baseAddr;
/* acknowledge the interrupt */
timer->tisr = obj->tier;
/* call the user's ISR */
obj->tickFxn(obj->arg);
}
示例4: Timer_dynStub
/*
* ======== Timer_dynStub ========
*/
Void Timer_dynStub(UArg arg)
{
Timer_Object *obj = (Timer_Object *)arg;
TimerRegs *timer;
UInt irqStatus;
timer = (TimerRegs *)Timer_module->device[obj->id].baseAddr;
/* get interrupt status flags */
irqStatus = timer->tisr;
/* if this is a rollover (overflow) interrupt ... */
if (irqStatus & TIMER_IRQSTATUS_OVF_IT_FLAG) {
/* acknowledge the interrupt */
timer->tisr |= TIMER_IRQSTATUS_OVF_IT_FLAG;
obj->rollovers++;
}
/* if this is a threshold match interrupt ... */
if (irqStatus & TIMER_IRQSTATUS_MAT_IT_FLAG) {
/* acknowledge the interrupt */
timer->tisr |= TIMER_IRQSTATUS_MAT_IT_FLAG;
/* save previous threshold value */
obj->prevThreshold = timer->tmar;
/* set compare threshold for next periodic interrupt */
timer->tmar += obj->period;
/* call the user's ISR */
obj->tickFxn(obj->arg);
}
}