Board logo

标题: 求助mc9s12dg128的iic问题 [打印本页]

作者: flying1983    时间: 2006-8-14 08:04     标题: 求助mc9s12dg128的iic问题

使用mc9s12dg128的iic接口调试at24c01a,一个iic接口的eeprom


老是调不通,程序老死机。大家给看看是什么问题。。



#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


void IIC_int()
{
  IBFD=0xfc;
  IBAD=0xee;
  IBCR|=0x80;
}


void IIC_Start()
{
  IBCR|=0x30;
}


void IIC_Stop()
{
  IBCR&=0xdf;    //stop
}


void uart_init(void)
{
  SCI1CR2=0x08;
  SCI1BDH=0x00;
  SCI1BDL=0x9C;
}


void uart_putchar(unsigned char ch)
{
 while(!(SCI1SR1&0x40))
  {}         
  SCI1DRL=ch;


uchar send_data(uchar ch)
{
  IBSR_IBIF=1;      //clear flag
  IBDR=ch;
  //while(!IBSR_IBB); //if the bus is busy
  while(!IBSR_IBIF);//wait for acknowledge
}


void wait_ack()
{
  while(IBSR_RXAK); //
}



void main(void) {
  /* put your own code here */
  EnableInterrupts;
  uart_init();
  IIC_int();
  while(IBSR_IBB);
  IIC_Start();
//write
  send_data(0xa0);
  wait_ack();
  send_data(0x02);
  wait_ack();
  send_data(0x78);
  wait_ack();
  IIC_Stop();    //stop
//read
  //IIC_int();
  IIC_Start();
  send_data(0xa0);
  wait_ack();
 
 
  send_data(0x02);
  wait_ack();
 
  IIC_Start();
  send_data(0xa1);
  wait_ack();
  //while(!IBSR_RXAK); //
  IBCR&=0xef;       //receive
  IBSR_IBIF=1;      //clear flag
  //uart_putchar(IBSR);
  while(!IBSR_IBIF);
  //uart_putchar(0xf0);
  //IBDR=0xff;
  uart_putchar(IBDR);
  IIC_Stop();    //stop
  IBSR_IBIF=1;      //clear flag
  for(;;) {} /* wait forever */
}


作者: strongchen    时间: 2006-8-14 09:17

有没有找到程序到底停在哪里了?
作者: flying1983    时间: 2006-8-14 11:03

在检查IBIF标志时停的
作者: strongchen    时间: 2006-8-14 11:19

口线上是否有信号输出?
作者: flying1983    时间: 2006-8-14 11:37

你是说要用示波器看看波形吗

作者: flying1983    时间: 2006-8-14 11:43

程序单步执行可以执行完毕,但是全速执行就会在 while(!IBSR_IBIF);这一句停住
作者: strongchen    时间: 2006-8-14 14:27

单步走时用示波器看的波形对否?
作者: flying1983    时间: 2006-8-14 14:43

FCS网站上有没有例程啊。我看到的只是用I/O口模拟的阿
作者: strongchen    时间: 2006-8-14 15:00

你可以用处理器专家PE自动生成代码作参考。
作者: flying1983    时间: 2006-8-14 15:22

3.1版本的可以吗,没用过啊
作者: strongchen    时间: 2006-8-14 15:28

应该可以的。
作者: flying1983    时间: 2006-8-14 15:32

有关于使用PE的资料吗,从哪里可以找到
作者: strongchen    时间: 2006-8-14 16:24

安装好CodeWarrior之后,在其子目录下有使用手册。另外,PE是图形化的界面,不用资料也可以使用的。




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