请教:由TIM1的CH4输出进行同时采样问题

2019-12-08 14:38发布

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:如果没有问题为什么不同步?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
chenhaimeng123
1楼-- · 2019-12-08 19:52
别沉了,顶起,大牛们进来看看
chenhaimeng123
2楼-- · 2019-12-08 23:26
还是要靠自己!
触发方式有问题,就是这句:TIM1_SelectOutputTrigger(TIM1_TRGOSOURCE_UPDATE),应该选择:111: Compare - OC4REF signal is used as trigger output (TRGO)
但是STM8的库文件只有TIM1_TRGOSOURCE_OC3REF             = ((uint8_t)0x60);

问题已解决.
chenhaimeng123
3楼-- · 2019-12-09 03:16
 精彩回答 2  元偷偷看……
chenhaimeng123
4楼-- · 2019-12-09 07:46
问题解决了,莫元人怎么处理?
tkloveyang
5楼-- · 2019-12-09 11:29
楼主好样的~我也是想做adc采样,可否交流一下,你只在定点才一次,精度会不会受影响呢?
我是想连续高速采样,不要触发adc中断,用dma传输到ram,然后每个PWM顶点计算一次平均值,同时开启模拟看门狗(是这么叫的么),检测采样值的是否超过限值用于瞬时值保护,不过还没想好具体怎么实现。
chenhaimeng123
6楼-- · 2019-12-09 13:13
tkloveyang 发表于 2015-9-27 13:44
楼主好样的~我也是想做adc采样,可否交流一下,你只在定点才一次,精度会不会受影响呢?
我是想连续高速采 ...

还是参考ST官方的库吧,少走弯路

一周热门 更多>