Board logo

标题: SCI串口中断的问题 [打印本页]

作者: 迦陵频伽    时间: 2006-4-4 09:51     标题: SCI串口中断的问题

    我用的gz16的芯片,设置用中断来接收PC机发送的数据,可以好象没有产生中断,不知道是为什么,下面是我得程序。


#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */


unsigned char temp=0;
unsigned char rxdata=0;
void MCU_init(void); /* Device initialization function declaration */


void main(void) {


  unsigned char temp,rxdata;
  temp=0;
  rxdata=0;
  PTD=0;
  DDRD=0xff;//output
  /* include your code here */
  CONFIG1=0x39;
  CONFIG2=0x10;


  SCBR=0x30;//baud rate 9600
 SCC1=0x40;//enable SCI,no parity test,8bit data

  SCC2=0x2C;//enable transmitter and receiver
  SCC3=0x00;
  SCC2_SCTIE=0;
  EnableInterrupts; /* enable interrupts */
  /* include your code here */


 


  for(;;) {
    __RESET_WATCHDOG(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave this function */
}



interrupt void SCRF(void)
{
 temp=SCS1;
 rxdata=SCDR;
  if(rxdata==0x55)  PTD_PTD0=1;
  else PTD_PTD2=1;
                                                   
  // SCC2_SCTIE=1;
 }


作者: 迦陵频伽    时间: 2006-4-4 10:01

strong_chen在不在啊,帮我看看吧。
作者: strongchen    时间: 2006-4-4 10:47

你的中断地址是如何定义的?地址对不对?
作者: 迦陵频伽    时间: 2006-4-4 11:35

我在datasheet上查到是12,然后我顺序加1,变成13了。VECTOR 13 SCIrx
可还是不行
作者: 迦陵频伽    时间: 2006-4-4 11:35

关键是我不知道问题出在哪一步
作者: 迦陵频伽    时间: 2006-4-4 14:55

突然又好了,不知道是哪里的问题。
作者: BORNJIANG    时间: 2006-4-5 10:06

建议检查map文件中的中断向量及指定堆栈位置及大小
作者: strongchen    时间: 2006-4-5 10:23

怀疑是硬件的问题。
作者: lingxiang    时间: 2006-4-6 12:32

你直接在interrupt后面加上13就行了
在把VECTOR 13 SCIrx删除掉
试一试
作者: seuafu2005    时间: 2006-4-6 15:48

加13 = Vector 13的写法
对于串口通讯好坏没不会有影响的
作者: aaweizai    时间: 2006-5-10 16:59

建议检查map文件中的中断向量及指定堆栈位置及大小  能否说的稍微具体一点!谢谢




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0