打印

下面的引脚定义怎么不会混乱吗?

[复制链接]
1676|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gmgmgm|  楼主 | 2010-11-15 17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是一段ATMEL32芯片的开头引脚定义:
#define IO_KEY_L     4 //PB4
#define IO_KEY_R     2 //PB2
#define IO_KEY_F     0 //PB0
#define IO_KEY_U     3 //PB3
#define IO_KEY_P     1 //PB1

#define IO_RS485_RE   2 //PA2
#define IO_RS485_DE   3 //PA3

我习惯的C51开头定义:
sbit LED=P5^0;
sbit LCD=P4^4;
sbit BEEP=P5^1;
sbit POWER=P3^2;

看上去前面的定义怪怪的,它不会混乱吗?真有点看不懂

相关帖子

沙发
gaohq| | 2010-11-15 23:51 | 只看该作者
各有各的习惯 爱好

使用特权

评论回复
板凳
SLEET1986| | 2010-11-16 08:47 | 只看该作者
习惯就好,容易看懂啊

使用特权

评论回复
地板
hqzmmq| | 2010-11-16 09:05 | 只看该作者
怎么会乱呢,不就是c语言基本的宏定义吗,挺实用的东西

使用特权

评论回复
5
gmgmgm|  楼主 | 2010-12-30 11:46 | 只看该作者
我是说下面这两行怎样区分它?
#define IO_RS485_RE   2 //PA2
#define IO_KEY_R     2 //PB2

#define IO_RS485_DE   3 //PA3
#define IO_KEY_U     3 //PB3

后面都为2和3,但它端口却能分开清,还是没搞懂;

使用特权

评论回复
6
老鱼探戈| | 2010-12-30 12:26 | 只看该作者
两种定义方式在操作是的写法是不一样的
到你对IO口操作的时候就能分清楚了。
比如说把IO置1。
1.   PB | =1<<IO_KEY_L ;
而第二中是(就是你习惯的那种)
2. LED=1;

使用特权

评论回复
7
mmax| | 2010-12-30 12:57 | 只看该作者
5# gmgmgm

#define IO_RS485_RE   2 //PA2
#define IO_KEY_R     2 //PB2
更贴近自然语言的定义。虽然都是2,本质是一样的,但是能表达更多的内容。



举个简单的例子。超市里面的物价钱。比如你买了一瓶水、啤酒和书,单价都为10元。总价=10+10+10

显然没有下面容易理解。#define  PRICE_WATER       10
#define  PRICE_BEER          10
#define  PRICE_BOOK          10
总价 = PRICE_WATER + PRICE_BEER   + PRICE_BOOK   
虽然都是10,用的代表意义不同。
是你用的时候按需求使用,怎么会区分不开呢。呵呵

我也说的乱乱的。

使用特权

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

本版积分规则

135

主题

766

帖子

2

粉丝