金牌会员
- 积分
- 1361
- 威望
- 773
- 贡献
- 252
- 兑换币
- 4
- 注册时间
- 2011-9-17
- 在线时间
- 168 小时
|
#include <hidef.h> /* common defines and macros */
#include <MC9S12XS128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
#include "lcdDriver.h"
//************************************
//设置总线时钟
void initpll(void)
{
CLKSEL_PLLSEL=0;
PLLCTL_PLLON=0;
SYNR=0xc0 | 0x07;//PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
REFDV=0x80 | 0x01;
PLLCTL_PLLON=1;
asm NOP;
asm NOP;
asm NOP;
while((CRGFLG&0X08)==0);//时钟校正同步
CLKSEL_PLLSEL=1;
}
//*********************ETC初始化******************//
void initECT(void)
{ TIOS=0;
TCTL4=0X02; //PT0,捕捉下降沿
TFLG1=0XFF; //清除中断标志
TIE_C0I=1; //开PT0中断
TSCR1_TEN=1; //启动定时器
}
//***************IO初始化***********************//
void initIO(void)
{ DDRE=0xFF;
PORTE=0Xff;//LED灭
}
void delayms (int ms)
{
int ii,jj;
if (ms < 1) ms = 1;
for (ii = 0; ii < ms; ii++)
for (jj = 0; jj < 3338; jj++); //延时
}
void main(void)
{
/* put your own code here */
DisableInterrupts;
initpll();
initECT();
initIO();
LCD_init( ); // 初始化LCD
LCD_clear( ); // 清除LCD
EnableInterrupts;
for(;;)
{ PORTE_PE6=~PORTE_PE6;
delayms(1000);
}
}
/////*********中断服务程序*************////
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 12 changinter(void) //街卸?
{
TFLG1_C0F = 1; // 清除中断标志位
PORTE_PE5=~ PORTE_PE5; //说明进入中断
LCD_write_english_string ( 4, 5, " ** " );
delayms(100);
return;
}
上面的程序,一直进不了中断,我是直接在pt0送了方波,但一直进不了中断,求指导,纠结死了!
|
|