OpenEdv-开源电子网

标题: 新人求助 [打印本页]

作者: moresweet    时间: 2018-9-29 10:55
标题: 新人求助
今天课上老师讲一些寄存器操作,十分懵逼,求前辈帮助。
问题如下:
1.既然GPCx有初值为00,那么其&=操作不应该是全部置0,有何意义,0&任何值不都为0么
2.为什么要左移16位,这样不就直接去控制GPC9-15了吗
3.a=Dat Dat值从何而来
4.希望前辈可以帮我分析一下里面涉及的移位操作和取反操作的意义和过程
谢谢谢谢
作者: peng1554    时间: 2018-9-29 18:40
帮顶!!
作者: moresweet    时间: 2018-10-4 08:34
peng1554 发表于 2018-9-29 18:40
帮顶!!

谢谢,哇头像梁静茹哎
作者: donqy    时间: 2018-10-6 20:11
8bit != 32bit
作者: 美丽的时光机器    时间: 2018-10-20 16:44
1.rGPCCON &= ~(0xff << 16);/* 清零 */
   rGPCCON |= (0x55 << 16);  /* 置1 */
2.我从第4张图片得出来,S3C2440的GPIOC的每个引脚都是由两个位来控制的,0xff << 16,正好对应的是bit16~bit23,就是GPIOC8~GPIOC11
3.a = rGPCDAT就是获取数据寄存器的值
4.取反是为了清零某些位,移位就是为了达到设置某些位的目的,假设你不移位,你完全可以用按位或的形式来实现。




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4