最近在目标机上用sysAuxClkRateSet设置辅助时钟的频率,可是设置不成功,无论我设置时钟的频率为多少,用sysAuxClkRateGet得到的实际辅助时钟的频率是64。我已在BSP中已经加入了AUX clock模块,而且设置的频率在最大值和最小值之间。而在Simpc上使用sysAuxClkRateSet没有什么问题。这是什么原因,还请各位多指教。
按照版主的指点,我做了一下测试。x86系统的辅助时钟必须是2的n次幂,当频率设置为其他的例如5000等等,不是2的n次幂时,sysAuxClkRateSet返回值为ERROR,不能设置频率。不过在x86系统的辅助时钟不能为其他值吗?我现在需要一个定时器,每隔10ms或者是更短的时间产生一个中断,如果x86系统的辅助时钟必须是2的n次幂就不能用它准确进行定时。只能采用系统时钟和看门狗了。而对系统时钟,一般不推荐频率太高。如果想用系统辅助时钟有什么办法,让它的频率像系统时钟,在最大和最小值任何值都可以。
是的,我就是在使用matlab时发现辅助时钟不能够设置一些我期望的频率。没有办法,只好将里面的辅助时钟改为系统时钟。不过如果在Simulink将仿真步长设得很小,系统时钟得频率就会很高,一般情况希望系统时钟得频率太高。不过也可以考虑使用外部定时器,让定时器产生中断。
呵呵,把主时钟设置得太高会带来其他问题,硬实时性能会下降,操作系统本身带来的负荷太大了。计算硬件性能再好,也不推荐这样做。