找回密码
 立即注册
查看: 372|回复: 7

咨询pwma编码器p2口设置脉冲数的程序

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-03 08:37:21

2

主题

6

回帖

32

积分

新手上路

积分
32
发表于 2024-7-3 08:55:28 来自手机 | 显示全部楼层 |阅读模式
pwma相关库函数中,有个pwma编码器p2口设置脉冲数的程序,我修改了用p1口,但是计数的设置脉冲数中断没有反应,@梁工,@陈工,能否指点一下
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-03 08:37:21

2

主题

6

回帖

32

积分

新手上路

积分
32
发表于 2024-7-3 08:57:57 | 显示全部楼层
void PWMA_config(void)
{
        u8        ps;

        P_SW2 |= 0x80;                //SFR enable   
        P2M1 = 0x00;
        P2M0 = 0x00;

        PWMA_PSCR = 0;        // Ô¤·ÖƵ¼Ä´æÆ÷, ·ÖƵ Fck_cnt = Fck_psc/(PSCR[15:0]+1), ±ßÑØ¶ÔÆëPWMƵÂÊ = SYSclk/((PSCR+1)*(AAR+1)), ÖÐÑë¶ÔÆëPWMƵÂÊ = SYSclk/((PSCR+1)*(AAR+1)*2).
        PWMA_DTR  = 0;        // ËÀÇøÊ±¼äÅäÖÃ, n=0~127: DTR= n T,   0x80 ~(0x80+n), n=0~63: DTR=(64+n)*2T,  
                                        //                                0xc0 ~(0xc0+n), n=0~31: DTR=(32+n)*8T,   0xE0 ~(0xE0+n), n=0~31: DTR=(32+n)*16T,
        PWMA_ARR    = 0xffff;        // ×Ô¶¯ÖØ×°ÔؼĴæÆ÷,  ¿ØÖÆPWMÖÜÆÚ
        PWMA_CNTR         = 0;                //ÇåÁã±àÂëÆ÷¼ÆÊýÆ÷Öµ
        PWMA_SR1    = 0;
        PWMA_SR2    = 0;
        PWMA_PS     = 0;
        PWMA_ENO    = 0;                //IO½ûÖ¹Êä³öPWM,  bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P,  bit3: ENO2N,  bit2: ENO2P,  bit1: ENO1N,  bit0: ENO1P
        ps    = 0;
        PWMA_ISR_En = 0;

        PWMA_CCMR1  = 0x01+(10<<4);        // ͨµÀ1ģʽÅäÖÃ, ÅäÖóÉÊäÈëͨµÀ, 0~15¶ÔÓ¦ÊäÈëÂ˲¨Ê±ÖÓÊý: 1 2 4 8 12 16 24 32 48 64 80 96 128 160 192 256
        PWMA_CCMR2  = 0x01+(10<<4);        // ͨµÀ2ģʽÅäÖÃ, ÅäÖóÉÊäÈëͨµÀ, 0~15¶ÔÓ¦ÊäÈëÂ˲¨Ê±ÖÓÊý: 1 2 4 8 12 16 24 32 48 64 80 96 128 160 192 256
        PWMA_SMCR   = 2;                        // ±àÂëÆ÷ģʽ, ģʽ1»òģʽ2: ÿ¸öÂö³åÁ½¸ö±ßÑØ¼Ó¼õ2.   Ä£Ê½3: ÿ¸öÂö³åËĸö±ßÑØ¼Ó¼õ4.
        PWMA_CCER1  = 0x55;                        // ÅäÖÃͨµÀÊäÈëʹÄܺͼ«ÐÔ, ÔÊÐíÊäÈë, ϽµÑØ
        ps    |= 0;                                        // Ñ¡ÔñIO, 0:Ñ¡ÔñP1.0 P1.1, 1:Ñ¡ÔñP2.0 P2.1, 2:Ñ¡ÔñP6.0 P6.1,
        ps    |= (0<<2);                        // Ñ¡ÔñIO, 0:Ñ¡ÔñP1.2 P1.3, 1:Ñ¡ÔñP2.2 P2.3, 2:Ñ¡ÔñP6.2 P6.3,
        PWMA_ISR_En|= 0x02;                        // ʹÄÜÖжÏ

        PWMA_CCR3  = 100;                        // ¼ÆÊýÆ÷±È½ÏÖµ(ÉèÖÃÒ»¸öÂö³åÊý), Æ¥Åäʱ¿Ì
        PWMA_CCMR3  = (3<<4);                // ͨµÀ1ģʽÅäÖÃ, ½ûÖ¹Ô¤×°ÔØ. 0: ÎÞÊä³ö, 1:Æ¥ÅäʱÊä³ö¸ß, 2:Æ¥ÅäʱÊä³öµÍ, 3:Æ¥ÅäʱÊä³ö·­×ª.
        PWMA_CCER2  = 0x01;                        // ²¶»ñ/±È½ÏʹÄܼĴæÆ÷2
  PWMA_PS     = ps;                        // Ñ¡ÔñIO
        PWMA_ISR_En|= 0x08;                        // ʹÄÜÖжÏ

       
        PWMA_IER    = PWMA_ISR_En;        //ÉèÖÃÔÊÐíͨµÀ1~4Öжϴ¦Àí
        PWMA_CR1    = 0x01;                        // ʹÄܼÆÊýÆ÷, ÔÊÐí×Ô¶¯ÖØ×°ÔؼĴæÆ÷»º³å, ±ßÑØ¶ÔÆëģʽ, ÏòÉϼÆÊý,  bit7=1:д×Ô¶¯ÖØ×°ÔؼĴæÆ÷»º³å(±¾ÖÜÆÚ²»»á±»´òÈÅ), =0:Ö±½Óд×Ô¶¯ÖØ×°ÔؼĴæÆ÷±¾(ÖÜÆÚ¿ÉÄÜ»áÂÒµô)
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-03 08:37:21

2

主题

6

回帖

32

积分

新手上路

积分
32
发表于 2024-7-3 08:58:46 | 显示全部楼层
yangt*** 发表于 2024-7-3 08:57
void PWMA_config(void)
{
        u8        ps;

这个是pwm的初始化程序,用的p1口
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2024-7-3 09:20:15 | 显示全部楼层
从P2通道改到P1通道只要修改PWMx_PS寄存器
截图202407030918512783.jpg
原先P2通道的功能测试正常后只修改PWMx_PS寄存器,其它不用改。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-03 08:37:21

2

主题

6

回帖

32

积分

新手上路

积分
32
发表于 2024-7-3 09:58:44 | 显示全部楼层
乘风*** 发表于 2024-7-3 09:20
从P2通道改到P1通道只要修改PWMx_PS寄存器

原先P2通道的功能测试正常后只修改PWMx_PS寄存器,其它不用改。 ...

b604c4cc-f54b-4901-91d0-ad3b37781e2f.png

是只改了io的配置,转动编码器 cb4b2b15-a93d-4d8d-8db3-73826429eca5.png 有数据出来这是正常的,我遇到的问题是设置脉冲数的这个一直搞不定,        串口怎么转都收不到这个if(B_OK)


                {
                        B_OK = 0;
                        PrintString1("设置脉冲数到!\r\n");
                }

点评

转到100也收不到吗?  详情 回复 发表于 2024-7-3 13:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2024-7-3 13:40:06 | 显示全部楼层
本帖最后由 STCAI-32位8051 于 2024-7-3 13:41 编辑

先看看范例程序以及下面的技术贴会不会有帮助

【新提醒】STC32G-高级PWM范例程序下载 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区  https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1778

A1-STC32G高级PWM1-PWM2-PWM3-PWM4输出测试程序.zip

31.48 KB, 下载次数: 59

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-7-3 13:47:17 | 显示全部楼层
yangt*** 发表于 2024-7-3 09:58
是只改了io的配置,转动编码器有数据出来这是正常的,我遇到的问题是设置脉冲数的这个一直搞不定,        串 ...

转到100也收不到吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-03 08:37:21

2

主题

6

回帖

32

积分

新手上路

积分
32
发表于 2024-7-3 14:00:29 来自手机 | 显示全部楼层
可以了,100的时候要转慢点,就能收到了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-4 10:19 , Processed in 0.126961 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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