MCU:stm8s105s4
准备实现功能:TIM1,PWM中央对齐模式,CH1~3用于产生PWM; CH4用于产生同步信号触发ADC采样;
思路描述:CH4的CCiF进入中断,在中断里查询如果是CH4的TIM1_IT_CC4中断,就调用TIM1_SelectOutputTrigger(TIM1_TRGOSOURCE_UPDATE),触发ADC开始采样,ADC采样完成周触发完成中断,在中断中获得ADC结果。
问题描述:现在用CH4产生1/10占空比PWM信号已经可以输出,在TIM1_CAP_COM_IRQHandler中if(TIM1_GetITStatus(TIM1_IT_CC4) == SET)也可以进去,在这里面反转一个IO,用示波器观查这两个波形不是同步的,TIM1_IT_CC4中断的波形超前CH4输出的PWM;
请问:1:我的思路有问题吗?
2:如果没有问题为什么不同步?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
触发方式有问题,就是这句:TIM1_SelectOutputTrigger(TIM1_TRGOSOURCE_UPDATE),应该选择:111: Compare - OC4REF signal is used as trigger output (TRGO)
但是STM8的库文件只有TIM1_TRGOSOURCE_OC3REF = ((uint8_t)0x60);
问题已解决.
我是想连续高速采样,不要触发adc中断,用dma传输到ram,然后每个PWM顶点计算一次平均值,同时开启模拟看门狗(是这么叫的么),检测采样值的是否超过限值用于瞬时值保护,不过还没想好具体怎么实现。
还是参考ST官方的库吧,少走弯路
一周热门 更多>