打印
[STC单片机]

keil中sbit数组的问题

[复制链接]
1272|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Aorey|  楼主 | 2019-8-8 10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
gx_huang| | 2019-8-8 10:21 | 只看该作者
给你一个思路
//按键bdata,加快处理速度
uchar bdata KEY0 _at_ 0x21;
uchar bdata KEY1 _at_ 0x22;

sbit run_key=KEY0^0;
sbit stop_key=KEY0^1;
sbit tea_out_key=KEY0^2;
sbit tea_oil_key=KEY0^3;
sbit pause_key=KEY0^4;
sbit heat_key=KEY0^5;
sbit speed_inc_key=KEY0^6;
sbit speed_dec_key=KEY0^7;
sbit temp_inc_key=KEY1^0;
sbit temp_dec_key=KEY1^1;
sbit weight_inc_key=KEY1^2;
sbit weight_dec_key=KEY1^3;
sbit turns_inc_key=KEY1^4;
sbit turns_dec_key=KEY1^5;
sbit presure_inc_key=KEY1^6;
sbit presure_dec_key=KEY1^7;

使用特权

评论回复
板凳
ayb_ice| | 2019-8-8 10:23 | 只看该作者
可以使用虚拟数组,用字节表示bit

使用特权

评论回复
地板
gx_huang| | 2019-8-8 10:24 | 只看该作者
//任意按键计数及蜂鸣处理
                        if(KEY0!=0x00 || KEY1!=0x00)
                        {
                                if(key_cnt<10000) key_cnt++;
                                if(!last_key && key_buzzer_enable)
                                {
                                        buz_cnt=20;
                                        last_key=1;
                                }
                        }
                        else
                        {
                                last_key=0;
                                key_cnt=0;
                        }
这样,判断任一个按键按下,速度就快了

使用特权

评论回复
5
Aorey|  楼主 | 2019-8-8 10:37 | 只看该作者
gx_huang 发表于 2019-8-8 10:24
//任意按键计数及蜂鸣处理
                        if(KEY0!=0x00 || KEY1!=0x00)
                        {

uchar bdata KEY0 _at_ 0x21;
uchar bdata KEY1 _at_ 0x22;

这种写法我试下,先谢谢你了。

使用特权

评论回复
6
airwill| | 2019-8-10 20:41 | 只看该作者
关于 sbit 的数组问题, 我想不是编译器不能支持,  是因为 MCU 不能支持位地址的间接寻址

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝