打印
[AVR单片机]

AVR程序求解释

[复制链接]
2294|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LYB911|  楼主 | 2010-10-16 19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main()
{                                        刚开始学习AVR,对一些基础性知识,不太理解
   uchar k;-------将此句放到PORTD=0XFF;后为什么就编译不过去了啊,
   DDRD=0XFF;//设置PD口为输出
   PORTD=0XFF;
   
while(1)
   {
   for(k=0;k<8;k++)
   {
   PORTD&=~BIT(k);
   delay(500);
   
   PORTD|=BIT(k);
   delay(500);
   }
   }
}

相关帖子

沙发
NE5532| | 2010-10-16 22:13 | 只看该作者
C语言不能边写语句边定义变量,你的问题与AVR没有任何关系,提刀杀你的C语言老师去。

使用特权

评论回复
板凳
tyj_3| | 2010-10-17 14:36 | 只看该作者
这个与使用的编译器有关。

使用特权

评论回复
地板
areshan| | 2010-10-19 10:29 | 只看该作者
ICC的编译器只能把变量定义在每个函数的最开头,其它的编译器不是这样的!

使用特权

评论回复
5
宇宙飞船| | 2010-10-19 14:12 | 只看该作者
记那么多规则干嘛,能编译通过就接着写,不通过就改写呗。

使用特权

评论回复
6
zhaoyu2005| | 2010-10-19 17:33 | 只看该作者
4# areshan
这个可不是ICC AVR一家的,好多是这样的,好像C语言规定的:定义变量必须在函数开始,不能在中间
C++好像能随时定义(以前在哪儿看过,如果记错了,请一笑而过)

使用特权

评论回复
7
qingqiu647| | 2010-10-20 14:58 | 只看该作者
PORTD&=~BIT(k);需改一下

使用特权

评论回复
8
hackerzw| | 2010-10-20 22:33 | 只看该作者
C语言根本没入门啊。

使用特权

评论回复
9
chenczy| | 2010-10-25 10:39 | 只看该作者
哈哈,我写C还从没试过在后面定义的,还真不知道这个问题,飘过.....................

使用特权

评论回复
10
john_lee| | 2010-10-25 12:21 | 只看该作者
C89标准要求变量定义必须在程序块的开头,而C99标准允许变量定义在作用域内,访问变量语句之前的任何位置。

使用特权

评论回复
11
宇宙飞船| | 2010-10-25 22:27 | 只看该作者
还是10楼 john_lee 老兄功力深厚。知其所以然。

使用特权

评论回复
12
老鱼探戈| | 2010-10-26 12:24 | 只看该作者
习惯就好

先定义再使用是一定没有问题的

使用特权

评论回复
13
375485114| | 2010-10-26 15:14 | 只看该作者
定义变量必须在函数开始,不能在中间

使用特权

评论回复
14
jujishoudong| | 2010-10-30 11:42 | 只看该作者
这个貌似在avr单片机中所有的变量都要在程序最开始的时候定义的

使用特权

评论回复
15
jujishoudong| | 2010-10-30 11:42 | 只看该作者
这个貌似在avr单片机中所有的变量都要在程序最开始的时候定义的

使用特权

评论回复
16
mxh0506| | 2010-11-3 16:58 | 只看该作者
改成这样试试,不放在开头应该也行:
void main()
{                                        刚开始学习AVR,对一些基础性知识,不太理解
   DDRD=0XFF;//设置PD口为输出
   PORTD=0XFF;
     while(1)
     {
           uchar k;-------将此句放到PORTD=0XFF;后为什么就编译不过去了啊,
       for( k=0 ...
     }
}

使用特权

评论回复
17
believe0815| | 2010-11-7 18:18 | 只看该作者
好像IAR可以的,大哥非要中间定义就用IAR吧

使用特权

评论回复
18
achesser| | 2010-11-19 11:40 | 只看该作者
IAR 当然可以,局部(临时)变量就是用了再定义,用完就扔吧!
有过就知道IAR的好!

使用特权

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

本版积分规则

2

主题

67

帖子

1

粉丝