时钟中断怎么也进不了,sect30.inc 已经设置了向量
时间:10-02
整理:3721RD
点击:
/*********************************************************************/
/* */
/* FILE :testtime.c */
/* DATE :Tue, Apr 06, 2010 */
/* DESCRIPTION :main program file. */
/* CPU GROUP :1B */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.17). */
/* */
/*********************************************************************/
#define __NOP asm("NOP")
#define __Wait4NOP asm("NOP\nNOP\nNOP\nNOP")
#define __DisableInt asm("FCLR I")
#define __EnableInt asm("FSET I")
#include "sfr_r81B.h"
void InitClock();
void SoftWait(unsigned int WaitTime);
void InitTimerX();
/*********************************************************************
*函数原型: TimerXInt
*功能 : TIMER X 中断 中断向量22
*********************************************************************/
#pragma INTERRUPT TimerXInt() vect=22;
void TimerXInt(void)
{
ir_txic=0;
////*用户程序*/
}
void main(void)
{
unsigned char temp;
__DisableInt;
// InitClock();
InitTimerX();
__EnableInt;
while(1)
{
temp++;
}
}
/*********************************************************************
*函数原型: void InitClock(void)
*功能 : 时钟初始化处理程序
*********************************************************************/
void InitClock()
{
prcr = 0x01; //关闭和时钟相关的保护寄存器,允许修改时钟
cm14 = 0;
//hra00 = 1; //高速内部振荡器振荡
//hra2=0; //标准8MHz,出厂参数
hra00 = 1;
hra2 = 0;
SoftWait(100); //等待
hra01 = 1; //使用内部高速振荡器时钟(FRING-Fast)作为内部时钟(FRING)
ocd2 = 1; //使用内部时钟作为系统时钟
cm16 = 0; //CPU时钟不分频
cm17 = 0;
cm06 = 0; //CPU时钟的分频比使用CM16,CM17进行设定
cm05 = 1;
cm13 = 0;
cm10 = 0;
prcr = 0; //打开保护寄存器
}
/*********************************************************************
*函数原型: void SoftWait (unsigned int WaitTime)
*功能 : 短延时程序,约6US @8MHz
*********************************************************************/
void SoftWait(unsigned int WaitTime)
{
while(0 != WaitTime)
{
__Wait4NOP;
WaitTime --;
}
}
/*********************************************************************
*函数原型: InitTimerX()
*功能 : 短延时程序,约1mS @8MHz
*********************************************************************/
void InitTimerX() // 定时器X
{
txck0 = 1;
txck1 = 0;
prex=125;
tx=125;
txmr = 0x00;
txic = 1; // Interrupt priority level = 1
ir_txic = 0; // Interrupt request flag clear
txs = 1; // Timer X count start flag = start
}
时钟中断怎么也进不了,不知道哪里出了问题,sect30.inc 已经设置了向量。
.glb _TimerXInt
.lword _TimerXInt
请大吓帮帮忙,不知道遗漏了什么/
/* */
/* FILE :testtime.c */
/* DATE :Tue, Apr 06, 2010 */
/* DESCRIPTION :main program file. */
/* CPU GROUP :1B */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.17). */
/* */
/*********************************************************************/
#define __NOP asm("NOP")
#define __Wait4NOP asm("NOP\nNOP\nNOP\nNOP")
#define __DisableInt asm("FCLR I")
#define __EnableInt asm("FSET I")
#include "sfr_r81B.h"
void InitClock();
void SoftWait(unsigned int WaitTime);
void InitTimerX();
/*********************************************************************
*函数原型: TimerXInt
*功能 : TIMER X 中断 中断向量22
*********************************************************************/
#pragma INTERRUPT TimerXInt() vect=22;
void TimerXInt(void)
{
ir_txic=0;
////*用户程序*/
}
void main(void)
{
unsigned char temp;
__DisableInt;
// InitClock();
InitTimerX();
__EnableInt;
while(1)
{
temp++;
}
}
/*********************************************************************
*函数原型: void InitClock(void)
*功能 : 时钟初始化处理程序
*********************************************************************/
void InitClock()
{
prcr = 0x01; //关闭和时钟相关的保护寄存器,允许修改时钟
cm14 = 0;
//hra00 = 1; //高速内部振荡器振荡
//hra2=0; //标准8MHz,出厂参数
hra00 = 1;
hra2 = 0;
SoftWait(100); //等待
hra01 = 1; //使用内部高速振荡器时钟(FRING-Fast)作为内部时钟(FRING)
ocd2 = 1; //使用内部时钟作为系统时钟
cm16 = 0; //CPU时钟不分频
cm17 = 0;
cm06 = 0; //CPU时钟的分频比使用CM16,CM17进行设定
cm05 = 1;
cm13 = 0;
cm10 = 0;
prcr = 0; //打开保护寄存器
}
/*********************************************************************
*函数原型: void SoftWait (unsigned int WaitTime)
*功能 : 短延时程序,约6US @8MHz
*********************************************************************/
void SoftWait(unsigned int WaitTime)
{
while(0 != WaitTime)
{
__Wait4NOP;
WaitTime --;
}
}
/*********************************************************************
*函数原型: InitTimerX()
*功能 : 短延时程序,约1mS @8MHz
*********************************************************************/
void InitTimerX() // 定时器X
{
txck0 = 1;
txck1 = 0;
prex=125;
tx=125;
txmr = 0x00;
txic = 1; // Interrupt priority level = 1
ir_txic = 0; // Interrupt request flag clear
txs = 1; // Timer X count start flag = start
}
时钟中断怎么也进不了,不知道哪里出了问题,sect30.inc 已经设置了向量。
.glb _TimerXInt
.lword _TimerXInt
请大吓帮帮忙,不知道遗漏了什么/