Перейти к содержимому


Фотография

Arduino требуется помощь в С++

СОС СОС SOS SOS!

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 umt

umt

Отправлено 23 Май 2019 - 20:51

есть MPU-92.65 (mpu9255) гироскоп, акселерометр и магнитометр есть файлы ардуино *.CPP короче нужно перебить код так что бы были видны как регистры и значения используется. то есть простенький код но вся заваруха варится в файле *.cpp  но мне нужно вывести на чистую воду всех чертей и привести в понятный хоть и длинный код. потому что я хочу перекодировать на плис это все.

 

отрывок кода в  файле *.h :

const uint8_t GYRO_CONFIG = 0x1B;
const uint8_t GYRO_FS_SEL_2000DPS = 0x18;

Так как я не программист не пойму что обозначает в файле *.cpp:

// setting the gyro range to 2000DPS as default
  if(writeRegister(GYRO_CONFIG,GYRO_FS_SEL_2000DPS) < 0)     {    return -8;  }

Это типо если записать регистр , конфиг регистра и значение меньше нуля то декларировать -8 ?

 

Нашел вот такую инфу, но как не странно я в нем с моим техническим образованием радиоэлектронщика ничего не понял

 

http://www.fredosaur...ons/return.html

 

C++ Notes: Function return Statement

Return statement
The return statement stops execution and returns to the calling function. When a return statement is executed, the function is terminated immediately at that point, regardless of whether it's in the middle of a loop, etc.

 

 

 

Пожалуйста помогите разобраться

Прикрепленные файлы

  • Прикрепленный файл  src.zip   9,89К   6 скачиваний

Сообщение отредактировал eRIC: 23 Май 2019 - 21:55


#2 IT Lessons

IT Lessons

Отправлено 23 Май 2019 - 21:41

Так как вы не программист (с ваших слов), то я вам объясню по простому: вы сами не понимаете чего просите (без обид).

 

К сожалению, техническое образование не помогло еще  ни одному технарю,  прочитав только лишь об операторе return, понять язык C++.

Что значит: "так что бы были видны как регистры и значения используется" - расшифруйте свою просьбу.

 

"так как я не программист не пойму что обозначает в файле *.cpp :" - в вашем исходном коде, кто-то (а именно программист по имени Brian R Taylor) очень старательно прокомментировал буквально каждую функцию, вы просто прочтите их и поймете все.


Сообщение отредактировал eRIC: 23 Май 2019 - 21:56


#3 umt

umt

Отправлено 24 Май 2019 - 16:26

ЭЭЭ нет , комментарии то понятно. вот именно построение интересует(то чего хочу):

if(writeRegister(PWR_MGMNT_1,CLOCK_SEL_PLL) < 0){   return -4;} <--если(записать регистр(регистр,значение))<0 <-- ну на кое это ? ну на кое  -4 ?
  // check the WHO AM I byte, expected value is 0x71 (decimal 113) or 0x73 (decimal 115)
  if((whoAmI() != 113)&&(whoAmI() != 115)){   return -5;}   <-----если(записать регистр(регистр,значение))<0 <-- ну накое это ? ну накое  -4?
  
// enable accelerometer and gyro
  writeRegister(PWR_MGMNT_2,SEN_ENABLE  <----------- вот это понятно и обязательно для сенсора это и ежу понятно

 // setting accel range to 16G as default
  writeRegister(ACCEL_CONFIG,ACCEL_FS_SEL_16G    <----------- вот это понятно и обязательно для сенсора это и ежу понятно

Сообщение отредактировал eRIC: 24 Май 2019 - 17:01
форматирование


#4 eRIC

eRIC
  • Модераторы
  • Cообщений: 1 701
  • Регистрация: 18-11-2004

Отправлено 24 Май 2019 - 17:16

umt, для того чтобы понимать кто и куда какие значения записывать и передавать, сперва нужно изучить спецификацию самого оборудования. вы ее изучили? Brian R Taylor автор кода на своей странице написал откуда -4, -8 и т.д. для того и иного компонента.



#5 eRIC

eRIC
  • Модераторы
  • Cообщений: 1 701
  • Регистрация: 18-11-2004

Отправлено 24 Май 2019 - 17:33

if(writeRegister(PWR_MGMNT_1,CLOCK_SEL_PLL) < 0){   return -4;} <--если(записать регистр(регистр,значение))<0 <-- ну на кое это ? ну на кое  -4?

означает следующее: если функция операции записи регистра writeRegister(0x6B, 0x01) вернет отрицательное значение (< 0), то тогда программе возвращается код -4

 

MPU9250.h - является заголовочным файлом/библиотекой, который содержит все константы, переменные, функции и значения по умолчанию

MPU9250.cpp - является управляемой программой, которая использует MPU9250.h файл для работы и управления

 

возможно у автора кода свои предпочтения и он выбирал то что ему нужно, либо содержат ошибки. для полной картины, нужно спеку оборудования поднимать и изучать :)


Сообщение отредактировал eRIC: 24 Май 2019 - 17:39


#6 umt

umt

Отправлено 24 Май 2019 - 21:04

означает следующее: если функция операции записи регистра writeRegister(0x6B, 0x01) вернет отрицательное значение (< 0), то тогда программе возвращается код -4

 

вот это и нужно было, но правда чем дальше тем еще вопросов больше. а -4 какую то функцию вызывает или идет в какую то функцию как еда с соусом ?

 

а даташит ничего не дает. пытался пытался все время дает какие то вскоки или наоборот падает, но сигнал правдоподобный в картинке показал

 

Прикрепленные изображения

  • I_expected.jpg

Сообщение отредактировал umt: 24 Май 2019 - 21:10


#7 eRIC

eRIC
  • Модераторы
  • Cообщений: 1 701
  • Регистрация: 18-11-2004

Отправлено 26 Май 2019 - 23:10

вот это и нужно было, но правда чем дальше тем еще вопросов больше. а -4 какую то функцию вызывает или идет в какую то функцию как еда с соусом ?

нет не вызывает, функция int MPU9250::begin(), которая отвечает за старт коммуникации с MPU-9250, внутри себя выполняет все описанные в коде действия и в итоге при успешной инициализации с MPU-9250 должен вернуть позитивное целое 1:

// successful init, return 1
  return 1;

если до этой строчки, где-то в коде выше произойдет что сработает к примеру return -4, то функция int MPU9250::begin() завершит свое дальнейшее выполнение и возвратит управляющей программе код -4. управляющая программа уже получив значение выполняет уже свои условия, продолжает дальше работать или выдает предупреждение (в зависимости как был написан код).

 

имейте в виду, что помимо этих двух файлов, в вашем проекте участвуют еще дополнительные файлы специфичные для Arduino: "Arduino.h", "Wire.h", "SPI.h"

они также могут по цепочке включать дополнительные файлы. исполнение программы нужно рассматривать в контексте проекта, куда входят и вовлечены различные библиотеки






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных