中级会员
- 积分
- 475
- 威望
- 265
- 贡献
- 192
- 兑换币
- 0
- 注册时间
- 2011-2-28
- 在线时间
- 9 小时
|
回复 12# 540708692
我的摄像头应该是还没接受过完整的程序
因为我dubug不了 插上摄像头就debug不了
只给电机转的程序
DDRB=0xff;
PWME=0x00; // Disable PWM
PWMCAE=0X00; // 对其方式
PWMCTL=0x80; // 将67通道级联
PWMPRCLK=0x33; // A=16M/16=1M 时钟预分频寄存器设置
PWMSCLA=5; // SA=A/(2*SCLA)=100k 时钟设置
PWMSCLB=1; // SB=B/(2*SCLB)=100k 时钟设置
//********************************************************
//电机驱动PWM选择 电机接在PP0,PP1
EN=0;
PWMCLK_PCLK0=1; // 时钟源的选择
PWMCLK_PCLK1=1;
PWMPOL_PPOL0=0; // 极性设置
PWMPOL_PPOL1=0;
PWMPER0=200;
L_PWM=50;
PWMPER1=200;
R_PWM=50;
//这样的PWM输出为占空比可调,0.5kHz。
//*********************************************************
//舵机驱动PWM设置 舵机接在PP7
PWMCLK_PCLK7=1;
PWMPOL_PPOL7=1;
PWMPER67=20*1000;
S_PWM=1500;
PWME_PWME7=1;
}
/**********************************************************
* speed and motor operation function
**********************************************************/
#pragma INLINE
void speedUp()
{
L_DIE_NO=0;
L_DIR=1;
R_DIR_NO=0;
R_DIR=1;
EN=1;
PWME_PWME0=1;
PWME_PWME1=1;
}
#pragma INLINE
void speedSet(uchar left,uchar right) //先左后右
{
R_PWM=right;
L_PWM=left;
}
#pragma INLINE
void speedDown()
{
L_DIE_NO=1;
L_DIR=0;
R_DIR_NO=1;
R_DIR=0;
EN=1;
PWME_PWME0=1;
PWME_PWME1=1;
}
#pragma INLINE
void speedStop()
{
EN=0;
PWME_PWME0=0;
PWME_PWME1=0;
}
/**********************************************************
* servo motor operation function
**********************************************************/
#pragma INLINE
void servo(uint s) //chuanru bianliang wei 1000--2000.
{
S_PWM=s;
}
/**********************************************************
* servo motor and motor test function
**********************************************************/
void delay(dword max)
{
dword i;
for(i=0;i<max;i++);
}
void motorTest()
{
speedUp();
/********************
speedSet(0,0);
delay(0x00050000);
servo(1300);
speedSet(100,100);
PORTE_PE5=1;
delay(0x00050000);
servo(1700);
speedSet(40,40);
PORTE_PE5=0;
delay(0x00050000);
servo(1500);
speedSet(100,100);
PORTE_PE5=1;
delay(0x00050000);
speedSet(150,150);
PORTE_PE5=0;
delay(0x00100000);
speedSet(199,199);
PORTE_PE5=1;
delay(0x00050000);
speedSet(200,200);
PORTE_PE5=0;
delay(0x00050000);
speedSet(200,200);
PORTE_PE5=1;
delay(0x00050000);
speedDown();
PORTE_PE5=0;
*****************/
servo(1500);
speedSet(20,20);
LED1=1;
delay(0x50000);
speedSet(160,160);
LED1=0;
delay(0x50000);
speedSet(100,100);
servo(1700);
LED1=1;
delay(0x50000);
servo(1500);
speedSet(20,20);
LED1=0;
delay(0x50000);
speedSet(100,100);
servo(1700);
LED1=1;
delay(0x50000);
speedStop();
// while(1);
}
这个程序不接摄像头能正常的动 接上就不行了。
我明天试试把摄像头的供电断掉 看看会有什么情况 |
|