在运行时重新配置重叠的端口
说我指定端口XS1_PORT_16A和XS1_PORT_4A XN文件。 有一个4针重叠这些端口。 我可以自由地改变他们的方向和时钟如果我一次只打开其中一个端口吗?
例如,我想要配置XS1_PORT_16A从62.5 MHz时钟内部参考时钟XS1_PORT_4A禁用。 后,我禁用XS1_PORT_16A和配置XS1_PORT_4A定时关闭外部时钟的25兆赫。 我期望看到的行为是一样的,如果我只有XN文件中声明的一个端口的。
回答:
首先,端口的XN文件只是一个光荣的# define通过platform.h被包括。 这不是真的有必要,不会改变你的本质问题。
关于重叠,有一件事叫端口优先级的描述(在这个非常方便的doc)(1.0). pdf,我推荐阅读。
优先级的结果是在16和4 4同时意味着出现,但16 4 b洞。 pin mux即小端口优先。
pin mux更改端口开启/关闭时(这是由编译器隐式地完成的,或者可以使用内联xs1.h)手动完成
自从16和4 seperare逻辑端口,可以实现从不同来源。
你可以自由地在运行时改变方向和时钟源端口——它可能谨慎地确保你重置之后(如。 半空缓冲区)。 一个好方法是调用set_port_on(见xs1.h)将安全初始化它。
所以回答这个问题” 我可以自由地改变他们的方向和时钟如果我一次只打开其中一个港口吗? ”,答案是肯定的。
发表时间:2014年10月23日21:58:30