打印

怪事,这程序不正常终止

[复制链接]
1542|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t-z-sh|  楼主 | 2007-12-21 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
se, FOR, IO, dc, IDC
下面的程序当运行到最下面的“SET_MAX7032_CS();”后不会停止而是跳到第一个for循环。当把两个for循环分别用i和j做计数后正常!为什么?
--------------------------------
#include "SM89516AC.h"
#define CS P3_4
#define DIO P3_5
#define SCLK P3_7


void CLR_MAX7032_CLK(void)
  {    SCLK=0;}
void SET_MAX7032_CLK(void)
  {SCLK=1;}
void CLR_MAX7032_DAT(void)
  {    DIO=0;}
void SET_MAX7032_DAT(void)
  {DIO=1;}
void CLR_MAX7032_CS(void)
  {    CS=0;}
void SET_MAX7032_CS(void)
  {CS=1;}
void Max7032Write(char addr,char dat)
    {
  char i;
CLR_MAX7032_CS();
  for(i=0;i<8;i++)
        {
        CLR_MAX7032_CLK();
        if(addr&0x80)SET_MAX7032_DAT();
        else CLR_MAX7032_DAT();
         SET_MAX7032_CLK();
         addr<<=1;
        }

  for(i=0;i<8;i++)
        {
        CLR_MAX7032_CLK();
        if(dat&0x80)SET_MAX7032_DAT();
        else CLR_MAX7032_DAT();
         SET_MAX7032_CLK();
         dat<<=1;
        }
CLR_MAX7032_CLK();
SET_MAX7032_CS();
     }

main()
{

  Max7032Write(0x40,0xBA);

}

相关帖子

沙发
huntington| | 2007-12-21 11:42 | 只看该作者

正常的单片机程序都是个大循环~~~~~~~

使用特权

评论回复
板凳
sharks| | 2007-12-21 12:03 | 只看该作者

main不正常

  结束后程序去了哪里?

  如果你只是调试,在main最后加一句while(1);

使用特权

评论回复
地板
t-z-sh|  楼主 | 2007-12-21 13:55 | 只看该作者

但为什么把两个for语句用不同变量递加就不会那么循环呢?

使用特权

评论回复
5
sharks| | 2007-12-22 21:49 | 只看该作者

C语言优化,会自动删去某些语句。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

48

帖子

0

粉丝