1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我只是想知道,既然PIC单片机是位址的,有没有什么方法可以识别端口的地址(位,像RB1或RB2)。因为当我使用下面的语句时:unsigned int*bitPtr;bitPtr=&PORTBbits.RB1;编译器说“不能获取位字段‘RB1’的地址”,但我确实需要一些RBx端口作为参数,我可以用一个函数来改变它们。我该怎么办?我的函数是:空格转换符(无符号int * BitPtr){//更改端口级别基于某些条件* BitPtr ^=1;}
|
|
相关推荐
6个回答
|
|
通过ANSI C标准,位字段没有地址。在真正的芯片中,比特不是单独可寻址的。
|
|
|
|
你可以得到端口的地址而不是比特的地址。无论如何,拥有端口地址就足够了。您已经知道端口内的位的“地址”。因此您可以使用只对感兴趣的邮寄位具有单个“1”的值来异或整个端口,或者应用一些其他方案。
|
|
|
|
嗨,在你对比特字段进行逻辑操作之前,或者甚至是指向BITFEAR的指针之前,我建议你检查代码大小的生成/执行时间。我的意思是,BITFIELD对于赋值或测试值都很有好处,但是你应该避免它们进行逻辑运算或算术运算。NS。这是由于它们是通过结构和/或工会来声明的。由于C编译器必须处理一个特定的方法,从而导致更长的代码。为了“可视化”我的观点,只需编译下面的行并检查每个实现生成了多少汇编指令。如果你不关心执行时间/代码大小,那么你就可以感到惊讶了。
|
|
|
|
你对PICS有什么了解?PIC16/18和PIC24/DSPIC具有由编译器非常有效地使用的特殊位操作。
|
|
|
|
GRICH,PIC24和PIC33都支持比特的间接寻址,但“C”不支持。为了达到这个目的,你必须求助于汇编。零或进位标志***纵,然后通过间接寻址读或写。T Yorky
|
|
|
|
删除。我没有发现这是DSPIC
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
778浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
677浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 08:23 , Processed in 1.348690 second(s), Total 86, Slave 70 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号