Программирование STM8

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

И что же вы их не убрали? Они показались вам нужными или вы просто даже не можете однозначно для себя уяснить, нужные они или нет?
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

Ключевое слово - набросок. Должно конечно насторожить - т.е. прямой копипаст может и не дать результатов. Я сделал просто копипаст, заглянул в даташит, потому что у меня не было некоторых дефайнов, переделал под свои дефайны. Запустил - сразу заработало. Если бы не заработало пришлось бы ковырятся в коде - удалять ненужные строки, добавлять комментарии и т.д. Если заработало, зачем лишние телодвижения - результат уже достигнут.
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Вы делали не набросок. Вы делали полностью законченный код. Выложенный в паблик для демонстрации и обучения. После ваших многочисленных замечаний по оформлению кода, вы обозначили свою позицию, как человек подходящий к программированию крайне педантично (что может быть и не плохо) и требовательно. Вполне логично было ожидать, что к собственному коду у вас могут оказаться требования даже выше, чем к коду кого-то другого. Но выясняется, что себе вы в состоянии позволять любые вольности и плевать на все правила. Не только по оформлению, но и по содержанию. Вы копирует абсолютно бессмысленные участки кода, а местами еще и "улучшаете" их. И вот абсолютно ничего не делающий код (т.к. таймер остановлен и большинство регистров в нулях) вида:

Код: Выделить всё

  TIM1->CR1 |= TIM1_CR1_URS;             
 
  TIM1->EGR |= TIM1_EGR_UG;               // Update Generation
  nop();
  nop();
превращается силой вашего замысла в "фешенебельный" фрагмент

Код: Выделить всё

    TIM1->CR1 |= (uint8_t)TIM1_CR1_URS;             

    TIM1->EGR |= (uint8_t)TIM1_EGR_UG;               // Update Generation
    nop();
    nop();
У вас там у всех с приведение типов какой-то бзик? Вы бы хоть посмотрели, как эти объявления выглядят в заголовках. А выглядят они, как бы вам ни было прискорбно, так:

Код: Выделить всё

#define TIM1_CR1_URS     ((uint8_t)0x04) /*!< Update Request Source mask. */
#define TIM1_EGR_UG      ((uint8_t)0x01) /*!< Update Generation mask. */
И выясняется ужасное -- они уже приведены к нужному типу. Вы как-то посетовали, что совсем быстро у вас не получится. Теперь даже понятно почему. Такое количество бессмысленной писанины действительно может отнимать изрядно времени.

Я ничего не путаю и вы как-то мне делали замечание по оформлению имен переменных? Почему же вы тогда не делали таких же замечаний киндеру? Корпоративная этика не позволяет? Как вам такое наименование переменных?

Код: Выделить всё

uint8_t data_TIM_ARR[] = {0, 127, 255};
uint8_t data_ADC[3];
В массиве с именем data_TIM_ARR хранятся значения, которые никогда не будут иметь отношение к регистру таймера ARR, но предназначены для занесения в регистр (фанфары!) CCR1L. Правда ведь, что такое наименование переменных выглядит максимально логично и естественно?

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

Ну и использование простых переменных внутри обработчика прерывания это вообще нубизм в квадрате или даже кубе. Ни вы, ни киндер ни досикус никогда не слышали, что этого нельзя делать ни при каких условиях? Вы втроем пропустили один из самых поганых кошмаров разработчика -- ошибку, которая может сколь угодно долго "спать", но вылезти в самый неподходящий момент. Есть несколько способов поставить в известность компилятор о возможном изменении содержания переменной в любое непредусмотренное нормальным code-flow время. Но вы не воспользовались ни одним из этих способов. И это мощнейший залет, от которого я даже не представляю, как вы будет отмываться. Вам нельзя доверять написание программ, т.к. вы допускаете ошибки, которые должны отсекаться еще на этапе изучения программирования.

И не надо басен, про копипаст и "набросок". Все это дерьмище не могло быть ниоткуда скопиащено, т.к. там оно было бы точно таким же дерьмищем. Это код написанный человеком "не в себе". И если вы позволяете себе копировать его без правки, увещевая, что все работает, то примите мои самые искреннейшие соболезнования.

Это вовсе не все, что я бы мог сказать по вашему чудо-коду, но так как я абсолютно уверен, что ни на вас, ни на всю вашу компанию это не произведет никакого впечатления, а будет "объяснено" самым удивительным образом, то на этом я закругляюсь. Если кто-то захочет, то могу продолжить потом.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

опять словесный понос, фу
Да эти строки только вам глаза мозолят. Главного вы упорно "стараетесь" не заметить. Вот это главное:
утверждение a5021: на одном таймере повышаются накладные расходы
доказательство обратного Kinder_Surprise: на одном таймере не повышаются накладные расходы - использован регистр RCR, проверено
Реклама
Эиком - электронные компоненты и радиодетали
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

У вас плохое зрение? Я уже давно согласился на этом форуме, что метод с repetition counter действительно работает. А вот вы не признаетесь никогда.
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

Ура - наконец получили признание поражения. Зачем тогда был весь этот понос, совершенно непонятно.
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

oleg110592 писал(а):Ура - наконец получили признание поражения.
Поражения? Вы это "поражение" могли наблюдать еще вчера в нашей с вами переписке. Только тогда почему-то оно не было "поражением". А теперь вдруг стало. Что-то произошло за истекшие сутки? Или вам просто так захотелось, чтобы возникло какое-нибудь "поражение"? А может "поражение" стало экстренно необходимо на фоне так некстати всплывшего позорного косяка (множества косяков) с кодом? Вы уж договаривайте.
Зачем тогда был весь этот понос, совершенно непонятно.
Больше всего вам должно быть непонятно, как вы втроем засыпались на такой простой (по вашим же словам) ситуации.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

а зачем после поражения было это поносное сообщение:
http://radiokot.ru/forum/viewtopic.php? ... 6#p2405246
Если опытный дядя сказал, что можно сделать на одном таймере, надо было не трепыхаться а срочно сесть за парту, до посинения читать RM и потом тихо лить слезы умиления от просветления и осознания того, что такое действительно возможно. А так получается - дядя принес решение на блюдечке, так его же потом и обгаживают, зачем это делать непонятно.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Я "дядю" спрашивал прямо и просил объяснить, как возможно сделать то, что он описывал. Дядя ответа не дал. Начал колотить понты и вываливать фейки. Херовый из дяди учитель оказался, да и выяснилось, что научить он нифига ничему не может. И дядину величайшую тайну я протумкал еще до того, как он в первый раз промычал что-то членораздельное. Можете забирать свои понты и нести их туда, где им самое место.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

дядя просто хотел научить вас думать и выложил картинку, этого было достаточно. Далее надо было включать думатель, но если его нет ничем не поможешь - можно только дать готовый результат. Надо сказать - "спасибо дядя", а не бросать какашки.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

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

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

Целуйте своего дядю, а можете еще и тетю. Пусть вас они и учат.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

НАУЧИТЬ ДУМАТЬ — САМАЯ ВАЖНАЯ ЗАДАЧА УЧИТЕЛЯ
НАУЧИТЬСЯ ДУМАТЬ — САМАЯ ВАЖНАЯ ЗАДАЧА УЧЕНИКА
http://www.psychologos.ru/articles/view ... at_vos_zn_
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

С этим, пожалуйста, в школу.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

Пойдем вдвоем, а? Дядя нас учить будет.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Дядю самого учить надо.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

Пока получалось так, что он нас учит.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Такое же представление вы хотели обставить и здесь. Обломались.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

Перевод стрелок? Мы ж вроде только что дядю обсуждали... Я то конечно плохой, и обламываюсь регулярно с этим не поспоришь. :( . Дядя хороший.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Программирование STM8

Сообщение a5021 »

Не уверен.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Программирование STM8

Сообщение oleg110592 »

Может поплакать, успокоится и потом будет видно все совершенно в другом ракурсе. Мне в детстве помогало.
Ответить

Вернуться в «Разные вопросы по МК»