注册会员
- 积分
- 19
- 威望
- 14
- 贡献
- 5
- 兑换币
- 4
- 注册时间
- 2012-12-20
- 在线时间
- 0 小时
- 毕业学校
- 中国矿业大学
|
1贡献
//头文件包含
#include "Includes.h" //总头文件
#define rightspeed 1675
#define leftspeed 1300
#define you_leftturn 1700
#define zuo_leftturn 1700
#define you_rightturn 1300
#define zuo_rightturn 1300
//uint8 msg[14] = "Hello! World!";
uint8 PA0,PA1,PA2,PA3,PA4,PA5;
void PWM_Init(void) //PWM通道初始化
{
PWME_PWME3=0x00; // Disable PWM 禁止
PWMCTL_CON23=1; //PWM通道2和通道3合并 通道合并
PWMPRCLK=0x33; // 0011 0011 A=B=32M/8=4M 时钟预分频寄存器设置
PWMSCLB=2; // SB=B/2/2 =1M 时钟设置
PWMCLK_PCLK3=1; // PWM3-----SB 时钟源的选择
PWMPOL_PPOL3=1; // Duty=High Time 极性设置
PWMCAE_CAE3=0; // Left-aligned 对齐方式设置
PWMPER23=20000; // Frequency=SB/20000=50HZ 周期寄存器设置
PWMDTY23=1500; // 1.5ms对应的占空比 占空比寄存器设置
PWME_PWME3=1; // Enable PWM 使能
PWME_PWME1=0x00; // Disable PWM 禁止
PWMCTL_CON01=1; //PWM通道0和通道1合并 通道合并
PWMPRCLK=0x33; // 0011 0011 A=B=32M/8=4M 时钟预分频寄存器设置
PWMSCLA=2; // SA=A/2/2=1M 时钟设置
PWMCLK_PCLK1=1; // PWM3-----SA 时钟源的选择
PWMPOL_PPOL1=1; // Duty=High Time 极性设置
PWMCAE_CAE1=0; // Left-aligned 对齐方式设置
PWMPER01=20000; // Frequency=SB/20000=50HZ 周期寄存器设置
PWMDTY01=1500; // 1.5ms对应的占空比 占空比寄存器设置
PWME_PWME1=1; // Enable PWM 使能
}
void countrun(uint16 num)
{
DisableInterrupt();
PWMDTY23=rightspeed; //位移可调前行,用于前冲一段
PWMDTY01=leftspeed;
Delay(num);
EnableInterrupt();
}
void streightrun(void)
{
PWMDTY23=rightspeed; //前进
PWMDTY01=leftspeed;
}
void lefttrunone(void)
{
DisableInterrupt();
PWMDTY23=you_leftturn; //左转45
PWMDTY01=zuo_leftturn;
Delay(2690);
EnableInterrupt();
}
void lefttruntwo(void)
{
DisableInterrupt();
PWMDTY23=you_leftturn; //左转90
PWMDTY01=zuo_leftturn;
Delay(5350);
EnableInterrupt();
}
void lefttrunthree(void)
{
DisableInterrupt();
PWMDTY23=you_leftturn; //左转135
PWMDTY01=zuo_leftturn;
Delay(8030);
EnableInterrupt();
}
void righttrunone(void)
{
DisableInterrupt();
PWMDTY23=you_rightturn; //右转45
PWMDTY01=zuo_rightturn;
Delay(2480);
EnableInterrupt();
}
void righttruntwo(void)
{
DisableInterrupt();
PWMDTY23=you_rightturn; //右转90
PWMDTY01=zuo_rightturn;
Delay(4940);
EnableInterrupt();
}
void righttrunthree(void)
{
DisableInterrupt();
PWMDTY23=you_rightturn; //右转135
PWMDTY01=zuo_rightturn;
Delay(7450);
EnableInterrupt();
}
void trunback(void)
{
DisableInterrupt();
PWMDTY23=you_leftturn; //后转
PWMDTY01=zuo_leftturn;
Delay(10700);
EnableInterrupt();
}
void stop(void)
{
DisableInterrupt(); //停止
PWMDTY23=1500;
PWMDTY01=1500;
EnableInterrupt();
}
void main()
{
//0.1 关总中断
DisableInterrupt();
//0.2 芯片初始化
MCUInit(FBUS_32M);
//0.3 模块初始化
GPIO_Init(PA,0,0,0); //端口A初始化为输入
GPIO_Init(PA,1,0,0);
GPIO_Init(PA,2,0,0);
//GPIO_Init(PA,3,0,0);
// GPIO_Init(PA,4,0,0);
//GPIO_Init(PA,5,0,0);
PITInit0(); //(1)定时器1初始化
SCIInit(0,FBUS_32M,9600); //串口0初始化
PWM_Init();
// SCISendN(0,13,msg); //发送"Hello! World!"
//0.4 开放中断
EnablePIT0; //(2)开放定时器1溢出中断
EnableInterrupt(); //开放总中断
streightrun();
while(1);
}
|
|