搜索
bottom↓
回复: 17

m48系统中,按键处理放在哪里好?

[复制链接]

出0入0汤圆

发表于 2013-12-25 12:43:57 | 显示全部楼层 |阅读模式
求教M48编写的系统中,各个功能模块如何协调比较好?
如现有的模块有:按键扫描();   按键处理();  开关量输入() ; 模拟量输入();   74Hc164发送数据数码显示(): 10ms定时中断(按键消抖); 500ms数码管刷新();
其中要求三位数码管平时显示温度值,按下设置键,可以修改设定值,我想用状态机来写。
现在的问题是按键处理放在哪里好?如果单独放,主函数调用的话,怎么跟设定页面(用状态机)来协调?如果在主函数里实现按键功能,
那if(10ms_time_ok)
{
    按键扫描;
}
if(500ms_time_ok)
{
     数码管刷新;
}
这两个和按键会不会有冲突?你们一般如何协调?
,求大虾指导?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-12-25 12:43:58 | 显示全部楼层
不同时刻 定时刷新就好了(状态机)

出0入0汤圆

 楼主| 发表于 2013-12-25 15:35:11 | 显示全部楼层
Let 发表于 2013-12-25 15:04
不同时刻 定时刷新就好了(状态机)

举个实例谢谢!

出0入0汤圆

发表于 2013-12-25 16:02:44 | 显示全部楼层
if(10ms_time_ok)
{
    按键扫描;
10ms_time_ok = 0
}
else if(500ms_time_ok)
{
     数码管刷新;
500ms_time_ok = 0;
}

出0入0汤圆

发表于 2013-12-25 16:03:41 | 显示全部楼层
定时器中断里标记时刻

出0入0汤圆

 楼主| 发表于 2013-12-25 16:06:58 | 显示全部楼层
Let 发表于 2013-12-25 16:03
定时器中断里标记时刻

那其它的如输入开关量检测,ADC采集,这些呢?

出0入0汤圆

 楼主| 发表于 2013-12-25 16:07:55 | 显示全部楼层
jhjkdz 发表于 2013-12-25 16:06
那其它的如输入开关量检测,ADC采集,这些呢?

也用定时刷新?

出0入0汤圆

 楼主| 发表于 2013-12-25 16:11:24 | 显示全部楼层
jhjkdz 发表于 2013-12-25 16:07
也用定时刷新?

这个按键功能处理最好放在主循环里吗?

出0入0汤圆

发表于 2013-12-25 21:27:13 | 显示全部楼层
放main()里执行好了

出0入0汤圆

 楼主| 发表于 2013-12-25 21:37:10 | 显示全部楼层
Let 发表于 2013-12-25 21:27
放main()里执行好了

谢谢!你再帮我看一个问题?

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-12-25 21:38:28 | 显示全部楼层
jhjkdz 发表于 2013-12-25 21:37
谢谢!你再帮我看一个问题?

../Key_set.h:18: error: syntax error before "extern"
/ key_set。H:18:错误:语法错误之前的“外部”



我去掉也不行,

出0入0汤圆

发表于 2013-12-25 22:00:54 | 显示全部楼层
把宏直接定义到key_set.c

出0入0汤圆

 楼主| 发表于 2013-12-25 22:05:55 | 显示全部楼层
其它函数要调用这个函数呢?

出0入0汤圆

发表于 2013-12-25 22:07:33 | 显示全部楼层
对了,把出错这一行注释掉应该就好了

出0入0汤圆

 楼主| 发表于 2013-12-25 22:14:41 | 显示全部楼层
Let 发表于 2013-12-25 22:07
对了,把出错这一行注释掉应该就好了

../Key_system.h:14: error: syntax error before "void"
/ key_system。H:14:错误:语法错误之前的“空白”
../main.c: In function `main':
公司/主。C:`主要功能:
../main.c:34: warning: implicit declaration of function `key_set'
公司/主。C:34:警告:功能` key_set隐式声明”


多了一个告警

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-12-26 10:00:07 | 显示全部楼层
,PINC的头文件没包含进来吧

出0入0汤圆

发表于 2013-12-26 10:01:08 | 显示全部楼层
key_set放在C文件里面定义吧

出0入0汤圆

 楼主| 发表于 2013-12-26 10:40:50 | 显示全部楼层
Let 发表于 2013-12-26 10:01
key_set放在C文件里面定义吧

谢谢!晚上回去试试!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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