Microchip
直播中

张桂兰

7年用户 1333经验值
私信 关注
[问答]

如何在自定义结构中使用SFR位

嗨,伙计们。我最近买了一个Mikromedia开发工具包,上面有24ep512gu010,以了解更多关于PICMCU的知识,因为我在微控制器编程方面还是个新手,并且由于主开发板被设计成用于不同的零件编号,所以没有预先定义的PORT/LATCH ro。而是有五个不同的组(4-0),每个组由来自各种锁存器的8位组成,例如GROUP0位<7:0>=RD12、RD7、RD6、RB9、RB5、RB4、RB3、RB2。我想做的是将这些位分组到一个结构中,以便当我向GROUP0(或TRISGR0)写入一个整数时,它填充序列中必要的位。有人知道如何使用结构来实现这一点吗?到目前为止,我已经设法编写了一个模拟SFR(GROUP0bit.G01)的程序,但是无法解决如何将组pin与对应的SFR pin相关联。我知道这个开发板是打算和mikroc一起使用的,它已经有这个功能了,很容易获得,但是我更喜欢学习如何在MPLABX中实现它。如有任何反馈,将不胜感激。谢谢

回帖(3)

李天竹

2020-4-29 12:21:05
不会发生的。因为这些比特不是连续的,C对于这个太弱了。只能在端口内进行。您将需要手动写入位分配例程。
举报

陈晨

2020-4-29 12:29:35
或者你可以写一个函数来完成它。假设C允许这样做,它将不会有一个疯狂的方式来做它在一个单一的操作码。所有的8位将需要一次设置。这是所有的芯片指令集允许的。如果您需要额外的性能,可以尝试调用汇编语言函数。
举报

刘思思

2020-4-29 12:45:16
我担心这就是答案。不是很好用汇编语言,但我想这将是一个很好的学习时间。感谢你的洞察力
举报

更多回帖

发帖
×
20
完善资料,
赚取积分