标题:
新手求问单片机+SPWM相关问题
[打印本页]
作者:
STARTJACK
时间:
2019-1-28 20:19
标题:
新手求问单片机+SPWM相关问题
看了51hei论坛上通过SPWM等面积算法来获得SPWM的帖子
帖子链接:
http://www.51hei.com/bbs/dpj-100884-1.html
按照帖主的说法,只要在中断的时侯更改定时器初值就可以实现。
可是我得出来的波形却是占空比固定的方波
单片机程序如下:
#include < reg52.h >
unsigned char code x[]={556, 315, 829, 883, 348, 1276, 82, 1416, 82, 1276, 348, 883, 829, 315};
unsigned int i = 0 ;
sbit L1 = P1^0;
void init()
{
TMOD = 0X01;
TH0 = (65536-x[i])/256;
TL0 = (65536-x[i])%256;
EA = 1;
ET0 = 1;
TR0 = 1;
L1 = 1;
}
void main()
{
init();
while(1);
}
void timer0() interrupt 1
{
L1 = ~L1;
if (i >= 13)
i = 0;
else
i++;
TH0 = (65536-x[i])/256;
TL0 = (65536-x[i])%256;
}
复制代码
各位大神帮我看看问题在哪
作者:
wulin
时间:
2019-1-29 17:49
数组的数据类型定义错误,unsigned char型最大255!!!
unsigned char code x[]={556, 315, 829, 883, 348, 1276, 82, 1416, 82, 1276, 348, 883, 829, 315};//错误
unsigned int code x[]={556, 315, 829, 883, 348, 1276, 82, 1416, 82, 1276, 348, 883, 829, 315};//正确
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1