ningsy 发表于 2022-10-20 08:31 所以说,要看手册,要看手册,要看手册!!! 重要的事情说三遍。 你到现在还是“应该”,有就有,没有就没有,应该算什么? 手册中增强型PWM的第一页就明确表示了哪些型号有这个功能。内容是不是恐怖我们撇开不说,你但凡翻过手册,就不会出现“应该”两字。 ![]() |
wpppmlah 发表于 2022-10-19 16:35 感谢回复!后来换成1K电阻,灯也亮了。主要原因应该是我这个型号的MCU没有“增强型PMW”功能,而我烧入了“增强型PMW”的代码。 |
Y_G_G 发表于 2022-10-19 22:22 感谢建议!那个数据手册真的很恐怖~ 在论坛里翻出另一个大佬的代码,就是在您代码基础上加个定时器,已经有脉冲输出了。 没有示波器,现在只能看闪灯~ |
ningsy 发表于 2022-10-19 18:36 看数据手册呀 这个PWM是有一个寄存器是决定了频率的 数据手册有点恐怖,但认真看,再写几个验证一下就能理解了 STC几乎所有的PWM数据手册都是乱乱的一团......... |
直接烧写STC的例程里的HEX测试即可。 |
串接的电阻阻值太大了,可以串接500欧左右的电阻,官方代码一般直接烧写以后都能正常使用....... |
c初始化PCA CR=1; |
这个是我自己用的一个PWM控制LED灯的程序 没有呼吸灯的效果,但是,是有PWM效果的,你参考一下,我手上没有这个单片机了,没有办法验证你的代码 PWM端口为P3.3 void stc8g_pwm1_init()//stc8g_pwm初始化 { CCON=0x00; //先关闭PCA计数器 CMOD=0x80; //pwm时钟为系统时钟/12,空闲模式下停止PCA计数 CCAPM1=0x42; //PWM模式,无中断 CL=0x00; // CH=0x00; // PCA_PWM1=0x00; //输出为8位PWM CCAP1L=100; //比较值,当CL的值小于CCAP1L时,输出低电平 CCAP1H=254; //重载值,CCAP1L=CCAP1H P_SW1=0x00; CR=1; } 更改占空比 CCAP1H=64; //75%占空比 CCAP1H=115; //55%占空比 CCAP1H=180; //30%占空比 首先,你要能输出PWM,这才是最重要的,能输出PWM了,呼吸灯就相对简单了,更改几次占空比,对比一下LED的亮度,就知道能不能输出PWM了 不需要什么其它工具的 |