STC8H1KW
发表于 2023-8-11 19:58:44
void Key_Config(void) //按键检测
{
if((!JS )&&(!PA5)&&(ad3_flag_green = 1))
{
//PWMA_config();
P11 = 0;
}
else
{
PWMA_BKR= 0x00;
}
请问一下,初始化好好的,到了这一步,PWM波形就乱了。
梁工
发表于 2023-8-11 21:19:54
STC8H1KW 发表于 2023-8-11 19:58
void Key_Config(void) //按键检测
{
禁止了PWM,能不乱吗?
STC8H1KW
发表于 2023-8-12 08:30:41
我程序的设想按下输出百分之五十,松手输出为0,该怎么着手。
梁工
发表于 2023-8-12 14:35:15
STC8H1KW 发表于 2023-8-12 08:30
我程序的设想按下输出百分之五十,松手输出为0,该怎么着手。
50%占空比也可以不用PWM,用定时器就可以输出。
按下设置、允许输出,松手就关闭输出,就这么简单。
神农鼎
发表于 2023-8-12 16:07:18
STC8H1KW
发表于 2023-8-12 16:24:11
void PWMA_Config(void)
{
P_SW2 |= 0x80;
PWMA_CCER1= 0;
PWMA_CCER2= 0;
PWMA_CCR2 = 400;
PWMA_ARR = 500;
PWMA_CCMR2= 0x68; // 通道模式配置, PWM模式1, 预装载允许
PWMA_CCER1 |= 0x50; // 开启比较输出, 高电平有效
PWMA_PS |= (0<<2); // 选择IO, 0:选择P1.2 P1.3, 1:选择P2.2 P2.3, 2:选择P6.2 P6.3,
PWMA_ENO &= ~0x08; // IO输出允许,bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P,bit3: ENO2N,bit2: ENO2P,bit1: ENO1N,bit0: ENO1P
PWMA_BKR |= 0x80; // 主输出使能 相当于总开关
PWMA_CR1 = 0x81; // 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,bit7=1:写自动重装载寄存器缓冲(本周期不会被打扰), =0:直接写自动重装载寄存器本(周期可能会乱掉)
PWMA_EGR = 0x01; // 产生一次更新事件, 清除计数器和预分频计数器, 装载预分频寄存器的值
}
void Key_Config(void) //按键检测
{
if((!JS )&&(!PA5)&&(ad3_flag_green = 1))
{
PWMA_ENO |= 0x08;
P11 = 0;
}
else
{
PWMA_ENO &= 0x08;
}
if((!JS )&&(!PA5)&&(ad3_flag_orange = 1))
{
PWMA_ENO |= 0x08;
P10 = 0;
P11 = 0;
}
else
{
PWMA_ENO &= ~0x08;
}
if((!JS )&&(!PA5)&&(ad3_flag_red = 1))
{
PWMA_ENO |= 0x08;
P10 = 0;
}
else
{
PWMA_ENO &= ~0x08;
}
void main()
{
IO_init_config();
//PWMA_Init();
Timer0_init();
STC8G_ADC_Iint(); //STC8G系列10位AD初始化函数
while(1)
{
Change_Led();
Key_Config();
{
PWMA_Config();
}
}
}
这个PWM波形为什么是假的,经常在跳动
STC8H1KW
发表于 2023-8-12 18:21:38
频率在跳动,还有杂波干扰。这是怎么回事了,梁工,指导一下。
梁工
发表于 2023-8-13 17:01:29
STC8H1KW 发表于 2023-8-12 18:21
频率在跳动,还有杂波干扰。这是怎么回事了,梁工,指导一下。
先测试我的例程“01C-PWMA-4对互补PWM输出P2口-间歇输出”,然后再移植修改。
STC8H1KW
发表于 2023-8-15 16:46:01
请教一下,这个MOS管怎么总是烧,50V60A的MOS,驱动24V 工作电流5A的电机,
梁工
发表于 2023-8-15 17:39:24
STC8H1KW 发表于 2023-8-15 16:46
请教一下,这个MOS管怎么总是烧,50V60A的MOS,驱动24V 工作电流5A的电机,
GS两极并联一个12V的稳压二极管试试,应该不会再烧了。栅压要限制一下的,虽然你用的5V驱动,但是DG之间有电容的。