ZHCAF11 February   2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3519 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 激光斑点抑制
    2. 1.2 MSPM0 要求
  5. 2PWM
    1. 2.1 PWM 实现
    2. 2.2 PWM 测试结果
  6. 3PWM 和 GPIO
    1. 3.1 PWM 和 GPIO 实现
    2. 3.2 中断时间校准
    3. 3.3 PWM 和 GPIO 测试结果
  7. 4计时器和 GPIO
    1. 4.1 计时器和 GPIO 实现
  8. 5总结
  9. 6参考资料

中断时间校准

图 3-1 中,计时器 A0 CC2 和 GPIO 之间有一个中断控制。中断是一种软件控制方法,与事件硬件控制方法相比,使用中断存在较大的延迟。

图 3-2 展示了计时器 A0 CC2 PWM 下降沿和 GPIO 下降沿之间的延迟。红色阴影区域是 PWM 和 GPIO 之间的延迟时间。下方代码显示了中断处理过程,如果此计时器中断是系统中唯一最高优先级的中断,则该延迟为固定值。计时器 A0 CC2 的值需要设置为:

方程式 1. CC2 = CC2th - delay

其中 CC2th 是计时器 A0 CC2 的理论值,延迟图 3-2 中所示的红色阴影区域。根据计时器时钟配置,延迟 需要转换为计时器 CC 值。

 PWM 和 GPIO 之间的延迟图 3-2 PWM 和 GPIO 之间的延迟
void PWM_1_P_INST_IRQHandler(void)
{
    switch(DL_Timer_getPendingInterrupt(PWM_1_P_INST)){
        case DL_TIMER_IIDX_CC2_UP:
            DL_GPIO_clearPins(PWM_1_N_PORT, PWM_1_N_PIN_0_PIN);
            break;
        default:
            break;
    }
}
注: 同样的方法也适用于事件延迟校准。