找回密码
 立即注册
查看: 26|回复: 5

aicube该怎么设置正交编码器模式?stc8h8k64u

[复制链接]
已绑定手机

2

主题

5

回帖

24

积分

新手上路

积分
24
发表于 昨天 19:09 | 显示全部楼层 |阅读模式
aicube该怎么设置正交编码器模式?  里面也没看到中断选项
捕获.PNG
怎么才能和手册里面的 使用高级pwm实现编码器演示例程对应上?
回复

使用道具 举报 送花

已绑定手机

2

主题

5

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 昨天 19:18 | 显示全部楼层
自动生成的程序 貌似也没有配置arr的值   都要手动添加对吧
void PWMB_Init(void)
{
    PWMB_C5SwitchP17();                 //设置PWMB通道5数据端口: PWM5 (P1.7)
    PWMB_C6SwitchP54();                 //设置PWMB通道6数据端口: PWM6 (P5.4)

    PWMB_SetCounter(0);                 //初始化计数值
    PWMB_SetClockDivider(0);            //设置16位预分频
    PWMB_EncoderMode3();                //设置编码器的计数模式为模式3

    PWMB_CC5PDisable();                 //关闭通道

    PWMB_CC6PDisable();                 //关闭通道

    PWMB_Run();                         //PWMB开始运行

    //<<AICUBE_USER_PWM1_INITIAL_BEGIN>>
    // 在此添加用户初始化代码  
    //<<AICUBE_USER_PWM1_INITIAL_END>>
}
回复

使用道具 举报 送花

已绑定手机

309

主题

591

回帖

2991

积分

金牌会员

积分
2991
发表于 昨天 19:39 | 显示全部楼层
root*** 发表于 2026-11-11 19:18
自动生成的程序 貌似也没有配置arr的值   都要手动添加对吧
void PWMB_Init(void)
{

用过几次,很不好用,我都是手动配的
回复

使用道具 举报 送花

已绑定手机

2

主题

5

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 昨天 20:05 | 显示全部楼层
QQ6243*** 发表于 2026-11-11 19:39
用过几次,很不好用,我都是手动配的

每一条都要去def里看宏定义  有点麻烦
回复

使用道具 举报 送花

已绑定手机

2

主题

5

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 昨天 20:07 | 显示全部楼层
void PWMB_Init(void)
{
    PWMB_C5SwitchP17();                 //设置PWMB通道5数据端口: PWM5 (P1.7)
    PWMB_C6SwitchP54();                 //设置PWMB通道6数据端口: PWM6 (P5.4)

        PWMA_SetReload16(0xffff);              //设置16位重载值
    PWMB_SetCounter(0);                 //初始化计数值
    PWMB_SetClockDivider(0);            //设置16位预分频
    PWMB_EncoderMode3();                //设置编码器的计数模式为模式3
               
    PWMB_CC5PDisable();                 //关闭通道
    PWMB_CC5CaptureTI5FP5();            //使能通道捕获功能
    PWMB_CC5PEnable();                  //打开通道
    PWMB_CC5PNonInverted();             //设置通道输入极性为上升沿
    PWMB_IC5Divider1();                 //设置输入捕获信号的预分频
    PWMB_IC5Filter64();                 //设置输入捕获信号的滤波器

    PWMB_CC6PDisable();                 //关闭通道
    PWMB_CC6CaptureTI6FP6();            //使能通道捕获功能
    PWMB_CC6PEnable();                  //打开通道
    PWMB_CC6PNonInverted();             //设置通道输入极性为上升沿
    PWMB_IC6Divider1();                 //设置输入捕获信号的预分频
    PWMB_IC6Filter64();                 //设置输入捕获信号的滤波器

    PWMB_Run();                         //PWMB开始运行


手动加上重载值设置
回复

使用道具 举报 送花

已绑定手机

309

主题

591

回帖

2991

积分

金牌会员

积分
2991
发表于 昨天 21:18 | 显示全部楼层
root*** 发表于 2026-11-11 20:07
void PWMB_Init(void)
{
    PWMB_C5SwitchP17();                 //设置PWMB通道5数据端口: PWM5 (P1.7)

截图202611112116175727.jpg


我手动配的,你这样调用库浪费ROM,一个寄存器反复去&和|运算,我每个寄存器初始化只赋一次值
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-12 07:31 , Processed in 0.074437 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表