共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |