打印

请较一个C语言操作问题?

[复制链接]
2553|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
saimax|  楼主 | 2011-3-14 11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如定义一个变量uchar a  那么a会对应有8个位(a.7,a.6,a.5.......),问题是我如何定义这8个位对应于我单片机的8个端口(如a.7对应p1.7;a.6对应p2.1等)通过改变变量a的值从而改变所对应单片机各对应端口的输出状态。

相关帖子

沙发
ejack| | 2011-3-14 12:26 | 只看该作者
原子级操作无解,似乎只能由函数检位状态并转换。

追求程序书写得好看吗?

使用特权

评论回复
板凳
saimax|  楼主 | 2011-3-14 12:31 | 只看该作者
不是,比如说一个8位数码管,P1.0接a段,P2.0接b段,p3.0接c段。。。。。。那么我要这个数码显示某个数字,直接赋值给这个变量就行了,而不需要进行繁琐的操作。

使用特权

评论回复
地板
hys0401| | 2011-3-14 13:07 | 只看该作者
总共十个数字,肯定是直接赋值。每个数字对应一个数值,这有什么问题?

使用特权

评论回复
5
hys0401| | 2011-3-14 13:09 | 只看该作者
(如a.7对应p1.7;a.6对应p2.1等
=======================
晕死,你就不能用一个口啊?非要用两个口么?

使用特权

评论回复
6
saimax|  楼主 | 2011-3-14 13:16 | 只看该作者
(如a.7对应p1.7;a.6对应p2.1等
=======================
晕死,你就不能用一个口啊?非要用两个口么?
hys0401 发表于 2011-3-14 13:09



第一我是假如,第二有时候PCB设计非得用2~3个口,那怎么办呢?

使用特权

评论回复
7
aibxyz| | 2011-3-14 13:29 | 只看该作者
如果是同一口,uchar 直接定义到特殊寄存器那就好了
如果比较乱,我以前的做法是做个函数,输入一个uchar或int的,然后输出到IO
当然,如果一定要用'a='这样的来操作,那封一个class,重载'='运算符

使用特权

评论回复
8
sdpz| | 2011-3-14 13:54 | 只看该作者
定义一个位域指针指向IO口的地址。时间不多我就不说了,自己查资料。

使用特权

评论回复
9
batsong| | 2011-3-14 17:55 | 只看该作者
处理器硬件不支持位操作,你写的形式再完美都没用。

编译出来还是a |= BITx;   a &= ~BITx;

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
lelee007 + 1
10
ayb_ice| | 2011-3-14 18:58 | 只看该作者
处理器硬件不支持位操作,你写的形式再完美都没用。

编译出来还是a |= BITx;   a &= ~BITx;
batsong 发表于 2011-3-14 17:55

LZ肯定不会汇编,对CPU也没有什么理解

使用特权

评论回复
11
汽车电子| | 2011-3-14 19:03 | 只看该作者
用位结构

输出控制只在一个地方执行即可,把位结构输出到对应的端口

使用特权

评论回复
12
zhaopan8711| | 2011-3-14 21:32 | 只看该作者
直接写个函数,这个**作过的,呵呵........

使用特权

评论回复
13
56ming| | 2011-3-14 22:40 | 只看该作者
单片机控制蓝牙c编程如何实现

使用特权

评论回复
14
谈的元| | 2011-3-14 23:07 | 只看该作者
定义联合,结构,

然后写成A.2=B.3的形式即可

使用特权

评论回复
15
谈的元| | 2011-3-14 23:09 | 只看该作者
a.1=b.2;
a.2=c.3;
a.3=b.4
....
楼主去查询联合与结构

使用特权

评论回复
16
wang_2003| | 2011-3-15 11:20 | 只看该作者
我也想过实现这样的功能,但是没实现
该去看看联合与结构了

使用特权

评论回复
17
lelee007| | 2011-3-15 12:20 | 只看该作者
LZ先看你的IO口操作是否支持位操作,比如控制IO的register是否有支持bit操作的汇编指令

硬件不支持位操作,说神马都是浮云

使用特权

评论回复
18
saimax|  楼主 | 2011-3-15 13:30 | 只看该作者
我也想到用联合与结构,不过不是那么懂!感觉抽象,真的该好好复习了!

使用特权

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

本版积分规则

个人签名:我就喜欢搞电子,怎么着?

28

主题

176

帖子

1

粉丝