官方的基础相关的库,里面找了个遍,没有找到,也许哪里疏忽了。
找到一个SYS_GetSysTickCnt(),以为是,结果测试的结果,一直是0xFFFFFFFFF。
之前用Arduino开发esp8266,有millis() 和 micros(),对应芯片上电运行的毫秒和微秒数。这个可以用起来,实现一些功能。
使用了一段时间ch573,功能是非常强大,又配合MounRiver Studio,开发非常方便,唯一的缺憾就是资料太稀少,想实现功能,就要自己动手移植库,慢慢摸索中。
官方的基础相关的库,里面找了个遍,没有找到,也许哪里疏忽了。
找到一个SYS_GetSysTickCnt(),以为是,结果测试的结果,一直是0xFFFFFFFFF。
之前用Arduino开发esp8266,有millis() 和 micros(),对应芯片上电运行的毫秒和微秒数。这个可以用起来,实现一些功能。
使用了一段时间ch573,功能是非常强大,又配合MounRiver Studio,开发非常方便,唯一的缺憾就是资料太稀少,想实现功能,就要自己动手移植库,慢慢摸索中。
基于32K时钟提供了万年历的功能,可以通过这个来进行计数,相应的函数可以参考链接最下方的代码:
CH573芯片Sleep说明 - SweetTea_lllpc - 博客园 (cnblogs.com)
上面函数是抵达定时器,这里也有参考:
CH579 CH5573 CH582 嘀嗒定时器使用 - debugdabiaoge - 博客园 (cnblogs.com)
感谢,使用 SysTick_Config(32000) 测试ok!
定义一个全局变量,uint32_t类型数据,在中断里对它++,它就类似millis()的值。不过它的值,单位不是1ms,我测试1秒间隔,会自加1878。不过也能用,比例转换一下就好。
找到原因了,我以为32000是对应晶振的32M,原来是要对应主频,60M的主频,设置为60000,确实是1ms间隔。