系统初始化
/*--------------- I N C L U D E S ------------------------------------*/
#include <> /* common defines and macros */
#include <> /* derivative information */
#include ""
#include ""
#include ""
/********************************************************************* 函数名: PORT_Init
作用: 初始化普通I/O端口
输入管脚: PA1、3、6、7,PB5、7,PE0、1、7,AD
输出管脚: PA,PB、PE剩余管脚备注: 光电传感器输入等用途*********************************************************************/ void PORT_Init(void)
{
DDRA = 0x35; //定义A口为0b00110101,即1、3、6、7口为输入,其余为输出
DDRB = 0x5f; //定义B口为0b01011111,即5、7口为输入,其余为输出 DDRE = 0x7c; //定义E口为
0b01111100,即0、1、7口为输入,其余为输出
//此三口用于传感器的控制和接收信号
PUCR_PUPAE = 1; //各个端口内部上拉使能(对输入的微弱信号进行放大) PUCR_PUPBE = 1;
PUCR_PUPEE = 1;
PORTA = 0x00; //定义各口的初值为0
PORTB = 0x00;
PORTE = 0x00;
ATD0DIEN =0xff; //初始化AD口,用作拨码开关
DDR1AD0 = 0x00; //AD数据选择寄存器、1为输出、0为出入
//PER1AD0 = 0xff; //AD口上内部上拉使能寄存器,1为使能、0为禁止//PT1AD0 = 0xff; //AD数据寄存器初值
//DDRM=0x00; //定义M、J口作为备用拨码开光输入口
//DDRJ=0x00; //T口作为拨码开关输入口,且只能作为输入口,故不用定义
//PTM=0x00;
//PTJ=0x00;
//PERM=1;
//PERJ=1;
//PPSM=0;
//PPSJ=0;
}
/********************************************************************* 函数名: PWM_Init
作用: 初始化PWM脉宽调制波
输入管脚: None
输出管脚: PWM1(PP1),PWM3(PP3),PWM5(预留,需要用的可以自己写初始化)
备注: 电机、舵机的控制。(10kHz),舵机PWM周期一般为10~20ms
总线频率40MHz, *********************************************************************/ void PWM_Init(void)
{
PWMPRCLK_PCKA = 4; //PWMPRCLK_PCKA为预分频因子寄存器A,0b00000100,16分频,如此则 ,
PWMSCLA = 1; //比例因子寄存器A,提供产生时钟Clock SA的比例因子Clock SA=ClockA/(2*PWMSCLA)=
PWMPRCLK_PCKB = 4; //0b01000000,16分频,,
PWMSCLB = 1; //2分频, ,
/*PWMCTL_CON01 = 1;
PWME_PWME1 = 0;
PWMCLK_PCLK1 = 1;
PWMPOL_PPOL1 = 1;
T01 = 0;
PWMDTY01 = 0;
PWMPER01 = 2000;
PWME_PWME1 = 1; */
PWME_PWME0 =1;
PWMCLK_PCLK0 = 0; //PWMCLK为时钟选择寄存器,0为选择Clock A作为其时钟源
PWMPOL_PP
系统初始化 来自淘豆网www.taodocs.com转载请标明出处.