MSP430F149怎么利用TimerB的七个捕获/比较器输出频率相同但脉冲不是同时的PWM?

MSP430F149上的TBx输出口能利用三个口输出三种脉冲吗,假设一共1ms,在500us时TB1输出30us的脉冲,在700us时TB2输出30us脉冲,在900us... MSP430F149上的TBx输出口能利用三个口输出三种脉冲吗,假设一共1ms,在500us时TB1输出30us的脉冲,在700us时TB2输出30us脉冲,在900us时TB3输出30us脉冲,请高手指教,最好有程序啊,谢谢
不使用中断可以设置吗?
展开
 我来答
百度网友ee69660
2010-08-13 · TA获得超过137个赞
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
去官网下一个149的用户手册(只有英文版的),里面讲解非常详细。
你这个程序应该是可以实现的,不过相对比较复杂,要在中断中修改PWM输出控制寄存器。
我想了2种方法:
第一种:首先将TBCCR0时间设置为500us,TBCCR1、TBCCR2、TBCCR3时间分别
设置为530us,730us,930us.同时先将TB1输出方式SET/RESET(这样TB1能在500us时输出30us脉冲),TB2、TB3输出
方式设置为OUTPUT,并将相应的OUTX为设为0,这样在530us前TB2、TB3一直为低。当TB1脉冲结束时,
也就是在TBCCR1溢出中断中重新设置TB1 TB2 TB3寄存器,并且将TBCCR0增大为700us,使TB2在700us输出脉冲,TB1 TB3一直输出为低。
之后在TB2脉冲结束是再次在中断中进行配置,使TB3输出脉冲,TB1 TB2 输出为低。
这是在1ms内的设置,其他类似。具体程序怎么写你自己理解吧。

第二种:跟第一种类似,就是在其中TBX输出脉冲期间,设置暂时关闭其它两个输出(即将引进设置为非OUTPUT模式),
等待脉冲输出结束是在中断函数中进行一次寄存器配置,以使其中一个输出脉冲,另外两个输出为低。

另外: 如果你只需要完成这个功能的话完全可以用软件延时的方法实现。或TA TB配合实现。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
seinp
2010-08-13 · TA获得超过393个赞
知道答主
回答量:137
采纳率:0%
帮助的人:111万
展开全部
TBCCR0 = 1ms;
TBCCR1 依次定时500us,200us,200us;
TBCCR1中断触发时,在对应端口输出高电平,同时启动TBCCR2;
TBCCR2 定时30us,中断触发则将对应端口电平拉低,结束自身中断。

如果定时要求精确,需将代码运行时间一并计算在内。
任何复杂时序脉冲都可以依法炮制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式