TA的每日心情 | 开心 昨天 20:44 |
---|
签到天数: 88 天 [LV.6]常住居民II
中级会员
- 积分
- 284
|
#include "COMM/STC32G.h"
#include "COMM/usb.h"
#include "sys_init.h"
#include "pwm1.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
char *USER_DEVICEDESC=NULL;
char *USER_PRODUCTDESC=NULL;
char *USER_STCISPCMD="@STCISP#";
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
//u16 a;
//void Timer0_Init(void) //1毫秒@24.000MHz
//{
// AUXR &= 0x7F; //定时器时钟12T模式
// TMOD &= 0xF0; //设置定时器模式
// TL0 = 0x30; //设置定时初始值
// TH0 = 0xF8; //设置定时初始值
// TF0 = 0; //清除TF0标志
// TR0 = 1; //定时器0开始计时
// ET0 = 1; //使能定时器0中断
//}
void main()
{
long pwm=0;
long a=0;
// Timer0_Init();
sys_init();
usb_init();
EA=1;
P2M0=0X00;
P2M1=0X00;
// P3M0=0X00;
// P3M1=0X00;
PWMA_Init();
while(1)
{
PWMA1_Set(pwm);
delay_ms(2);
if(DeviceState !=DEVSTATE_CONFIGURED)
continue;
if(bUsbOutReady)
{
a=atoi(UsbOutBuffer);
if(a>0)
{
pwm=pwm+100;
}
else if(a<0)
{
pwm=pwm-100;
}
else if(a==0)
pwm=0;
printf("PWM比较值:%d\r\n",pwm);
usb_OUT_done();
memset(UsbOutBuffer,0,OutNumber);
}
if(P32==0)
{
delay_ms(5);
if(P32==0)
{
pwm=pwm+500;
while(P32==0);
}
}
if(P33==0)
{
delay_ms(5);
if(P33==0)
{
pwm=pwm-500;
while(P33==0);
}
}
if(P34==0)
{
delay_ms(5);
if(P34==0)
{
pwm=0;
while(P34==0);
}
}
printf("PWM比较值:%d\r\n",pwm);
}
}
现在问题是加到32767或减到-32768打印出来的PWM数值就会翻转,正的变负,负的变正
|
|