Помогите выеснить ошибки в коде
- Войдите на сайт для отправки комментариев
Пт, 31/07/2015 - 18:26
помогите разобрать в этих строках 21,56
#include <CyberLib.h> #define encoders_init D2_In; D3_In; D2_High; D3_High #define motors_init D4_Out; D5_Out; D6_Out; D7_Out #define robot_go D4_Low; D5_High; D6_High; D7_Low #define robot_stop D4_Low; D5_Low; D6_Low; D7_Low #define robot_left D4_Low; D5_High; D6_Low; D7_Low #define robot_right D4_Low; D5_Low; D6_High; D7_Low #define robot_rotation_left D4_Low; D5_High; D6_Low; D7_High #define size_buff 5 //размер массива sensor uint16_t sensor[size_buff]; //массив для хранения замеров дальномера volatile int8_t course=0; void setup() { motors_init; //инициализация выходов моторов encoders_init; //инициализация входов Энкодеров D14_Out; D14_Low; //пин trig ультразвукового сонара D15_In; //пин echo ультразвукового сонара for(uint8_t i=0; i<12; i++) beep(70, random(100, 2000)); //звуковое оповещение готовности робота IntOn(); //включить прерывания robot_go; //поехали!!! } void loop() {Start uint16_t dist=GetDistance(); //делаем замер if( dist < 40) Rotation(); //если дистанция меньше 38см if( dist > 39 && course==0) robot_go; End;} //*************************************************** void MotorL() // обработка внешнего прерывания левое колесо { course--; if(course > 0) { robot_left; }else{ robot_right;} } void MotorR() // обработка внешнего прерывания правое колесо { course++; if(course < 0){ robot_right; }else{ robot_left;} } //*************************************************** uint16_t GetDistance() { uint16_t dist; for (uint8_t i = 0; i < size_buff; ++i) //производим несколько замеров { D14_High; delay_us(10); D14_Low; //запустить измерение dist = pulseIn(15,HIGH); //считываем длительность времени прохождения эха delay_ms((50000-dist)/1000); //задержка между посылками sensor[i]=dist; } dist=(find_similar(sensor, size_buff, 58))/58; // //фильтруем показания датчика и переводим в см return dist; } //*************************************************** void Rotation() { IntOff(); robot_rotation_left; delay_ms(180); robot_stop; course=0; IntOn(); } //*************************************************** void IntOn() { attachInterrupt(0, MotorL, RISING); // настроить срабатывание прерывания interrupt0 pin 2 по перерпапду с низкого (Low) на высокий(HIGH) attachInterrupt(1, MotorR, RISING); // настроить срабатывание прерывания interrupt1 pin 3 по перерпапду с низкого (Low) на высокий(HIGH) } void IntOff() { detachInterrupt(0); // отключить срабатывание прерывания interrupt0 detachInterrupt(1); // отключить срабатывание прерывания interrupt1 }
Зачем? Там же подписано. О.о
как их мне исправить ? не подскажите
не подскажите где именно?
как их мне исправить ? не подскажите
На что исправить? О.о
можно по панятнее я не совсем понимаю вас что такое О.о?
А я не понимаю что вам нужно. Типа принесите мне вон то.
мне нужно просто подсказать из за чего происходят эти ошибки в строке 21 и 56ой и все )
Забавный диалог получился..
В приведенном скетче отсутствуют функции beep() и find_simular(), отчего, видимо, и "происходят эти ошибки".
Видать не весь скетч скопипастили.
Спс а не черкнете как их написать ?
А в первоисточнике их точно не было ? Дайте хоть ссылку, откуда скетч брали.
http://www.cyber-place.ru/showthread.php?t=630
Это функции из библиотеки CyberLib, правильную версию библиотеки возьмите тут :
http://cyber-place.ru/attachment.php?s=1efd7d24273ff30c92ef3806e8b2ee15&attachmentid=1990&d=1415220985
Аналогичный случай описан здесь :
http://arduino.ru/forum/programmirovanie/robot-na-ultrazvuke
Гугл рулит !
ясно спс как навичок отдаю должное профи
С помощью Гугла (или другого поисковика) Вы можете делать то же самое ))). Для этого не надо быть профи, коим я не являюсь.
да я не про поисковик а про то что знаете что писать в коде )
я 3 месяц голову ламаю чтобы чему то на учится но пока что без результатно(
3 месяца и всё еще не освоил гугл... мдааа