打印

这个函数有语法错误,我查不出来。

[复制链接]
2989|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gdqinci|  楼主 | 2010-7-8 16:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void WRITE_TWOline(uchar X,uchar Y,uchar count)
{
uchar i;
uchar DDATA;
switch(Y)
      {
    case 1:{
            X=X|0x80;
      WRITE_CMD(X);
               for(i=0;i=<count;i++)
               {
                uchar Num=0;
                DDATA=str0[Num];
                   WRITE_DATA(DDATA);
                Num++;
                }
     }break;
       case 2:{
               X=X+0x40;
            X=X|0x80;
      WRITE_CMD(X);
               for(i=0;i=<count;i++)
               {
                uchar Num=0;
                DDATA=str1[Num];
                   WRITE_DATA(DDATA);
                Num++;
                }
              }break;
    default:break;
     }
}

相关帖子

沙发
gdqinci|  楼主 | 2010-7-8 16:21 | 只看该作者
KEIL报在62行和74行有语法错误,我却查不出来。

只能怪自己水平有限了。

使用特权

评论回复
板凳
gdqinci|  楼主 | 2010-7-8 16:22 | 只看该作者
for(i=0;i=<count;i++)

说的就是这一句里面有语法错误。

使用特权

评论回复
地板
gdqinci|  楼主 | 2010-7-8 16:26 | 只看该作者
我这个笨蛋,真他妈的无脑,超低级的错误。

使用特权

评论回复
5
ayb_ice| | 2010-7-8 16:48 | 只看该作者
按提示排除故障

使用特权

评论回复
6
fzy_666| | 2010-7-8 17:05 | 只看该作者
=<这个好像不是这样写的吧,应该是<=

使用特权

评论回复
7
twz8858877| | 2010-7-8 17:25 | 只看该作者
uchar Num=0;

使用特权

评论回复
8
zjswuyunbo| | 2010-7-8 20:19 | 只看该作者
那句话下面定义了一个变量…哈哈。

使用特权

评论回复
9
zq1987731| | 2010-7-8 20:33 | 只看该作者
uchar Num=0;语法上也不是不可以...
复合语句内部是允许定义变量的,但...作为循环语句每次上来都将Num初始化为0...你的Num++;便毫无意义...

使用特权

评论回复
10
原野之狼| | 2010-7-8 21:00 | 只看该作者
不要自暴自弃
做技术要一步一个脚印哦

使用特权

评论回复
11
Quentin| | 2010-7-8 22:55 | 只看该作者
uchar Num=0;

使用特权

评论回复
12
gdqinci|  楼主 | 2010-7-9 09:55 | 只看该作者
第一个错误,属于语法错误,是我打代码打的太快的结果,不可原谅的是我居然没有查出来。可见我对C的语法还是很生疏的。

第二个我觉得是逻辑上的错误,这种错误编译器一般不会报错,需要程序员自己的小心处理。

使用特权

评论回复
13
mohanwei| | 2010-7-9 10:12 | 只看该作者
case 1:{
            ……
     }break;
这种风格头一次见,呵呵

使用特权

评论回复
14
gdqinci|  楼主 | 2010-7-9 10:14 | 只看该作者
楼上的兄弟,要是你来写的话应该用怎样的风格,说说好么?

使用特权

评论回复
15
tcc8073| | 2010-7-9 11:33 | 只看该作者
那么多指令,调用函数,不用{}都可以实现,反正CASE指令没有遇到BREAK都一直往下执行,途径不重要,只要好懂,能用好用都行,不知道其他人怎么看

使用特权

评论回复
16
pentral0311| | 2010-7-9 13:13 | 只看该作者
3# gdqinci

应该是
for(i=0;i<=count;i++)
这个<=符号是很容易出错的,因为不太符合我们平时的写法

使用特权

评论回复
17
credy| | 2010-7-9 16:07 | 只看该作者
=<改成<=

使用特权

评论回复
18
gdqinci|  楼主 | 2010-7-9 16:52 | 只看该作者
本帖最后由 gdqinci 于 2010-7-9 16:53 编辑

谢谢众位兄弟们,我把它重新改了一下。

void WRITE_TWOline(uchar X,uchar Y,uchar count)
{
uchar i;
switch(Y)
   {
    case 1:X|=0x80;
              WRITE_CMD(X);//调用写指令确定DDRAM地址
              for(i=0;i<=count;i++)
               {
                 WRITE_DATA(str0
);
                }
              break;
    case 2:X=(X+0x40)|0x80;
              WRITE_CMD(X);//调用写指令确定DDRAM地址
              for(i=0;i<=count;i++)
               {
                 WRITE_DATA(str1
);
               }
              break;
   default:break;
  }
}

去掉了Num和DDATA两个变量,这里不需要那两个变量的辅助也同样可以实验函数功能。

使用特权

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

本版积分规则

36

主题

341

帖子

2

粉丝