📄 hardware.h
字号:
//锁相环初始化
//------------------------------------------------------------------------------
void crg_init(void)
{ SYNR = 0X02;
REFDV = 0X01;
while((CRGFLG & 0x08)==0 ); // wait for PLL clock stabilization
CLKSEL|=0x80; // select PLL clock.
}
//PWM 初始化
//------------------------------------------------------------------------------
void pwm_init (void)
{
PWME = 0Xa8; //通道45、23、67 输出
PWMCTL = 0Xe8; //45、23、67级联且冻结模式下计数器停止
PWMPOL = 0Xfc; //45、23、67输出高电平
PWMCLK = 0X30; //45、23选择时钟SA,67选择时钟SB
PWMPRCLK = 0X11; //A、B时钟都选24/2=12M
PWMSCLA = 0X01; //SA、SB都选时钟6M
PWMSCLB = 0X01;
PWMCNT45 = 0X00; //计数寄存器设置
PWMCNT23 = 0X00;
PWMCNT67 = 0X00;
PWMCAE = 0X00; //波形左对齐输出
PWMPER67 = 10000; //F=6M*1000=600hz
PWMPER23 = 10000;
PWMPER45 = 60000; //T=(1/6M)*60000=10ms
}
//---------------------------atd 初始化---------------------------------------
void atd_init(void)
{
ATD0CTL2=0xC0;
ATD1CTL2=0xC0;
ATD0CTL3=0x02;
ATD1CTL3=0x02;
ATD0CTL4=0x8a;
ATD1CTL4=0x8a;
ATD0CTL5=0xB0;
ATD1CTL5=0xB0;
}
//-------ect初始化-------------------------------------------
void ect_init(void) //记数初始化
{
MCCTL=0xCF; //16位模数计数器控制寄存器 16分频
MCFLG=0x80; // 模数计数器溢出中断标志
MCCNT=30000; //load the value for timer 模减计数器清零
TCTL4=0x01; //定时器控制寄存器的设定 捕捉上升沿
TIOS_IOS0=0; //0通道为输入捕捉
PBCTL=0x40; //16位脉冲累加器B控制寄存器 脉冲累加器B允许
PACN10=0; //
}
//------------------------------------------------------------------------------
void system_init()
{
crg_init();
atd_init();
pwm_init();
ect_init();
PWMDTY67 = 0;
PWMDTY23 = 0;
PWMDTY45 = 13000;
}
//------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -