Meils的PWM BUG
-
这段代码是PWM驱动里面的,这个disable没有用处,也就是PWM并不会停止
所以,这代码我猜应该是没测试过的感觉这个Meils 4 开发的太快了都来不及测试就上线了
void hal_pwm_enable_controller(uint32_t channel_in) { unsigned long reg_addr = PWM_BASE + PWM_PER; uint32_t reg_val; reg_val = readl(reg_addr); reg_val |= 1 << channel_in; writel(reg_val, reg_addr); } /************ disable **************/ void hal_pwm_disable_controller(uint32_t channel_in) { unsigned long reg_val; unsigned long reg_addr = PWM_BASE + PWM_PER; reg_val = readl(reg_addr); reg_val |= 1 << channel_in; //reg_val = Ox00; writel(reg_val, reg_addr); }
PER那个使能寄存器是这么描述的
Offset:0x0080 Register Name: PER Bit Read/Write Default/Hex Description 31:8 / / / 7 R/W 0x0 PWM7_EN When PWM is enabled, the 16-bit up-counter starts working and PWM channel7 is permitted to output PWM waveform. 0: PWM disable 1: PWM enable
-
请问这个SDK是从哪里获取的?我这边的1.4版本是这样的
-
@awwwwa 你这个版本是正确的
我这个是Melis4呀
github上面,还有gitee上面都有
具体位置在这
https://github.com/Tina-Linux/d1s-melis/blob/master/ekernel/drivers/hal/source/pwm/hal_pwm.c
这个是官方的吗?
有没有Melis3的官方稳定测试过的版本呀,在哪里可以下?
我要遇到同样BuG了好去找个对比的……还有这个PWM的测试代码并不全,甚至驱动也是不全的,那个功能就写了一个生成PWM波的,没有中断的,也没有PWM对的,也没有PWM捕获,开发文档也没写清楚这些PWM输出引脚也是受限的,容易被其他功能干扰导致不输出
直接看用户手册直接操作寄存器,比较靠谱……
还有我顺带测试了一下那个Ledc驱动的输出,这玩意基本也是个废柴,输出不稳定,800K的周期,部分是800,部分是833,850,如果只驱动一两个应该没事,驱动数量上去了,就会有各种问题……什么头尾绿,颜色不对……那个参数不能乱改,应该调好的,调别的乱跳的时候就不能保证1和0的周期正确了
-
@leomini5 github这个是很老的版本了.... 0.6版
-
@yuzukitsuru 哪里有最新的版本啊,这个版本太多BUG了,干不过它
-
@awwwwa 你这个也是错的,这么写会把所有通道都关掉,而不是指定的那个……
-
此回复已被删除!
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号