M16C/62单片机串口查询发送接收没有问题,但用中断就跑飞
项目一天一天逼近了,搞了几天还是没有搞出来,都急了。现在的问题就是用查询的方式来发送和接收没有问题,但是用中断来接收数据就出现illegal instruction,程序跑到BRK处停了。是不是HEW有什么地方要设置的啊,刚开始用瑞萨的单片机,不太熟悉,望各位帮帮忙啊!!
附上代码:void InitSci ( void )
{
//pclk1 = 1; /// seleck F1SIO,using default setting
/* UART Transmit/Receive Control Register 2 */
ucon = 0x00;
u0c0 = 0x10;
u0brg = BAUD(115200L); // set baud rate
/* UART0 transmit/receive control register 1 */
/*disable transmit and receive, no error output pin, data not inverted */
u0c1 = 0x00;
u0mr = 0x05;
/* clear UART0 receive buffer by reading */
u0tb = u0rb;
/* clear UART0 transmit buffer */
u0tb = 0;
/* Enable UART0 receive interrupt, priority level 5 */
s0ric = 0x05;
u0c1 = 0x05;
pd6_7 = 1;
pd6_6 = 0;
}
void SendByte ( unsigned char b )
{
while( ti_u0c1 == 0 );
u0tbl = b;
ClearSCITxFlag();
}
void SendString ( char far *str )
{
// sends string until NUL terminator is reached
unsigned short us;
us = 0;
while ( str != 0 )
{
SendByte ( (unsigned char) str );
us++;
}
}
#pragma interrupt _uart0_receive(vect=18)
void _uart0_receive(void);
void _uart0_receive(void){}
void main(void)
{
u8 c;
__low_level_init();///初始化系统时钟 外部晶振时钟:
InitSci();
// asm("Fset i");
SendString("UART0 Testing!!\r\n");
SendString("Over\r\n");
SendString("Over\r\n");
SendString("Over\r\n");
SendString("....\r\n");
SendString("Please Input Something\r\n");
while(!(s0ric & 0x08));
c = u0rb;
SendByte(c);
while(1)
{
}
} 新工作,刚用这个芯片,不能帮到你{:sad:}
页:
[1]