(电机测速)请问怎么能让计数中断(1s中断一次)用的AT89s52单片机。现在就是一直计数,没办法测速了

(电机测速)请问怎么能让计数中断(1s中断一次)用的AT89s52单片机。现在就是一直计数,没办法测速了,第1张

你并未启动T0嘛。当然不会产生中断了,改成:

TMOD = 0x01

ET0 = 1

EA=1 //开放总中断

EX0=1 //允许使用外中断

IT0=1 //选择负跳变来触发外中断

TR0 = 1

另外在这个判断里

if(Flag_clac == 1)

如果=1,应增加x=0的语句,否则x还会不停的计数。

EA=0这句可以不要,或者在Flag_clac =0后面增加EA=1,这样更好。

public void save(){

try {

FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE)

outStream.write(text.getText().toString().getBytes())

outStream.close()

Toast.makeText(MyActivity.this,"Saved",Toast.LENGTH_LONG).show()

} catch (FileNotFoundException e) {

return

}

溢出了,time是什么类型?如果是整形变量的话,肯定time=0,因(th1+th2)不超过511除1000000结果是0,0不能当除数正确的是(th1*256+th2),即使如此,time也不超过65535所以绝对不能除1000000如果算速度的话,可以v=2000000/time V要是长整型(longint)当然,time和v可以取FLOAT型,但送数码管显示不方便还有计数器用之前要清0,不知你主程序里清了吗.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12045499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存