智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1344|回复: 5
打印 上一主题 下一主题

求救,看不懂啊这条代码,跪谢啊

[复制链接]

8

主题

105

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1708

活跃会员奖章优秀会员奖章

威望
859
贡献
573
兑换币
394
注册时间
2011-11-18
在线时间
138 小时
跳转到指定楼层
1#
发表于 2013-4-24 21:33:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void yima_PutVal(byte Val)
{
  setReg(GPIO_A_DR,((getReg(GPIO_A_DR)) & ~yima_PIN_MASK) | ((word)Val & yima_PIN_MASK)); /* Set-up bits on port */
}

8

主题

105

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1708

活跃会员奖章优秀会员奖章

威望
859
贡献
573
兑换币
394
注册时间
2011-11-18
在线时间
138 小时
2#
 楼主| 发表于 2013-4-25 11:15:27 | 只看该作者
自己顶
回复 支持 反对

使用道具 举报

3

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2334
威望
1223
贡献
703
兑换币
586
注册时间
2012-2-26
在线时间
204 小时
3#
发表于 2013-4-25 11:38:51 | 只看该作者
setReg(GPIO_A_DR,((getReg(GPIO_A_DR)) & ~yima_PIN_MASK) | ((word)Val & yima_PIN_MASK)); /* Set-up bits on port */

根据字面理解是:函数setReg()的功能是设置端口"GPIO_A_DR"的值为"((getReg(GPIO_A_DR)) & ~yima_PIN_MASK) | ((word)Val & yima_PIN_MASK))".关键是后面一个参数又是一个表达式.该表达式的值是前半部分"(getReg(GPIO_A_DR)) & ~yima_PIN_MASK)"的值与后半部分"((word)Val & yima_PIN_MASK))"进行或(|)运算.先看前半部分的值:通过函数getReg(GPIO_A_DR)获取端口"GPIO_A_DR"的值然后跟掩码"yima_PIN_MASK"取反(~)后的值再进行与(&)运算得到.后半部分的值是先将参数Val强制转换成word型数据再与掩码yima_PIN_MASK进行与(&)运算得到.这么说不知道你可明白?
回复 支持 反对

使用道具 举报

8

主题

105

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1708

活跃会员奖章优秀会员奖章

威望
859
贡献
573
兑换币
394
注册时间
2011-11-18
在线时间
138 小时
4#
 楼主| 发表于 2013-4-27 15:24:29 | 只看该作者
DEATHRACE 发表于 2013-4-25 11:38
setReg(GPIO_A_DR,((getReg(GPIO_A_DR)) & ~yima_PIN_MASK) | ((word)Val & yima_PIN_MASK)); /* Set-up bi ...

将参数Val强制转换成word型数据,是什么意思,如果Val是11转换后成了什么啦,谢谢啦
回复 支持 反对

使用道具 举报

3

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2334
威望
1223
贡献
703
兑换币
586
注册时间
2012-2-26
在线时间
204 小时
5#
发表于 2013-4-27 16:05:26 | 只看该作者
10058133 发表于 2013-4-27 15:24
将参数Val强制转换成word型数据,是什么意思,如果Val是11转换后成了什么啦,谢谢啦。

word就是双字节数据,用法跟其他数据类型是一样的.如果Val=11,(word)Val的值也是11.如果Val的值原先是0x87654321.占了四个自己,当强制转换后高位的两个字节就舍去,((word)Val )的值是0x4321.
回复 支持 反对

使用道具 举报

8

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1867
威望
698
贡献
457
兑换币
269
注册时间
2012-6-3
在线时间
356 小时
毕业学校
山东科技大学
6#
发表于 2013-4-27 17:55:21 | 只看该作者
Set-up bits on port 
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-2 17:22 , Processed in 0.101974 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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