嵌入式之路
发表于 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的范例里面呼吸灯也有这个指令