Page 1 of 1

【已解决】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 11日 19:35
by luzhihui

1)tuyaos-subdev-bt_3.9.0_phy6222_ble_ble-common_1.0.1.tar
2)执行了一个128*64的OLED 给每个点赋值,发现有8MS的时间,开始以为是我代码问题,屏蔽了所有代码后开启一个20MS定时器,在定时器里面模拟操作,然后使用逻辑分析仪抓一个测试电平,发现确实要8MS。我现在想问下,这个时间合理吗?

Weixin Image_20240311193443.png
Weixin Image_20240311193435.png

Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 11日 20:11
by 逻辑的院子

请贴一下相关代码,例如test_timeout_handler是由哪个接口调用的?


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 09:06
by luzhihui

这个就是一个软定时器回调


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 10:05
by 逻辑的院子

这个时间实际上就是您写的代码运行时间,跟主频有关,如果是在软定时中,也可能会受到其他中断的影响。
驱动OLED屏幕,一般是使用SPI或者IIC等数字接口,例如TuyaOS BLE SDK官方历程中使用的就是IIC驱动,例程详见:https://developer.tuya.com/cn/docs/iot- ... pp9a7lx3c0


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 10:34
by luzhihui

这个我就是拉的一个SDK,没什么其他功能,就创建了一个20MS软定时器,然后在回调中测试的。用的是PHY6222,外部晶振是16M.其他SDK没做什么修改的情况下测试。这个时间正常吗?我的OLED驱动用的SPI+DMA方式,驱动是没什么问题的,就是在做数据处理的时候,发现耗时很长。


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 10:41
by 逻辑的院子

这个时间就是您写的for循环代码运行的时间,理论上是正常的,如果需要调整时间长短,您可以修改for循环的次数。


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 11:22
by luzhihui

最后一个疑问,6222外接16M晶振,那么运行主频是多少?这个主频可以修改吗?


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 11:51
by 逻辑的院子

默认就是16MHz,如果需要修改,可以修改这个变量“g_system_clk”,奉加微官方建议不要超过48MHz


Re: 【求助】【TuyaOS OS】关于一个8000次for循环执行时间8MS

Posted: 2024年 Mar 12日 14:47
by luzhihui

好的,感谢