找回密码
 立即注册
楼主: mcxhoten

pwm占空比

[复制链接]
已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-27 11:03:50 来自手机 | 显示全部楼层
DebugLab 发表于 2025-2-27 10:54
那还是程序逻辑问题,硬件是正常的

好的感谢
回复 支持 反对

使用道具 举报 送花

已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-27 11:04:57 来自手机 | 显示全部楼层
DebugLab 发表于 2025-2-27 10:54
那还是程序逻辑问题,硬件是正常的

那您看一下我刚发的程序逻辑有问题吗可以这么配置吗

点评

可能是反复初始化造成的 我不太熟悉库函数,不知道库函数内是如何调用结构体的 修改占空比直接修改PWMx_CCRxx寄存器即可,不要做其他操作 [attachimg]86160[/attachimg] [attachimg]86161[/attachimg] [attachimg  详情 回复 发表于 2025-2-27 11:30
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-2-27 11:30:14 | 显示全部楼层
mcxh*** 发表于 2025-2-27 11:04
那您看一下我刚发的程序逻辑有问题吗可以这么配置吗


可能是反复初始化造成的
我不太熟悉库函数,不知道库函数内是如何调用结构体的
修改占空比直接修改PWMx_CCRxx寄存器即可,不要做其他操作
截图202502271118055226.jpg

截图202502271128081583.jpg

截图202502271128304915.jpg

截图202502271128529527.jpg

截图202502271129041296.jpg


DebugLab
回复 支持 反对

使用道具 举报 送花

已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-27 11:46:21 来自手机 | 显示全部楼层
DebugLab 发表于 2025-2-27 11:30
可能是反复初始化造成的
我不太熟悉库函数,不知道库函数内是如何调用结构体的
修改占空比直接修改PWMx_ ...

那您看我上面修改的直接单独设置一个修改占空比的函数那样子调用可以吗只修改一个占空比初始化只调用一次

点评

只设置PWMx_CCRxx寄存器即可,不要做其他操作 实际效果用示波器测量检查一下  详情 回复 发表于 2025-2-27 11:55
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-2-27 11:55:32 | 显示全部楼层
mcxh*** 发表于 2025-2-27 11:46
那您看我上面修改的直接单独设置一个修改占空比的函数那样子调用可以吗只修改一个占空比初始化只调用一次 ...

只设置PWMx_CCRxx寄存器即可,不要做其他操作
实际效果用示波器测量检查一下

点评

给个:STC8H3K32S2@24Mhz/3.3V, P20管脚输出, 1kHz, 53%占空比的程序 波形也给出来: 外部负载:1,浮空;2,3.3K下拉;3,3.3K上拉 用 STC8H8K64U来做演示也行  详情 回复 发表于 2025-2-27 13:25
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2025-2-27 13:25:07 | 显示全部楼层
Debu*** 发表于 2025-2-27 11:55
只设置PWMx_CCRxx寄存器即可,不要做其他操作
实际效果用示波器测量检查一下 ...

给个:STC8H3K32S2@24Mhz/3.3V,   P20管脚输出, 1kHz,  53%占空比的程序
波形也给出来:
外部负载:1,浮空;2,3.3K下拉;3,3.3K上拉

用 STC8H8K64U来做演示也行
回复 支持 反对

使用道具 举报 送花

已绑定手机

7

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2025-2-27 13:28:03 | 显示全部楼层
神*** 发表于 2025-2-27 13:25
给个:STC8H3K32S2@24Mhz/3.3V,   P20管脚输出, 1kHz,  53%占空比的程序
波形也给出来:
外部负载:1, ...

可以直接这么配吗
09f972a6-88bb-4f39-8a97-94fd7f4f1ff0.png

点评

可以  详情 回复 发表于 2025-2-27 15:48
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2025-05-01 08:54:26
已绑定手机

0

主题

36

回帖

238

积分

中级会员

积分
238
发表于 2025-2-27 15:23:35 | 显示全部楼层
控制变量才好测试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-2-27 15:41:40 | 显示全部楼层

  1. #include <AI8H.H>
  2. #include <intrins.h>
  3. #include <absacc.h>
  4. #include <string.h>
  5. #include <stdarg.h>
  6. #include <stdio.h>
  7. #include <math.h>
  8.        
  9. #define                FOSC                        24000000UL                                        //主时钟
  10. void Delay_ms(unsigned char ms)
  11. {
  12.         unsigned int i;
  13.         do
  14.         {
  15.                 i=FOSC/10000;
  16.                 while(--i);        //10T per loop
  17.         }
  18.         while(--ms);
  19. }
  20. void Init(void)
  21. {
  22.         P_SW2|=EAXFR;
  23.        
  24.         P0M1=0x00;        P0M0=0x00;        //设置IO模式
  25.         P1M1=0x00;        P1M0=0x00;        //设置IO模式
  26.         P2M1=0x00;        P2M0=0x00;        //设置IO模式
  27.         P3M1=0x03;        P3M0=0x00;        //设置IO模式
  28.         P4M1=0x00;        P4M0=0x00;        //设置IO模式
  29.         P5M1=0x00;        P5M0=0x00;        //设置IO模式
  30.         P6M1=0x00;        P6M0=0x00;        //设置IO模式
  31.         P7M1=0x00;        P7M0=0x00;        //设置IO模式
  32.        
  33.         PWMA_PS=0x00;                //高级 PWM 通道输出脚选择位
  34.         PWMA_PS|=0x01;                //选择 PWM1_2 通道
  35.        
  36.         PWMA_CCER1 = 0x00;        //写 CCMRx 前必须先清零 CCxE 关闭通道
  37.         PWMA_CCMR1 = 0x60;        //通道模式配置
  38.         PWMA_CCER1 = 0x01;        //配置通道输出使能和极性
  39.        
  40.         PWMA_ARRH=(unsigned char)(24000>>8); //设置周期时间
  41.         PWMA_ARRL=(unsigned char)24000;
  42.        
  43.         PWMA_ENO=0x00;
  44.         PWMA_ENO|=0x01;                //使能输出
  45.        
  46.         PWMA_BKR=0x80;                //使能主输出
  47.         PWMA_CR1|=0x01;                //开始计时
  48.        
  49.         EA=1;                                //启用总中断
  50. }
  51. void main(void)
  52. {
  53.         unsigned int duty;
  54.         duty=12720;
  55.         Init();
  56.         PWMA_CCR1H = (unsigned char)(duty >> 8); //设置占空比时间
  57.         PWMA_CCR1L = (unsigned char)(duty);
  58.         while(1)
  59.         {
  60.                
  61.         }
  62. }
复制代码


微信图片_20250227153753.jpg
AI8H8K64U_PWM.zip (7.86 KB, 下载次数: 9)

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2025-2-27 15:48:33 | 显示全部楼层
mcxh*** 发表于 2025-2-27 13:28
可以直接这么配吗

可以
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 04:14 , Processed in 0.267566 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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