Перейти к содержанию
    

Ну чё, фирмварники, будем биться с электронщиками что ли? Бред.......................

Кто такие "фирмварники", "электронщики", и за что им биться? Поясните, а то действительно какой-то бред.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто такие "фирмварники", "электронщики", и за что им биться? Поясните, а то действительно какой-то бред.

Ну, ну, когда мне человек втирает, что ему для опроса сенсора по i2c две недели надо, т.к. библиотеки в тунисе написаны, и не понять что там за программировано - эт фирмварники. если вы не из этого коллектива, то не пишите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, ну, когда мне человек втирает, что ему для опроса сенсора по i2c две недели надо, т.к. библиотеки в тунисе написаны, и не понять что там за программировано - эт фирмварники. если вы не из этого коллектива, то не пишите.

Ну, если человек за две недели не может освоить i2c, то его в любом случае гнать надо. Но точно так же надо гнать и того, кто на основе тунисских библиотек пишет проект на 100500 строк, а потом год не может довести его до ума из-за ошибок и архитектурных особенностей помянутых библиотек и элементарного незнания и нежелания изучать матчасть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, согласен я.

 

Ну что здесь например плохого:

/*******************************************************************************
* Function Name  : I2C_GenerateSTART
* Description    : Generates I2Cx communication START condition.
* Input          : - I2Cx: where x can be 1 or 2 to select the I2C peripheral.
*                  - NewState: new state of the I2C START condition generation.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None.
*******************************************************************************/
void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_I2C_ALL_PERIPH(I2Cx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Generate a START condition */
    I2Cx->CR1 |= CR1_START_Set;
  }
  else
  {
    /* Disable the START condition generation */
    I2Cx->CR1 &= CR1_START_Reset;
  }
}

Изменено пользователем andron86

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну что здесь например плохого:

Насчет этого не скажу. Но посмотрите, например, как сделаны в библиотеке функции конфигурирования портов в STM32. Это ж сколько кода на них ушло! Я был слегка озадачен. Но, не имея опыта, использовал. А мог бы сразу написать, например, такое:

http://electronix.ru/forum/index.php?showt...st&p=918437

Разбираться в библиотечных функциях - только время зря тратить. Вместо этого лучше разобраться в самих регистрах и битах STM32.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вместо этого лучше разобраться в самих регистрах и битах STM32.

 

Ну, давайте предположим, разобрались мы в битах и регистрах некого периферийного модуля STM32, как быть на практике с его конфигурированием и дальнейшей работой, методом проб и ошибок? Все таки, хотелось бы взглянуть на последовательность операций, рекомендованных первоисточником, + «поиметь» пример сколько-нибудь крупного проекта, написанного профи. К примеру, до использования STM32 я 2 года занимался программированием PIC24, у них куда лучше все это документировано, к описанию каждого периферийного модуля прилагается код на ассемблере (периферийная библиотека также имеется), иногда даже несколько для каждого конкретного случая. Мне стоило всего лишь перебить его на Си. В случае же с STM32 такого удобства я не нашел, пришлось ковыряться в периферийной библиотеке STM32 и разбираться по кусочкам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, давайте предположим, разобрались мы в битах и регистрах некого периферийного модуля STM32, как быть на практике с его конфигурированием и дальнейшей работой, методом проб и ошибок? Все таки, хотелось бы взглянуть последовательность операций, рекомендованных первоисточником, + «поиметь» пример сколько-нибудь крупного проекта, написанного профи.

Я - не профи, у меня опыта меньше вашего. Но сейчас я смотрю на примеры из библиотеки, только, чтобы понять последовательность действий. Пишу, но почему методом проб и ошибок? В соответствии с описанными регистрами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я - не профи, у меня опыта меньше вашего. Но сейчас я смотрю на примеры из библиотеки, только, чтобы понять последовательность действий. Пишу, но почему методом проб и ошибок? В соответствии с описанными регистрами.

​Гы, Вам про стартап говорят, а не законченном коде :w00t:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

​Гы, Вам про стартап говорят, а не законченном коде :w00t:

А Вам про старт с помощью кое как сляпанной индейской библиотеки уже отвечали.

Потом в этом коде сам чёрт не разберётся, где вместо быстрой прямой записи в регистр периферии вызывается громоздкая функция, которая перебирает кучу ненужных параметров :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

че вы паритесь, возьмите рефман+еррату да запустите тот несчастный и2ц. сам щас иду запускать :)

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

 

sonycman, +1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

......

Разбираться в библиотечных функциях - только время зря тратить. Вместо этого лучше разобраться в самих регистрах и битах STM32.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...