【文件属性】:
文件名称:自平衡小车 - 直走 +蓝牙
文件大小:62KB
文件格式:ZIP
更新时间:2017-01-27 06:44:27
自平衡小车
#include "main.h"
/*******************************************
函数名称:void InitSys()
函数功能:时钟初始化
入口参数:无
返回值:无
*******************************************/
void InitSys()
{
unsigned int iq0;
_DINT();
BCSCTL1 &=~XT2OFF;
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振
}
while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
BCSCTL2 =SELM1+SELS; //MCLK,SMCLK时钟为XT2
}
/************************
函数名称:void UART_init(void)
函数功能:串口的初始化
函数参数:无
函数返回值:无
************************/
void UART_init(void)
{
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
ME1 |= URXE0 + UTXE0; // Enable USART0 T/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
}
//设置TA0,用于定时10ms来执行离散采样
void set_timer_a0()
{
TACTL |= TASSEL1+TACLR+ID1+ID0;
TACTL |=MC0;
CCTL0 |=CCIE;
TACCR0=9999;
}
//外部计数初始化
void exti_init()
{
P1SEL =0x00;
P1DIR&=~(BIT0+BIT1);
P1DIR|=BIT6+BIT7;
P1OUT=0X00;
P1IES = 0x00; // P1.0选择上升沿中断
P1IE = 0x01; // 打开中断使能
}
void init_all()
{
InitSys();
UART_init();
set_timer_a0();
delay_ms(5);
PWM_Init();
exti_init();
}
/******************************
函数名称:PWM_Init()
函数参数,返回值:无
**************************/
void PWM_Init(void)
{
P4DIR=0xff; // P4 PWM输出
P4SEL=BIT1+BIT2+BIT3+BIT4;
P4DIR=BIT1+BIT2+BIT3+BIT4;
TBCCTL1|=OUTMOD_7; //捕获/比较控制寄存器,输出为模式7
TBCCTL2|=OUTMOD_7; //PWM RESET/SET模式
TBCCTL3|=OUTMOD_7; //TBCCRn--复位
TBCCTL4|=OUTMOD_7; //TBCL0--置位
TBCCR1 =0; //P4.1 L298N IN1
TBCCR2 =0; //P4.2 IN2
TBCCR3 =0; //P4.3 IN3
TBCCR4 =0; //P4.5 IN4
TBCCR0 =100;
TBCTL |= TBSSEL_1+MC_1; //TIMER_B工作于增计数方式
}
【文件预览】:
自平衡小车 - 直走 +蓝牙
----first.dep(6KB)
----IIC.c(6KB)
----suanfa.h(481B)
----moto.h(154B)
----main.c(3KB)
----IIC.h(2KB)
----init.h(294B)
----first.ewd(20KB)
----settings()
--------first.dbgdt(6KB)
--------test.wsdt(4KB)
--------first.cspy.bat(1KB)
--------first.dni(2KB)
----init.c(2KB)
----main.h(462B)
----test.eww(159B)
----suanfa.c(1007B)
----Debug()
--------List()
--------Exe()
--------Obj()
----path.txt(0B)
----first.ewp(49KB)
----moto.c(510B)