Помогите выеснить ошибки в коде

zugni
Offline
Зарегистрирован: 14.06.2015

помогите разобрать в этих строках 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
}  

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Зачем? Там же подписано. О.о

zugni
Offline
Зарегистрирован: 14.06.2015

как их мне исправить ? не подскажите

 

zugni
Offline
Зарегистрирован: 14.06.2015

Puhlyaviy пишет:
Зачем? Там же подписано. О.о

не подскажите где именно?

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

zugni пишет:

как их мне исправить ? не подскажите

 


На что исправить? О.о

zugni
Offline
Зарегистрирован: 14.06.2015

можно по панятнее я не совсем понимаю вас что такое О.о?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

А я не понимаю что вам нужно. Типа принесите мне вон то.

zugni
Offline
Зарегистрирован: 14.06.2015

мне нужно просто подсказать из за чего происходят эти ошибки в строке 21 и 56ой и все )

Araris
Offline
Зарегистрирован: 09.11.2012

Забавный диалог получился..

В приведенном скетче отсутствуют функции beep() и find_simular(), отчего, видимо, и "происходят эти ошибки".

Видать не весь скетч скопипастили.

zugni
Offline
Зарегистрирован: 14.06.2015

Спс а не черкнете как их написать ?

Araris
Offline
Зарегистрирован: 09.11.2012

А в первоисточнике их точно не было ? Дайте хоть ссылку, откуда скетч брали.

zugni
Offline
Зарегистрирован: 14.06.2015
Araris
Offline
Зарегистрирован: 09.11.2012

Это функции из библиотеки CyberLib, правильную версию библиотеки возьмите тут :

http://cyber-place.ru/attachment.php?s=1efd7d24273ff30c92ef3806e8b2ee15&attachmentid=1990&d=1415220985

Аналогичный случай описан здесь :

http://arduino.ru/forum/programmirovanie/robot-na-ultrazvuke

Гугл рулит !

zugni
Offline
Зарегистрирован: 14.06.2015

ясно спс как навичок отдаю должное профи

 

Araris
Offline
Зарегистрирован: 09.11.2012

С помощью Гугла (или другого поисковика) Вы можете делать то же самое ))). Для этого не надо быть профи, коим я не являюсь.

zugni
Offline
Зарегистрирован: 14.06.2015

да я не про поисковик а про то что знаете что писать в коде )

я 3 месяц голову ламаю чтобы чему то на учится но пока что без результатно(

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

3 месяца и всё еще не освоил гугл... мдааа