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

我定时器生成的pwm有波纹怎么回事

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-8-17 12:24:22 | 显示全部楼层
wnag*** 发表于 2024-8-17 10:54
软件PWM和硬件PWM的区别:
软件PWM:IO口推挽要程序设置
                定时器中断需要自己写

...可能是,,我没设置IO口
   因为之前一直用的硬件pwm ..硬件pwm自动设置推挽的
我等会试试推挽看看
回复 支持 反对

使用道具 举报 送花

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

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-17 12:24:26 | 显示全部楼层
vb2*** 发表于 2024-8-17 12:23
打错字了..黑色的条纹.

定时器做的PWM有黑色的条纹
不能理解
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-8-17 12:24:47 | 显示全部楼层
网*** 发表于 2024-8-17 11:20
任何PWM转模拟信号都会有纹波,只是纹波大小跟后面滤波器特性和负载有关,
要看下实际电路和"嘿嘿的纹波"样子 ...

就是一条条的波纹
我贴到后面

点评

是示波器显示的图像?  详情 回复 发表于 2024-8-17 12:27
回复 支持 反对

使用道具 举报 送花

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

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-17 12:27:14 | 显示全部楼层
vb2*** 发表于 2024-8-17 12:24
就是一条条的波纹
我贴到后面

是示波器显示的图像?
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-8-17 12:30:33 | 显示全部楼层
wnag*** 发表于 2024-8-17 12:27
快上图!!!!!!!!!!!!!!!!!
  1. #include <STC8H.H>
  2. #include "intrins.h"
  3. #include "stdio.h"
  4. #define MAIN_Fosc 11059200UL
  5. //#define IAP_OFFSET      0x2000                  //STC8G1K08
  6. sbit LED=P1^1;
  7. unsigned char Counter,Compare;
  8. unsigned char KeyNum,Speed;
  9. unsigned char dat;
  10. void Timer2_Init(void);
  11. unsigned char Key();
  12. void Delay(unsigned int xms)        //@11.0592MHz
  13. {
  14.         unsigned char data i, j;
  15.         while(xms)
  16.         {
  17.         i = 15;
  18.         j = 90;
  19.         do
  20.         {
  21.                 while (--j);
  22.         } while (--i);
  23.         xms--;
  24. }}
  25. void main()
  26. {
  27.          
  28.     P1M0 = 0x00; P1M1 = 0x00;
  29.     P3M0 = 0x00; P3M1 = 0x00;
  30.     P5M0 = 0x00; P5M1 = 0x00;
  31.         EA=1;
  32.        
  33.        
  34.                 Timer2_Init();
  35.         while(1)
  36.         {       
  37.          KeyNum=Key();
  38.                 if(KeyNum==1)
  39.                 {
  40.                 Speed++;
  41.                 Speed%=4;
  42.                         if(Speed==0){Compare=0;}
  43.                         Delay(20);
  44.                         if(Speed==1){Compare=15;}
  45.                         Delay(20);
  46.                         if(Speed==2){Compare=35;}
  47.                         Delay(20);
  48.                         if(Speed==3){Compare=66;}
  49.                         Delay(20);
  50. //                        if(Speed==4){Compare=20;}
  51. //                        if(Speed==5){Compare=1;}
  52.                 }
  53.                
  54.                
  55.         }
  56. }
  57. void Timer2_Init(void)                //10微秒@11.0592MHz
  58. {
  59.         AUXR |= 0x04;                        //定时器时钟1T模式
  60.         T2L = 0x91;                                //设置定时初始值
  61.         T2H = 0xFF;                                //设置定时初始值
  62.         AUXR |= 0x10;                        //定时器2开始计时
  63.         IE2 |= 0x04;                        //使能定时器2中断
  64. }
  65. unsigned char Key()
  66. {
  67.   unsigned char KeyNumber=0;
  68.        
  69.         if(P32==0){Delay(20);while(P32==0);Delay(20);KeyNumber=1;}
  70.        
  71.         return KeyNumber;
  72. }
  73. void Timer2_Isr(void) interrupt 12
  74. {
  75.   
  76.        
  77.       Counter++;
  78.         Counter%=150;
  79.         if(Counter<Compare)
  80.         {
  81.         LED=0;
  82.         }
  83.         else
  84.         {
  85.         LED=1;
  86.         }
  87. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-8-17 12:30:59 | 显示全部楼层
wnag*** 发表于 2024-8-17 12:27
快上图!!!!!!!!!!!!!!!!!

发了.在帖子前面
改了推挽也有.
又换回来了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-8-17 12:31:41 | 显示全部楼层
本帖最后由 Debu*** 于 2024-8-18 18:34 编辑
DebugLab 发表于 2024-8-17 12:27
是示波器显示的图像?

手机拍的.
用15那个实例里面的16位定时器pwm没有

点评

哦LED呀,这是和相机帧率之间存在某种关系导致的  详情 回复 发表于 2024-8-17 12:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:351
  • 最近打卡:2025-05-02 00:50:51
已绑定手机

130

主题

1520

回帖

1859

积分

金牌会员

积分
1859
发表于 2024-8-17 12:32:27 | 显示全部楼层
晓*** 发表于 2024-8-17 11:25
“嘿嘿的纹波”是偶发的还是一直有,大概的频率和峰峰值分别有多少,看看是从代码消除还是后级加滤波 ...

只要用定时器生成pwm就有
  直接用pwm没有

点评

提高PWM频率可以解决  详情 回复 发表于 2024-8-17 12:35
回复 支持 反对

使用道具 举报 送花

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

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-17 12:33:26 | 显示全部楼层
vb2*** 发表于 2024-8-17 12:31
手机拍的.
用 stc15 那个实例里面的16位定时器pwm没有

哦LED呀,这是和相机帧率之间存在某种关系导致的

点评

而且相机是卷帘快门,不是全局快门  详情 回复 发表于 2024-8-17 12:33
DebugLab
回复 支持 反对

使用道具 举报 送花

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

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-17 12:33:59 | 显示全部楼层
Debu*** 发表于 2024-8-17 12:33
哦LED呀,这是和相机帧率之间存在某种关系导致的

而且相机是卷帘快门,不是全局快门
DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:23 , Processed in 0.126123 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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