完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
为了使一个文件能够在不同的硬件平台之间交换,我考虑在硬件配置文件头文件中定义所有硬件平台特定的参数,然后在非硬件特定的文件调用中允许非硬件特定的功能/采用这些新定义。一个平台可以采用UART1作为通信端口,另一个平台可以采用UART2。我想在硬件配置文件头中为U1MODE或U2MODE分配一个通用的COM_MODE参数,比如:COM_MODE=U1MODE或COM_MODE=U2MODE。当我想移动周围的东西,搜索所有特定的HW参数。如果允许,那我怎么办呢?谢谢你,克雷格
|
|
相关推荐
7个回答
|
|
|
|
我使用一个我创建的头文件,它包含在我的..h中,包括:etc。然后,在..h中,在包括上述内容之后,我定义例如:-这允许我访问硬件,如下所示:-这意味着要改变我正在寻址的硬件,我只需要改变一行代码。以上包括PIC32的SET和CLR寄存器。
|
|
|
|
我个人并不喜欢这种方法,因为它提出了一些可能有效或可能无效的假设。在源级实现这一点应该有所不同。在我看来,即使是Microchip自己尝试提供外围库也是一个灾难,因为它们甚至通过API使用不兼容的实现(例如,阻塞与非阻塞UART和SPI函数以及t.如果您真的想抽象各种MCU的操作,那么您需要在相当高的级别上进行此操作,并确保抽象层提供的功能要么是所有受支持的设备都通用的,要么是缺少功能的优雅方式由抽象层处理的特定芯片上的能力。抽象层也需要代码,而不是宏,这意味着大量的计划、编码、测试和文档。我所讨论的(相对)一个很好的例子是微芯片提供的USB和IP栈。对于IP堆栈,它们需要的只是SPI的最基本实现,并且根据设计选择哪个头文件编辑头文件。对于USB堆栈,外围设备是“内置的”,微芯片会尽其所能提供满足所有变化的条件代码。即使有这些例子,也要看看人们第一次尝试使用这些堆栈时遇到的问题。抱歉!苏珊
|
|
|
|
是的,我同意。
|
|
|
|
有时需要把一个UART换成另一个,或者一个定时器到另一个定时器。然后代码编辑可能会让人恼火。我在使用配置资源的配置文件.h文件。类似于:在源代码(.c)文件中:使用宏:文本连接:
|
|
|
|
嗨,以一致的方式使用来自设备支持文件的符号名称,有助于在设备之间桥接小的差异,并且有助于检测错误和差异,这些错误和差异不能仅仅通过访问寄存器中不同位置的相同函数来解决。寄存器结构类型定义通过包含
|
|
|
|
我在我的硬件头文件中实现了如下内容:#define COM_PORT_MODE U2MODE然后使用COM_PORT_MODE代替U2MODE。注意:这种“重命名”实现只有在我引用芯片(PIC24xxx.h)头文件时才有效。没什么大不了的,我可以接受。
|
|
|
|
只有小组成员才能发言,加入小组>>
5166 浏览 9 评论
2000 浏览 8 评论
1929 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3175 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2227 浏览 5 评论
736浏览 1评论
619浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
507浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
633浏览 0评论
530浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 04:19 , Processed in 1.145966 second(s), Total 58, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号