完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我要写一个程序,主要思路如下:
首先定时器设定一个初值1000,然后定时器自加,加到1000后,跳入中断,执行一次判断 if(P1IN&BIT0==0),若满足条件则 k++;我要的数据就是k的值。但是,我现在有个问题,在中断程序里,我必须给K赋初值,k=0。这样的话,不管我跳入几次中断,满足几次条件,K最多等于1。我该怎么改? 程序如下: void main(void) { //int k=0,i; WDTCTL = WDTPW+WDTHOLD; //关闭看门狗 P1DIR &=0X00;//~BIT0; CCTL0=CCIE+CM1; CCR0=1000; TACTL=TASSEL_1+MC_1; //用外部特定的引脚信号,增计数模式 _BIS_SR(LPM3_bits+GIE); //开中断允许 //LPM0; } #pragma vector=tiMERA0_VECTOR __interrupt void Timer_A (void) { int k=0; void Delay4000ms(); if(P1IN&BIT0==0) k++; LcdReset(); //显示程序的初始化 Disp1Char(11,0,shuzi[k]); 在1602中显示k的值 } |
|
相关推荐
4个回答
|
|
把int k=0;放到主函数中试试
|
|
|
|
看了你的程序的目的是在LCD中显示进入中断的次数是吗?
程序有几个问题: 比如,中断程序中的void Delay4000ms(); void可以去掉; 显示程序的初始化完全可以放到主函数中,不需要进入中断就初始化一次; 你可以把k定义成全局变量,在主函数中不断执行显示k值程序,Disp1Char(11,0,shuzi[k]); 在中断程序中改变k值即可 |
|
|
|
谢谢你,我把k定义了全局变量,这个问题就解决了。但是,为什么MSP430的P1.0口检测不出低电平呢?if(P1IN&BIT0==0),检测不出来。k一直是0。
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
689 浏览 1 评论
2117 浏览 5 评论
2429 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2194 浏览 6 评论
2163 浏览 7 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
317浏览 9评论
299浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
435浏览 6评论
300浏览 5评论
348浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-25 00:54 , Processed in 0.929704 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号