Board logo

标题: [求助]我用的H08MR16单片机SCI老出错 SCDR不能读写 请教各位 [打印本页]

作者: juzi301    时间: 2006-11-19 22:01     标题: [求助]我用的H08MR16单片机SCI老出错 SCDR不能读写 请教各位

void main(void) {
  EnableInterrupts; /* enable interrupts */
 


  CONFIG=0x09; // 关闭看门狗,5V操作模式
  //CONFIG=0x10; // 选择外部晶振作为时钟源 
   /*SCI初始化*/
 
  SCBR=0x04; //波特率4800  
  SCC1=0x4c;  //正常双通模式,输出不翻转,8数据格式无奇偶校检
  //SCC2=0xfc;  // SCI非唤醒工作状态  SCC3用在9位数据状态的时候
  SCC2=0x3d;
   for(;;);
 
 
}


interrupt 22 void INTSCI(void) {
  //SCBR=0x04; //波特率4800
  if(SCS1_SCTE==1) 
  asm{
    LDA #0x12
    STA SCDR
  } ;
    }


出错了显示的SCDR为 undefined unsigned register


后来我把这个中断关了用软件中断 程序可以运行  但窜口发送的是FE 不是我写入寄存器SCDR的数据.我用STA SCDR  观察不到发送寄存器有被修改过


请教各位了


我的联系方式Q:470760946 一定不吝赐教 急中!!!


作者: seuafu2005    时间: 2006-11-20 10:00

你的发送中断允许好像没有放开
另外,每发送一个字节完成后都应该清一下SCTE位
作者: juzi301    时间: 2006-11-20 10:19

哦 不好意思,没改过来,其实上面程序中的两个SCC2我都试过了, 0X3D那个是我后来关了  用的软中断,程序就可以运行了  不过就是每次复位一次才发出来一个数据FE 我认为这是握手码 也就是SCI引导位  而没有发送我写进去SCDR的0X12  估计是程序哪没编好 我换了一个08的片子编程  也还是这个问题  苦恼啊
作者: strongchen    时间: 2006-11-20 11:00

你的寄存器定义头文件有问题?
作者: juzi301    时间: 2006-11-20 11:25

寄存器头文件出问题了?  我是用的CODWARRY向导生成的啊  没有动过他们啊  楼上的可不可以说具体点啊?
作者: juzi301    时间: 2006-11-20 15:07

MOV #0x01,SCDR
loop:BRCLR 7,SCS1,loop
MOV #5,SCDR
loop2:BRCLR 7,SCS1,loop2

现在可以发送了 程序如上 但 我写0X01 他发送的是FE 我写0X05 他发送的是E6 好象有点规律在里面 到底是怎么回事啊




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