共3条
1/1 1 跳转至页
各位朋友,请问用C语言如何实现如下位操作。
问
将TEMP的.6放进PORTD.7中,要求PORTD.0-PORTD.6不变。
答 1:
肯定行的 if(TEMP&0X40) TEMP|=0X80;
else TEMP&=0X7FF;
答 2: 上面朋友我的意思是PORTD.7<-TEMP.6,不知如何操作? 答 3: 这样if(TEMP&0x40) PORTD |= 0x80;
else PORTD &= 0x7F; 答 4: 谢谢上面两位朋友,不用if语句能否实现,用汇编好象会简单点。 答 5: 这个当然 答 6: 用汇编你自己用寄存器传参数,更麻烦。temp2=temp&0b00100000;
temp2=(!!(temp2))<<7;
PORTD&=0b01111111;
PORTD|=temp2;
我没跑哈,自己试一下。
答 7: 上面写麻烦了,不想改了,重新给一个:temp1=temp;//如果不要TEMP里的数据了,可以不要这个TEMP1
temp1&=0b00100000;//取出TEMP.6
temp1=temp1<<1;//弄到第7位去
PORTD&=0b10111111;//上面写错了,不好意思!
PORTD|=temp1;//怎么样?过去了吧。
这个一样没跑过哈,自己验证一下。
else TEMP&=0X7FF;
答 2: 上面朋友我的意思是PORTD.7<-TEMP.6,不知如何操作? 答 3: 这样if(TEMP&0x40) PORTD |= 0x80;
else PORTD &= 0x7F; 答 4: 谢谢上面两位朋友,不用if语句能否实现,用汇编好象会简单点。 答 5: 这个当然 答 6: 用汇编你自己用寄存器传参数,更麻烦。temp2=temp&0b00100000;
temp2=(!!(temp2))<<7;
PORTD&=0b01111111;
PORTD|=temp2;
我没跑哈,自己试一下。
答 7: 上面写麻烦了,不想改了,重新给一个:temp1=temp;//如果不要TEMP里的数据了,可以不要这个TEMP1
temp1&=0b00100000;//取出TEMP.6
temp1=temp1<<1;//弄到第7位去
PORTD&=0b10111111;//上面写错了,不好意思!
PORTD|=temp1;//怎么样?过去了吧。
这个一样没跑过哈,自己验证一下。
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |