找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2942|回复: 8
收起左侧

请教:单片机频率计程序怪问题,被测频率没变但屏显数字无规律变化

[复制链接]
ID:227864 发表于 2018-9-22 10:03 | 显示全部楼层 |阅读模式
网上下载的频率测试程序,1S 刷新一次,现在的问题是被测频率没变,但程序清零时,显示屏会变化,数字没有规律,但也是 1S 变化
主要程序如下:
1.png


我的判断,就是  count  清零所致,导致送到显示屏的num  数也变了,显示屏也就变了

2.png

num  数也变了,显示屏也就跟变没了

请教此程序怎么解决,谢谢大家,谢谢
回复

使用道具 举报

ID:359145 发表于 2018-9-22 12:08 | 显示全部楼层
你做个备份啊,num1传到显示屏,计数器清零时更新num值,计数器不清零时用num更新num1

评分

参与人数 2黑币 +28 收起 理由
怪怪爱玩 + 8 很给力!
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:227864 发表于 2018-9-22 14:06 | 显示全部楼层
mmssll 发表于 2018-9-22 12:08
你做个备份啊,num1传到显示屏,计数器清零时更新num值,计数器不清零时用num更新num1

谢谢回答,能提示一下具体怎么操作吗?
回复

使用道具 举报

ID:111634 发表于 2018-9-23 22:01 | 显示全部楼层
本帖最后由 zl2168 于 2018-9-24 21:44 编辑

实例73  测量脉冲频率
实例73  测量脉冲频率

Proteus仿真一下,确认有效 实例73 测量脉冲频率.rar (52.74 KB, 下载次数: 11)

评分

参与人数 1黑币 +2 收起 理由
怪怪爱玩 + 2 谢谢,这个和现在现象一样

查看全部评分

回复

使用道具 举报

ID:387733 发表于 2018-9-24 08:38 | 显示全部楼层
本帖最后由 sxhwdz 于 2018-9-24 09:48 编辑

你的变量count是16位还是8位的?如果是16位的那就是双字节,双字节变量加1、读取等操作都是1条指令完成不了的,所以在中断外部程序,或低优先级中断程序操作双字节变量时,要关断高优先级的中断,以防正在执行双字节操作指令一半时,发生高优先级中断对该变量修改,返回后另一半已经发生变化。
具体就是:

  EX0=0;
  num=count;
  count=0;
  EX0=1;
  a=0;

评分

参与人数 1黑币 +2 收起 理由
怪怪爱玩 + 2 谢谢,试了也不行

查看全部评分

回复

使用道具 举报

ID:387733 发表于 2018-9-24 09:47 | 显示全部楼层
本帖最后由 sxhwdz 于 2018-9-24 10:48 编辑
sxhwdz 发表于 2018-9-24 08:38
你的变量count是16位还是8位的?如果是16位的那就是双字节,双字节变量加1、读取等操作都是1条指令完成不了 ...

打错了,应该是:

  EX0=0;
  num=count;
  count=0;
  EX0=1;
  a=0;
回复

使用道具 举报

ID:308437 发表于 2018-9-24 11:10 | 显示全部楼层
怪怪爱玩 发表于 2018-9-22 14:06
谢谢回答,能提示一下具体怎么操作吗?

就是说,在弄一个中间变量,把num的值保存下来,然后再更新

评分

参与人数 1黑币 +2 收起 理由
怪怪爱玩 + 2 谢谢,思路已理解,但不知道如何实施

查看全部评分

回复

使用道具 举报

ID:227864 发表于 2018-9-25 09:40 | 显示全部楼层
zl2168 发表于 2018-9-23 22:01
实例73  测量脉冲频率
实例73  测量脉冲频率

不好意思,你那个我打不开,不知道什么文件
回复

使用道具 举报

ID:111634 发表于 2018-9-25 14:04 | 显示全部楼层
怪怪爱玩 发表于 2018-9-25 09:40
不好意思,你那个我打不开,不知道什么文件

zai在proteus仿真中打开,可仿真运行,观看是否有效?若感兴趣,再去阅读程序。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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