Page 2 of 2
【已解决】Re: BK7231N_3.3.4如何用PWMIO口连续发不同评率的高速电平脉冲
Posted: 2023年 Apr 4日 13:15
by 15988991229
hearge 2023年 Apr 4日 11:43
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x2;
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x0;
您好,可以使用上面直接操作寄存器试下效果,8对应gpio号。
非常好,能做到比较精确的IO口输出,但是我们有多个口要用到,请问有没有一份BK7231寄存器的列表,方便我们对照使用?
Re: BK7231N_3.3.4如何用PWMIO口连续发不同评率的高速电平脉冲
Posted: 2023年 Apr 4日 15:02
by 15988991229
15988991229 2023年 Apr 4日 13:15
hearge 2023年 Apr 4日 11:43
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x2;
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x0;
您好,可以使用上面直接操作寄存器试下效果,8对应gpio号。
可以的,做到了更快速的IO输出,但是在它们之后写的空循环语句好像不起作用了,IO输出波形跟没空循环差不多的。有没有什么好的建议吗?或者有什么指令可以实现?
Re: BK7231N_3.3.4如何用PWMIO口连续发不同评率的高速电平脉冲
Posted: 2023年 Apr 4日 15:19
by 15988991229
后来我用了一个延时语句,分别用不同的延时参数(如下),结果发现发出来的波形图也是一样的,没有变化,请问一下关于加空循环有什么合理的建议或者指令可以实现?
void nop_delay(volatile UINT16_T times)
{
UINT16_T delay = times;
while(delay--) ;
}
Code: Select all
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x2;
nop_delay(100);
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x0;
nop_delay(100);
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x2;
nop_delay(1000);
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x0;
nop_delay(1000);
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x2;
nop_delay(10);
*((volatile unsigned int *)(0x0802800 +(8 * 4))) = 0x0;
nop_delay(10);
Re: BK7231N_3.3.4如何用PWMIO口连续发不同评率的高速电平脉冲
Posted: 2023年 Apr 4日 15:23
by hearge
for循环处理,可以加嵌套试下。
for(){
for() {
}
}
Re: BK7231N_3.3.4如何用PWMIO口连续发不同评率的高速电平脉冲
Posted: 2023年 Apr 4日 15:50
by 15988991229
hearge 2023年 Apr 4日 15:23
for循环处理,可以加嵌套试下。
for(){
for() {
}
}
你好,延时的程序我已经处理好,问题已经解决,感谢贵公司工程师的支持!
Re: BK7231N_3.3.4如何用PWMIO口连续发不同评率的高速电平脉冲
Posted: 2023年 Apr 4日 16:22
by hearge