Как создать <avr/delay.h> в Arduino?
- Войдите на сайт для отправки комментариев
Ребята,помогите пожалуйста. Взял код с этого сайта http://habrahabr.ru/post/145653/
Библиотеки <IRremote.h> и <EEPROM.h>добавил в программе Ардуино, а где взять <avr/delay.h> не знаю. Подскажите пожалуйста,где эту библиотеку взять??
#include <IRremote.h>
#include <avr/delay.h>
#include <EEPROM.h>
#define button 7
#define speaker 11
#define lamp 6
IRrecv irrecv(2); //вход для ик приемника
decode_results results;
unsigned long ir_command;
uint8_t swt, count, state = 0; //статус лампочки
void setup()
{
pinMode(speaker, OUTPUT);//громкоговоритель
pinMode(button, INPUT);//вход для кнопки
digitalWrite(button,HIGH);//включить подтяжку
pinMode(lamp, OUTPUT);//лампочка
irrecv.enableIRIn(); // включить приемник
}
void loop()
{
swt=digitalRead(button);
count=0;
while(swt==0)
{
if(count>30)
{
beep(100,400);
for(unsigned long i=0; i<2000000; i++)
{
if (irrecv.decode(&results))
{
SaveEEPROM(results.value);
irrecv.resume();
break;
}
}
beep(30,900);
break;
}
count++;
swt=digitalRead(button);
_delay_ms(100);
}
ir_command=LoadEEPROM();
if (irrecv.decode(&results))
{
if(ir_command==results.value)
{
state=~state;
digitalWrite(lamp, state);
beep(10,300);
_delay_ms(700);
}
irrecv.resume();
} else if(count>1)
{
state=~state;
digitalWrite(lamp, state);
beep(10,500);
_delay_ms(100);
}
}
void SaveEEPROM(unsigned long ir_code)
{
EEPROM.write(0, ir_code & 0xFF);
EEPROM.write(1, (ir_code & 0xFF00) >> 8);
EEPROM.write(2, (ir_code & 0xFF0000) >> 16);
EEPROM.write(3, (ir_code & 0xFF000000) >> 24);
}
unsigned long LoadEEPROM()
{
byte val = EEPROM.read(3);
unsigned long ir_code=val;
val = EEPROM.read(2);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(1);
ir_code= (ir_code << 8) | val;
val = EEPROM.read(0);
ir_code= (ir_code << 8) | val;
return ir_code;
}
void beep(byte dur, word frq)
{
dur=(1000/frq)*dur;
for(byte i=0; i<dur; i++)
{
digitalWrite(speaker, HIGH);
_delay_us(frq);
digitalWrite(speaker, LOW);
_delay_us(frq);
}
}
Ребята,помогите пожалуйста. Взял код с этого сайта http://habrahabr.ru/post/145653/
Библиотеки <IRremote.h> и <EEPROM.h>добавил в программе Ардуино, а где взять <avr/delay.h> не знаю. Подскажите пожалуйста,где эту библиотеку взять??
Ребята,помогите пожалуйста. Взял код с этого сайта http://habrahabr.ru/post/145653/
Библиотеки <IRremote.h> и <EEPROM.h>добавил в программе Ардуино, а где взять <avr/delay.h> не знаю. Подскажите пожалуйста,где эту библиотеку взять??
Ребята,помогите пожалуйста. Взял код с этого сайта http://habrahabr.ru/post/145653/
Библиотеки <IRremote.h> и <EEPROM.h>добавил в программе Ардуино, а где взять <avr/delay.h> не знаю. Подскажите пожалуйста,где эту библиотеку взять??
Уважаемый, а для чего вам сея библиотека!! Она ведь встроена в язык Arduino и вот ссылочки http://arduino.ru/Reference/Delay здесь описанно применение Delay чтобы создавать задержку миллисекундах
а вот эта ссылка http://arduino.ru/Reference/DelayMicroseconds а здесь применение выдержки в микросекундах
Ребята,помогите пожалуйста. Взял код с этого сайта http://habrahabr.ru/post/145653/
Библиотеки <IRremote.h> и <EEPROM.h>добавил в программе Ардуино, а где взять <avr/delay.h> не знаю. Подскажите пожалуйста,где эту библиотеку взять??
строка <avr/delay.h> избыточна - delay.h находится в стандартном дистрибутиве и указывать ея в скетче не обязательно для использования функции delay.
Спасибо ребята! Получилось!Работает!)
Я то же попробовал этот код
работает, если убираю последнюю функцию (комментирую все ее потроха)
А с ней ругается при компиляции, и похоже именно на delay
В связи с этим вопрос
Синтаксис встроеной функции: delay(ms), а в примере: _delay_us и _delay_ms
Как правильно и почему конструкция не работает?
void beep(byte dur, word frq)
{
dur=(1000/frq)*dur;
for(byte i=0; i<dur; i++)
{
digitalWrite(speaker, HIGH);
_delay_us(frq);
digitalWrite(speaker, LOW);
_delay_us(frq);
}
А с ней ругается при компиляции, и похоже именно на delay
Приведите полный текст ошибки. И полный текст скетча, который не компилируется (код вставляйте по правилам).
Код собственно в топике
а ругается так:(я все таки убрал много буков, но по моему затык где то здесь, а топикастер писал, что все работает)
_delay_us это delayMicroseconds()
_delay_ms это delay()
а зачем такая разно...опица?
Блин, перестала ругаться после указанной замены
Придется динамик подключать :-)
Еще вопрос по синтаксису, вызванный этим кодом:
это то же одинаковые конструкции?
state=~state; и state=!state;
Еще вопрос по синтаксису, вызванный этим кодом:
это то же одинаковые конструкции?
state=~state; и state=!state;
Похоже вы простой как валенок . Это разные функции как & ,&& , | ,||.
~ побитовое отрицание
! логическое отрицание
Похоже вы простой как валенок . Это разные функции как & ,&& , | ,||.
[/quote]
Неа
Как чайник
Извините