ckovmk / hitsic_module Goto Github PK
View Code? Open in Web Editor NEWHITSIC MCU Modules repo
License: Apache License 2.0
HITSIC MCU Modules repo
License: Apache License 2.0
补全文档,修复虚函数重载后继承的问题 #28
rt,需要优化查询性能
i2c-tool是树莓派等Linux单板机上常见的一种I2C调试工具,具备I2C设备扫描、寄存器读写等功能。
我计划编写/移植一个类似的工具。大家可以把想法写在这里。
我的另外一个想法是,仿照RT1052的FlexSPI,或者RT1052的DCD,或者是U8G2库的实现方式,创建一个通用I2C工具。这个工具接收一个由命令组成的数组,并将其转换成I2C操作。通过这个工具,我们就可以非常方便地定义I2C读写序列。这样,在使用一些不常用的I2C设备时,我们就可以根据手册直接编写I2C序列,迅速完成功能测试。
参考代码:来自U8G2项目
/* this is a copy of the init sequence for the seeed 96x96 oled */
static const uint8_t u8x8_d_ssd1327_ea_w128128_init_seq[] = {
U8X8_START_TRANSFER(), /* enable chip, delay is part of the transfer start */
U8X8_CA(0x0fd, 0x012), /* unlock display, usually not required because the display is unlocked after reset */
U8X8_C(0x0ae), /* display off */
//U8X8_CA(0x0a8, 0x03f), /* multiplex ratio: 0x03f * 1/64 duty */
U8X8_CA(0x0a8, 0x05f), /* multiplex ratio: 0x05f * 1/64 duty */
U8X8_CA(0x0a1, 0x000), /* display start line */
//U8X8_CA(0x0a2, 0x04c), /* display offset, shift mapping ram counter */
U8X8_CA(0x0a2, 0x010), /* display offset, shift mapping ram counter */
U8X8_CA(0x0a0, 0x051), /* remap configuration */
U8X8_CA(0x0ab, 0x001), /* Enable internal VDD regulator (RESET) */
//U8X8_CA(0x081, 0x070), /* contrast, brightness, 0..128 */
U8X8_CA(0x081, 0x053), /* contrast, brightness, 0..128 */
//U8X8_CA(0x0b1, 0x055), /* phase length */
U8X8_CA(0x0b1, 0x051), /* phase length */
//U8X8_CA(0x0b3, 0x091), /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */
U8X8_CA(0x0b3, 0x001), /* set display clock divide ratio/oscillator frequency */
//? U8X8_CA(0x0ad, 0x002), /* master configuration: disable embedded DC-DC, enable internal VCOMH */
//? U8X8_C(0x086), /* full current range (0x084, 0x085, 0x086) */
U8X8_C(0x0b9), /* use linear lookup table */
//U8X8_CA(0x0bc, 0x010), /* pre-charge voltage level */
U8X8_CA(0x0bc, 0x008), /* pre-charge voltage level */
//U8X8_CA(0x0be, 0x01c), /* VCOMH voltage */
U8X8_CA(0x0be, 0x007), /* VCOMH voltage */
U8X8_CA(0x0b6, 0x001), /* second precharge */
U8X8_CA(0x0d5, 0x062), /* enable second precharge, internal vsl (bit0 = 0) */
U8X8_C(0x0a4), /* normal display mode */
U8X8_END_TRANSFER(), /* disable chip */
U8X8_END() /* end of sequence */
};
Jemalloc 、 mimalloc高性能内存分配库?
GCC堆栈检查标志?-fstack-protector
函数指针改用std::function和std::bind?
菜单无法拷贝不同数据区内存储的数据
完善功能:Status变量:保存状态Flag。
新增功能:新增APP_MENU_PLUGIN插件子模块,第一个插件:CMB分区保存CmBacktrace报错信息、assert报错信息等。第二个插件:LittleRookieChess
修改逻辑:增加二级菜单能调整的有效数字位数(暂时好像做不到)
抽象显示接口
菜单显示方式更改为全缓存
GetW()
GetH()
SetPixel(x, y, value)
Update()
新增菜单全局属性Flag
选项:菜单快速调参开关等
新增类型:version显示类型
新增类型:infoType,显示一段提示语
RMCALL编写、调试
完善RMCALL文档
menuItem_disp_noPreview
属性虽然关闭了菜单列表内的数值显示,但用户仍可在菜单列表内使用←/→键进行快速调参。在看不到变量的情况下仍能调整参数是十分危险的。
想法是编写一套常用图像处理算法的库,计划包含以下内容:
还有哪些常用的算法,可以在下面提出来。
如果有相关算法的资料、代码等,也可以贴链接。
由于SD卡的配置及初始化过于复杂,完全留在各底层工程内可能会影响更新SDK版本的便捷性。我认为有两种解决方案:
1. FATFS跟随工程,SD卡初始化跟随模组
优点:可以利用SDK内的FATFS组件,无需手动移植,工作量小
缺点:SDK内FATFS组件版本较老,手动更新工作量大;SD卡初始化与FATFS存在较强耦合,分在底层和模组内比较奇怪。
2. FATFS和SD卡初始化均跟随模组
优点:FATFS更新简单,一次更新可覆盖全部底层;可以实现更复杂的操作,例如检测到SD卡插入即初始化并挂载,安全弹出功能,检测到SD卡拔出则卸载等。
缺点:需要手动维护。
备注:我们仍可以使用NXP自带的移植代码,但是必须自己拷贝过来使用。
编写延迟模组。
该延迟模组应包含四个移植接口:设置定时器周期、启动定时器、停止定时器、查询标志位。
该模组还包含面向SYSTICK定时器的默认移植,如果SYSTICK定时器存在且未被占用,则可使用默认移植。
编写时请注意定时器溢出的情况。
参考MultiButton,优化BUTTON组件:
Feature Request.
[PITMGR] & [EXTINT]回调函数参数加一个void* userData
,保存在结构体里
@begorelight 的方案
oled_port.zip
重构旧软件I2C库
编写软件SPI库
TFmini
VL53L0x/L1x
TCS34725
凌瞳彩摄:
代码链接
TFT彩屏(不知道我们自己的TFT240和逐飞的哪个更好用)
Kinetis系列为kPORT_xxx
I.MX RT系列为kGPIO_xxx
上下滚动时长按无效。
调参界面的正负号逻辑是否有问题?
测试菜单保存、读取
菜单无法拷贝不同数据区内存储的数据
摄像头驱动重构。
拆分为"配置器"和"接收器"两部分。
K66的接收器仿照1052 CSI的API编写。
面向摄像头的配置器包含一个成员函数,用于导出所需的配置结构体。
配置器包含宏:USE_KNCSI或USE_RTCSI,根据该宏切换所导出的配置结构体是K66 KNCSI的配置结构体还是RT1052 RTCSI的配置结构体。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.