darryman 发表于 2023-10-12 10:42:22

STC8A_PWM15bit.c库函数疑问

u8PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)


PWM_id: PWM通道序号. 取值 0~7
//         pwm_eno:   pwm输出使能, 0设为GPIO, 1设为PWM输出.
//         pwm_ini:   pwm输出端的初始电平, 0为低电平, 1为高电平.
//         pwm_eni:   pwm通道中断使能控制, 0为关闭PWM中断, 1为使能PWM中断.
//         pwm_ent2i: pwm通道第二个触发点中断使能控制, 0为关闭PWM第二个触发点中断, 1为使能PWM第二个触发点中断.
//         pwm_ent1i: pwm通道第一个触发点中断使能控制, 0为关闭PWM第一个触发点中断, 1为使能PWM第一个触发点中断.





通道控制函数中没有PWM输出脚位控制的参数,库函数中哪里设置PWM输出脚位的?

gentleman 发表于 2023-10-12 11:40:08

有宏定义


这是8h的, 8A的应该也一样











darryman 发表于 2023-10-12 13:42:31

gentleman 发表于 2023-10-12 11:40
有宏定义




我查看了下STC8G的库函数是有的, 但是STC8A8K64D4的库函数是没声明的,是否是STC8A8K64D4的库函数不够完整

乘风飞扬 发表于 2023-10-12 13:49:42

darryman 发表于 2023-10-12 13:42
我查看了下STC8G的库函数是有的, 但是STC8A8K64D4的库函数是没声明的,是否是STC8A8K64D4的库函数不够完 ...

STC8A8K64D4的库函数也是有的,在"STC8A_Switch.h"头文件里


用法参考如下:


可以将PWM切换到P2,P1,或者P6口上:


darryman 发表于 2023-10-12 14:13:17

乘风飞扬 发表于 2023-10-12 13:49
STC8A8K64D4的库函数也是有的,在"STC8A_Switch.h"头文件里




好的,非常感谢。

qhshen 发表于 2023-10-23 21:44:37

STC8A8K64D4 我设置了PWM15_PWM6_SW(PWM15_SW_P6);      
切换PWM的6通道通过P6的引脚输出,但是P6.6没输出,还是P2.6在输出,
这句话貌似配置了并没用

//附上PWM的初始化函数

void PWM15bit_init(void)
{
      PWM15_InitTypeDef                PWM15_InitStructure;


      PWM15_InitStructure.PWM_Enable    = ENABLE;                //PWM使能,ENABLE,DISABLE
      PWM15_InitStructure.PWM_Period    = 0x1000;                //PWM周期,0~0x7fff
      PWM15_InitStructure.PWM_Clock_Sel = PWM_CLK_SYS;                //时钟源选择,PWM_CLK_SYS, PWM_CLK_TM2
      PWM15_InitStructure.PWM_Clock_PS= 15;                              //系统时钟分频参数(PS+1分频),0~15
      PWM15_InitStructure.PWM_CInt      = DISABLE;      //计数器归零中断使能,ENABLE, DISABLE
      PWM15_InitStructure.PWM_Counter   = ENABLE;                //计数器使能,ENABLE, DISABLE
      PWM15_Init(&PWM15_InitStructure);
      
      PWM15Duty(PWM15_6,0x0000,0x0400);                //PWM_ID, 输出低电平位置, 输出高电平位置
      PWMChannelCtrl(PWM15_6,ENABLE,0,DISABLE,DISABLE,DISABLE);      //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
   
}


qhshen 发表于 2023-10-23 21:44:53

qhshen 发表于 2023-10-23 21:44
STC8A8K64D4 我设置了PWM15_PWM6_SW(PWM15_SW_P6);        切换PWM的6通道通过P6的引脚输出,但是P6.6没输出,还是 ...

求大佬解答

guoyvv 发表于 2024-6-12 14:57:35

求解答, 急急急

梁工 发表于 2024-6-12 16:42:55

请测试、参考我的程序:

请先别修改程序, 直接下载PWM.hex文件测试.
P2口输出8路PWM测试程序, 每路PWM周期都是10KHz@24MHZ, 用户可以按组来修改周期.
PWM0~PWM7分别从P6.0~P6.7输出, P6.0占空比不断变化, P6.1占空比20%, P6.2占空比30%, P6.3占空比40%, P6.4占空比50%, P6.5占空比60%, P6.6占空比70%, P6.7占空比80%.






guoyvv 发表于 2024-6-12 19:48:58

谢谢
页: [1] 2
查看完整版本: STC8A_PWM15bit.c库函数疑问