Interrupt Vector 格式错,应这样编写
/* Serial Port application for 8XC196KB
$Revision: 1.1 $
Copyright 1995-1999 IAR Systems. All rights reserved. */
#include "stdio.h"
#include "intrins.h"
#include "io196_kb.h"
#pragma language=extended
sfrb int_mask = 0x08;
sfrb int_mask1 = 0x13;
sfrb int_pend = 0x09;
sfrb int_pend1 = 0x12;
sfrb serial_port_status = 0x11;
sfrb wsr = 0x14;
sfrb receive_register = 0x7;
sfrb transmit_register = 0x7;
static char buff[20];
static char index;
/* Transmit interrupt routine: */
void interrupt [0x30] TI_interrupt(void)
{
if(index != 0)
{
wsr = 0; /* set wsr send byte */
transmit_register = buff[index]; /* send it out again */
index--;
}
}
/* Receive interrupt routine: */
void interrupt [0x32] RI_interrupt(void)
{
char shadow;
wsr = 0; /* set wsr to read incoming byte and status register:*/
shadow = serial_port_status;
if(index > 19) /* if the buffer is full, start over. */
index = 0;
buff[index] = receive_register;
/* wsr is set to send byte */
transmit_register = buff[index]; /* send it out again */
index++;
}
void main(void)
{
/* Initially, our buffer is empty */
index = 0;
/* Allow receive and transmit interrupt: */
int_mask1 = 0x03;
/* Enable interrupts:*/
enable_interrupt();
/* Wait for an incoming byte: */
while(1);
}
发表时间:2003年6月5日10:06:30