找回密码
 注册
关于网站域名变更的通知
查看: 196|回复: 2
打印 上一主题 下一主题

51单片机为什么中断中定义变量,对应的语句却不执行?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-2-17 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机,在定时器0的中断函数中,定义了名称为l的变量,在仿真的时候,语句l=l-1;不会被执行,总是会跳过。不知道是什么原因?​) X5 y$ ^( g$ |0 U$ }
3 m3 q# e+ m+ h5 |
单片机源程序如下:​, E- C  b- U7 T( |9 r0 Z6 z
void T0_Interrupt() interrupt 1​
( v7 Z" |+ Z9 z, @{​
+ G3 p; N" e: J. h1 o: F; @         signed char l=10;​
+ t; w) R0 o! G0 }         k=k-1;​9 [1 g0 j& R% J! T$ w' @
         l=l-1;​
) i: B8 N8 b/ f# }0 Q         TH0=0xF9;   ​
5 A+ ?! ^" y2 @+ s* P         TL0=0x66;​2 f* `- l2 k/ ^
         ​% W( a7 }6 z/ d. n, Y" s
% V% ~+ a; O$ [+ R: ~0 L
}​1 ?# w  w5 o& K1 {9 g# C" h/ {
1 P6 p2 U+ ]* T/ o6 d  Z8 I

该用户从未签到

2#
发表于 2022-2-17 13:13 | 只看该作者

& h( {; J. A# E0 j  d每次进入中断都给一个初值signed char l=10?定义成全局或者静态变量试试。另外定义变量的时候最好命名有意义的名称,少用单字母啊

该用户从未签到

3#
发表于 2022-2-17 13:27 | 只看该作者
' O. I! U; c/ w; U- ~" D: f, U
signed char l=10;) a$ S! j  o5 [5 E
改成
: X5 X- y0 ]9 Zsigned char l;, J8 r5 J: D$ _
l=10;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-20 07:41 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表