标题:
ECT Timer 自由溢出中断问题
[打印本页]
作者:
lzh2010
时间:
2010-11-8 16:21
标题:
ECT Timer 自由溢出中断问题
我刚开始接触MC9S12XEP100,在使用ECT时想利用Timer产生一个定时中断,从而实现LED的流动闪烁。现在定时中断不能进入,那位使用过S12X系列的朋友帮忙看看我程序哪里有问题,谢谢啦!下面是我写的程序,模仿龙丘的写的:
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
unsigned int counter;
// PLL初始化子程序 BUS Clock=16M
void setbusclock(void)
{
CLKSEL=0x00; // disengage PLL to system
PLLCTL_PLLON=1; // turn on PLL
SYNR=0x00 | 0x03; // VCOFRQ[7:6];SYNDIV[5:0]
// fVCO= 2*fOSC*(SYNDIV + 1)/(REFDIV + 1)
// fPLL= fVCO/(2 × POSTDIV)
// fBUS= fPLL/2
// VCOCLK Frequency Ranges VCOFRQ[7:6]
// 32MHz <= fVCO <= 48MHz 00
// 48MHz < fVCO <= 80MHz 01
// Reserved 10
// 80MHz < fVCO <= 120MHz 11
REFDV=0x40 | 0x00; // REFFRQ[7:6];REFDIV[5:0]
// fREF=fOSC/(REFDIV + 1)
// REFCLK Frequency Ranges REFFRQ[7:6]
// 1MHz <= fREF <= 2MHz 00
// 2MHz < fREF <= 6MHz 01
// 6MHz < fREF <= 12MHz 10
// fREF > 12MHz 11
// pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz;
POSTDIV=0x00; // 4:0, fPLL= fVCO/(2xPOSTDIV)
// If POSTDIV = $00 then fPLL is identical to fVCO (divide by one).
_asm(nop); // BUS CLOCK=16M
_asm(nop);
while(!(CRGFLG_LOCK == 1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}
void delay_ms(int ms)
{
int ii,jj;
if (ms < 1) ms = 1;
for(ii = 0; ii < ms; ii++)
for(jj = 0; jj < 2670; jj++); //busclk:16MHz--1ms
}
void Timer_Init(void)
{
ECT_TSCR1 = 0x80;//TIMER INT ENABLED
ECT_TSCR2 = 0x84;//16分频
counter = 0;
}
void main(void)
{
/* put your own code here */
setbusclock();
EnableInterrupts;
DDRA = 0x0F;
PORTA = 0x00;
for(;;)
{
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 16 Timer_Overflow(void)
{
ECT_TFLG2_TOF = 1; //清定时器溢出标志位
counter++;
if(counter == 10)
{
PORTA = ~PORTA;
counter = 0;
}
}
作者:
lzh2010
时间:
2010-11-8 16:24
外部晶振使用4M,总线频率为16M,不能进入中断是不是还有相关的寄存器没有设定,希望使用过此系列单片机的朋友帮忙看看,谢谢!!!
作者:
lzh2010
时间:
2010-11-9 08:56
怎么没人回答呢?
作者:
strongchen
时间:
2010-11-10 16:40
在MAP文件中检查一下中断16的矢量地址对不不对。
作者:
lyshanshi
时间:
2010-11-10 18:17
其实,目前在太阳能热水器行业进退两难的形势下,品牌太阳能企业要想走城市发展道路,完全可以退一步
上海林内热水器维修
,利用太阳能产品与建筑一体化进行结合,太阳能企业出产品和技术,房地产商进行建筑施工和安装,双方合作共同为城市的低碳、绿色发展作出贡献,各方也不会因为投入太多而大伤脑筋。据了解,
上海樱花热水器维修
随着各地政府强制安装政策的颁布和实施,全国部分城市已经开始由原来的用户自行安装,进入"植入"楼盘规划期
上海史密斯热水器维修
。据了解,山东某企业已建成了1000多个太阳能与建筑一体化工程。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0