打印
[AVR单片机]

新人请教,4种闪烁方式交替循环的彩灯编码出现问题

[复制链接]
978|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kumechacha|  楼主 | 2013-10-23 21:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我按照网上找到的程序打如下,我用CVAVR编译时出现错误: function return type 'int' doesn't match its previous declaration: 'unsigned char' from line: 33,提示我没有返回值吗?想知道哪里出错
#include <mega16.h>
#include <stdlib.h >
#include <delay.h>
void task1(void) // 左移循环 2轮
{
unsigned char  position,i;
position = 0;
i = 16;
   while(i--)
{
PORTA = ~(0x80 >> position);
   if(++position >= 8)
position = 0;
delay_ms(500);
}
PORTA=0xFF;
}void task2(void) //右移循环 2轮
{
unsigned char  position,i;
position = 0;
i = 16;
   while(i--)
{
PORTA = ~(1 << position);
   if(++position >= 8)
position = 0;
delay_ms(500);
}
PORTA=0xFF;
}void task3(void) //间隔点亮,明暗交替
{
bit position;
unsigned char i;
position = 1;
i = 16;
   while(i--)
{
   if(position )
{
PORTA = 0b10101010;
}
else
{
PORTA = 0b01010101;
}
position = !position;
delay_ms(500);
}
PORTA=0xFF;
}void task4(void) // 随机点亮
{
unsigned char i;
i = 16;
   while(i--)
{
PORTA = (unsigned  char)rand();
delay_ms(500);
}
PORTA=0xFF;
} void main(void) //主函数
{
PORTA=0xFF;
DDRA=0xFF;
while (1)
{
task1(); delay_ms(500);
task2(); delay_ms(500);
task3(); delay_ms(500);
task4(); delay_ms(500);
};
}

相关帖子

沙发
qin552011373| | 2013-10-24 13:35 | 只看该作者
用编译器定位一下哪一行出的问题,修改一下帖子再帮你回答

使用特权

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

本版积分规则

2

主题

2

帖子

0

粉丝