哪位大侠会用AVR studio软件仿真调试,求指导

2019-07-21 07:01发布

我用AVR studio软件进行软件仿真一段程序如下。问题是运行时发现程序只是在  device_init()中的port_init()子函数中循环,根本不进SPI初始化函数,而且也不进while(1)大循环。我很苦恼,请大侠们给指导指导,谢谢。我用的编译软件是ICCAVR,仿真是AVR studio4.17版本


#include <iom16v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int
#define  mclk   8000000   
//------------------------------------------------------------------------------
#define SPIF 7 //延时 void delay(unsigned k)
{
 while(k)
 {k--;
 asm("nop");
 }
}
//------------------------------------------------------------------------------
//端口初始化函数
void port_init()
{
  DDRB=0XB0;                              //SCK、MOSI、SS置位为输出,MISO设置为输入
  PORTB=0X00;                             //输出低电平,输入也是低电平
}
//------------------------------------------------------------------------------
//SPI初始化函数
void spi_init()
{
  SPCR=0x51;                              //使能SPI;时钟选择为16分频;时钟极性(CPOL)为低电平,起始沿为上升沿,结束沿为下降沿;
                                          //时钟相位(CPHA)在起始沿采样
}
//------------------------------------------------------------------------------
//芯片初始化函数
void device_init()
{
  port_init();
  spi_init();
}
//------------------------------------------------------------------------------
//SPI主机发送函数
void spi_master_send(uchar dat)
{
  SPDR=dat;
  while(!(SPSR&(1<<SPIF)));               //等待传输结束
}
//------------------------------------------------------------------------------
//main
void main()
{
  device_init();
  while(1)
  {
    spi_master_send(0x55);
    delay(1);
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 12:22
帮顶。。。。。。
moyansen
2楼-- · 2019-07-21 12:34
可惜我没用过iccavr,我现在都是用atmel Studio6.2!帮顶
乱世疯子狂
3楼-- · 2019-07-21 17:19
 精彩回答 2  元偷偷看……
太空旅客
4楼-- · 2019-07-21 20:37
楼主的问题解决了吗?
太空旅客
5楼-- · 2019-07-21 21:25
我也遇到相同的问题了!

一周热门 更多>