初级会员
- 积分
- 114
- 金钱
- 114
- 注册时间
- 2016-3-8
- 在线时间
- 17 小时
|
楼主 |
发表于 2016-3-27 13:41:05
|
显示全部楼层
#include<iom128v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint mas)
{
uint i,j;
for(i=mas;i>0;i--)
for(j=1141;j>0;j--);
}
void pwm1_init(void)
{
//DDRE|=(1<<PE5);
TCNT3H=0x00;//计数器清零
TCNT3L=0x00;
TCCR3A=0X0A;//PE5输出pwm,快速14模式,匹配时清零,PE5输出
TCCR3B=0x1a;//14模式,64分频
OCR3C=6000;//
ICR3=6000;
}
void xz( uint r)//按从0到180角度位置输出
{
OCR3C=2000+r*200/18;//2000是高电平1ms
}
uchar r=0;
void main(void)
{
PORTA=0X00;
DDRA=0X00;
PORTB=0X00;
DDRB=0X00;
PORTC=0X00;
DDRC=0X00;
PORTD=0X00;
DDRD=0X00;
PORTE=0XFF;
DDRE=0X00;
PORTF=0X00;
DDRF=0X00;
PORTG=0X00;
DDRG=0X00;
pwm1_init();
while(1)
{
xz(r);//改变角度
r++;//角度增加
delayms(5);
if(r==180)
{
delayms(1000);
while(r!=0)
{
xz(r);
r--;
delayms(5);
}
delayms(1000);
}
}
}
看一下,有问题吗 |
|