51单片机C语言编程怎么宏定义只定义四个IO口
有两个步进电机,想用宏定义方便点写程序,motor1,motor2分别定义为 P1 的0~3,4~7,请教大神应该怎么弄 啥情况 ?#define XXXXXXX 不行么? censtar 发表于 2013-4-8 09:33 static/image/common/back.gif
啥情况 ?
#define XXXXXXX 不行么?
两个分开,比如P1的 1~3,4~4,到时要分开控制的,直接定义为p1话到时就不好算了,想分开算 本帖最后由 jsntzxh 于 2013-4-8 10:20 编辑
按位操作 jsntzxh 发表于 2013-4-8 10:06 static/image/common/back.gif
按位操作
就是不想用sbit 逻辑操作,就是与或非这种 304301959 发表于 2013-4-8 19:15 static/image/common/back.gif
逻辑操作,就是与或非这种
具体怎么操作?没弄过,,,求指导,求赐教 置位PORTB|=PA0|PA1|PA2;
清零 PROTB&=~(PA0|PA1|PA2); 用带参数的宏比较容易实现楼主的要求。#define motor1(val)(P0 & 0xf0 | (val))在函数中对val值进行检查,不知道这样做是否能达到你的要求。
typedef union
{
uchar All;
struct
{
uchar motor1:4;
uchar motor1:4;
} Solo;
}Moter;
Moter MyMoter;
MyMoter.Solo.motor1 = 0x00~0x0F;
MyMoter.Solo.motor2 = 0x00~0x0F;
P0 = MyMoter.All; 修改头文件啊…… icoyool 发表于 2013-4-20 12:20 static/image/common/back.gif
typedef union
{
uchar All;
用位字段!好办法! icoyool 发表于 2013-4-20 12:20 static/image/common/back.gif
typedef union
{
uchar All;
不会结构体啊
页:
[1]