2142|4

29

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430 定时器问题 【汇编语言】 [复制链接]

这是我写的源程序,这会的实验结果是小灯按50MS的频率再闪,我想让它以1S的间隔闪,应该怎么修改程序呢?求大神解答,我原来写的MOV #14H,R5
                                                    dec  r5
                                                    jnz
可是这点程序放哪里都不对。出不来结果
;-------------------------------------------------------------------------------
#include "msp430x16x.h"
;-------------------------------------------------------------------------------
        org     04000h
reset
        mov     #00300h,SP
        mov     #WDTPW+WDTHOLD,&WDTCTL
        mov     #TASSEL1+TACLR,&TACTL;使用SMCLK信号,并清除TAR
        call    #csh_zcx
        mov     #CCIE,&CCTL0  ;使能CCR0 中断
        mov.w   #40000,&CCR0  ;设置比较值
        bis.w   #MC1,&TACTL ;以增计数模式开始定时器A
        eint
main_loop
        bis.w   #CPUOFF,SR
        nop
TA0_ISR inv.b   &P1OUT
        add.w   #40000,&CCR0
        reti
;-------------------------------------------------------------------------------
csh_zcx:
        ;--------------------
        mov.b   #00000000b,&P1SEL
        mov.b   #00000001b,&P1DIR
        mov.b   #11111110b,&P1OUT
        ;--------------------
        ret
;-------------------------------------------------------------------------------
        org     0fffeh
        dw      reset
        org     0FFECH
        dw      TA0_ISR
        end
;-------------------------------------------------------------------------------

最新回复

查询的方式就是不开启中断,肯定也不能进入低功耗模式了,然后主程序一直去读取定时器的状态位,如果溢出,说明设定的时间到,如果没溢出,则死等。这样可以计溢出的次数再计数,就是加上你的要添加的代码。 中断方式也是可以实现上面的功能的,但是并不是每次进中断都取反LED,而是在中断中设置个变量,每次对这个变量加1,如果变量达到某个值之后再取反LED。  详情 回复 发表于 2013-10-16 22:05
 
点赞 关注

回复
举报

6040

帖子

202

TA的资源

版主

沙发
 
你的语句是需要放在查询方式的程序中才能有效,目前的程序是以中断的方式做的,只会执行中断程序,所以你在主程序中加是没有效果的,如果想改的话,可以试试改定时器的分频系数。

点评

弱弱的问一句,什么才是查询方式的程序呢? 另外大神你那有编好的430的汇编程序么,我想参考参考  详情 回复 发表于 2013-10-16 21:31
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发lcofjp 的帖子

弱弱的问一句,什么才是查询方式的程序呢?
另外大神你那有编好的430的汇编程序么,我想参考参考

点评

查询的方式就是不开启中断,肯定也不能进入低功耗模式了,然后主程序一直去读取定时器的状态位,如果溢出,说明设定的时间到,如果没溢出,则死等。这样可以计溢出的次数再计数,就是加上你的要添加的代码。 中断  详情 回复 发表于 2013-10-16 22:05
 
 
 

回复

6040

帖子

202

TA的资源

版主

4
 

回复 板凳emdgbx 的帖子

查询的方式就是不开启中断,肯定也不能进入低功耗模式了,然后主程序一直去读取定时器的状态位,如果溢出,说明设定的时间到,如果没溢出,则死等。这样可以计溢出的次数再计数,就是加上你的要添加的代码。

中断方式也是可以实现上面的功能的,但是并不是每次进中断都取反LED,而是在中断中设置个变量,每次对这个变量加1,如果变量达到某个值之后再取反LED。

点评

哇哦 ,太感谢了!  详情 回复 发表于 2013-10-17 09:56
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 4楼lcofjp 的帖子

哇哦 ,太感谢了!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表