嵌入式之路 发表于 2024-5-27 00:09:31

字都打错了。。。。 冲哥的名字

vb2002 发表于 2024-5-27 01:14:12

看冲哥的pwm,讲的很好,可是我听得迷迷糊糊
后面自己找官方的pwm,试了一下最简单的 6位pwm,弄了两个小时点不亮
各种排查原因,后面找到原因了,管方给的是 pwm0口,,我的管脚是p33,改了就亮了

vb2002 发表于 2024-5-27 01:16:17

现在又出了一个新问题,我改变那两个更改占空比的数值,并不能改变亮度,查了很多资料,都是不行
用的 6位pwm,明天贴代码让大家帮看看。好困,睡觉了

vb2002 发表于 2024-5-27 08:59:56

手册说调整这两个可以设置占空比,可以是我怎么调整都没有变化。我想让亮度设置成1%亮度,怎么调整呢?
    CCAP1L=0x00; // PCA通道1的捕获/比较值低位
    CCAP1H=0x20; // PCA通道1的捕获/比较值高位


#include "intrins.h"
#include <STC8G.H>

void main()
{
    // ... 其他端口初始化代码 ...
      P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
    P5M0 = 0x00; P5M1 = 0x00;
    P6M0 = 0x00; P6M1 = 0x00;
    P7M0 = 0x00; P7M1 = 0x00;

       
       
    // PCA初始化
    CCON=0x00; // 清除PCA控制寄存器
    CMOD=0x08; // PCA计数模式配置(例如,定时器模式)
    CL=0x00;   // PCA计数器低位
    CH=0x00;   // PCA计数器高位

    // 配置PCA通道1为PWM模式,并启用中断(如果需要)
    CCAPM1=0x42; // 设置PCA通道1为PWM模式,并启用中断(如果需要)
    PCA_PWM1=0x40; // 设置PCA通道1的PWM输出为高有效

    // 设置PCA通道1的捕获/比较寄存器,用于定义PWM的占空比
    // 这里需要根据实际情况调整CCAP1L和CCAP1H的值
    CCAP1L=0x00; // PCA通道1的捕获/比较值低位
    CCAP1H=0x20; // PCA通道1的捕获/比较值高位

    // 启动PCA
    CR=1;

    // ... 如果需要其他功能或配置,可以在这里添加 ...

    while (1)
    {
      // 可以在这里添加PWM占空比或其他设置的动态更改
    }
}

vb2002 发表于 2024-5-27 09:07:33

    CCAP1L=0xE8; // PCA通道1的捕获/比较值低位
    CCAP1H=0x03; // PCA通道1的捕获/比较值高位

这样设置,亮度已经是最低了,基本就是1%的亮度了
这个0xe8和0x03
要通过pca计算,慢慢研究

vb2002 发表于 2024-5-27 23:53:09

每天都有学习的哦,虽然进度慢点,各种一步一步来
今天有复习了一下 按键点灯,模块化Delay_ms(200)
按键检测,按键松手
虽然会用了,但是不是那么熟练

vb2002 发表于 2024-5-27 23:54:26

今天喝酒喝多了点。
先睡觉了。希望明天能够继续保持热爱不减!!!
热爱不减,学习不断!!!!!!
PS:半夜睡不着也会起来看看论坛学习学习的!
每天进步一小点

vb2002 发表于 2024-5-28 12:05:42

一个一个寄存器查询数据手册
并且注释下来
增强记忆力
不要怕麻烦。慢慢记。以后碰到了就懂了

vb2002 发表于 2024-5-28 20:04:04

今日学习,
将void main里面的主函数
可以配置到.h里面区
用void auto_Init();重新定义,
可以让主页面保持清爽。不乱
也可以模块化

vb2002 发表于 2024-5-30 11:36:50

PWMCFG01
这个是不是增强型PWM特有的指令哦
我见手册上面写的是增强型
但是在8g1k的范例里面呼吸灯也有这个指令
页: 1 2 3 4 [5] 6
查看完整版本: 换老师了。跟着冲哥学单片机!!!