打印
[AVR单片机]

新手求助!基于AVR的频率可调LED

[复制链接]
899|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小弟刚学单片机不久,做的是一个基于AVR的频率可调的LED。

芯片用的是ATMEGA328

用Proteus连的电路图如下:
A0口接收并量化电位器输出的电压值,然后通过13口将数字量输出驱动LED电路。




烤入的程序如下:

int led=13;
int value=A0;
int val=0;
void setup()
{
pinMode(led,OUTPUT);
Serial.begin(9600);//设置波特率9600
}
void loop()
{
val=analogRead(value);
Serial.println(val);//通过串口在电脑上出数字量的值
LED_con(val);
}
void LED_con(int val)
{
digitalWrite(led,HIGH);
delay(val/2);
digitalWrite(led,LOW);
delay(val/2);
}




仿真时出现   invalid opcode  0xff39 at pc=0x0004


各位大神看看有什么问题,帮小弟解决下,万分感谢

相关帖子

沙发
448456603|  楼主 | 2015-4-16 12:58 | 只看该作者
补充下:
写了两个程序,但仿真时出现同样状况

程序2如下:
int led = 13;
int value = A0;
int val = 0;
byte high = 0;
byte low = 0;
int i = 0;
void setup()
{
pinMode(led,OUTPUT); //led用于输出
Serial.begin(9600);//设置波特率为9600
}
void loop()
{
val=analogRead(value);
Serial.println(val);//显示val的值
for(i=0;i<10;i++)
{
if(val&B1)
{
digitalWrite(led,HIGH);//设置上拉电阻
delay(200);
}
else
{
digitalWrite(led,LOW);
delay(200);
}
val>>=1;
}
}

使用特权

评论回复
板凳
bluecup| | 2015-4-16 13:14 | 只看该作者
先了解原理,要用PWM,调占空比的。。

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝