Other Parts Discussed in Thread: RM48L952, HALCOGEN
主题中讨论的其他器件: HALCOGEN
RM48L952ZWT-FREE-RTOS。 在我的项目中、我还需要几个间隔计时器。 定时器 RTI 忙时 FREE_RTOS。 是否可以使用 N2HET 形成单个间隔?
我试过,我没有成功。
屏幕截图测试程序:
#define SCI_RX_4B_PAUSE_pwmTIMER pwm1
#define SCI_TX_1B_PAUSE_pwmTIMER pwm2
void vTaskBlink (void *pvParameters)
{
// 500毫秒的块。
const TickType_t xDelay = 500/ portTIK_PERIOD_MS;
while (1){
gioToggleBit (hetPORT1、PIN_HET_31); // Blink
RunPwmHet1计时器(SCI_RX_4B_PAUSE_pwmTIMER、100);
vTaskDelay (xDelay);
}
}
void appl_Main (空)
{
hetInit();
gioInit();
gioSetDirection (hetPORT1、0xFFFFFFFF);
_enable_IRQ ();
if (xTaskCreate (vTaskBlink、(const char *)"TaskBlink"、configMINIMAL_STACK_SIZE、NULL、1、 null)!= pdTRUE)
{
while (1); //无法创建任务
}
vTaskStartScheduler();
while (1);
}
空 RunPwmHet1计时器(UINT32 PWM、浮点间隔_us)
{
hetSIGNAL_t HetSignal;
pwmDisableNotification (hetREG1、PWM、pwmEND_for_period);
HetSignal.Duty = 50; //占空比、以周期的%(uint32)为单位
HetSignal.Period = Interval_us; //以 us 为单位的周期(float64)
pwmSetSignal (hetRAM1、PWM、HetSignal);
pwmStart (hetRAM1、PWM);
pwmEnableNotification (hetREG1、PWM、pwmEND_for_period);
}
空 StopPwmHet1定时器(UINT32 PWM)
{
pwmDisableNotification (hetREG1、PWM、pwmEND_for_both);
pwmStop (hetRAM1、PWM);
}
void pwmNotification (hetBASE-t * hetREG、UINT32 PWM、UINT32通知)
{
if (hetREG = hetREG1){
开关(PWM){
SCI_RX_4B_PAUSE_pwmTIMER 案例:
if (notification =pwmEND_of period || notification == pwmEND_of){
StopPwmHet1定时器(SCI_RX_4B_PAUSE_pwmTIMER);
中断;
SCI_TX_1B_PAUSE_pwmTIMER 案例:
中断;
默认值:
中断;
} //开关(PWM){
} // if (hetREG == hetREG1){
否则、如果(hetREG = hetREG2){
} // if (hetREG == hetREG2){
}