📄 main.c
字号:
///////////////////////////////////////////////////////////////////
//10ms
//author:whut_wj
///////////////////////////////////////////////////////////////////
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void Start_PLL(void) //busCLK=20M
{
REFDV=0x03; // PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
SYNR=0x04; // =2*16M*3/2=40M
asm{
BRCLR CRGFLG,#$08,*
BSET CLKSEL,#$80
}
}
void MDCInit(void)
{
MCCTL = MCCTL&0Xfb;//模数计数器禁止运行
MCCTL = 0Xe3; //允许中断,模数计数方式
//返回时重新加载所用的常数,分频常数为16
MCCTL = MCCTL|0X04; //模数计数器使能
MCCNT = 12500; //(1/20M)*16*12500= 10ms
MCCTL = MCCTL|0X08 ; //把模数常数寄存器的值加载到模数计数器FLMC;
}
void main(void)
{
DisableInterrupts;
Start_PLL();
MDCInit();
EnableInterrupts;
DDRB=0xff;
PORTB=0XAA;
for(;;)
{
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 26 MDC_ISR(void)
{
PORTB^=0Xff;
MCFLG = 0x80;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -