Программирование STM8
Re: Программирование STM8
И что же вы их не убрали? Они показались вам нужными или вы просто даже не можете однозначно для себя уяснить, нужные они или нет?
- Реклама
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Ключевое слово - набросок. Должно конечно насторожить - т.е. прямой копипаст может и не дать результатов. Я сделал просто копипаст, заглянул в даташит, потому что у меня не было некоторых дефайнов, переделал под свои дефайны. Запустил - сразу заработало. Если бы не заработало пришлось бы ковырятся в коде - удалять ненужные строки, добавлять комментарии и т.д. Если заработало, зачем лишние телодвижения - результат уже достигнут.
Re: Программирование STM8
Вы делали не набросок. Вы делали полностью законченный код. Выложенный в паблик для демонстрации и обучения. После ваших многочисленных замечаний по оформлению кода, вы обозначили свою позицию, как человек подходящий к программированию крайне педантично (что может быть и не плохо) и требовательно. Вполне логично было ожидать, что к собственному коду у вас могут оказаться требования даже выше, чем к коду кого-то другого. Но выясняется, что себе вы в состоянии позволять любые вольности и плевать на все правила. Не только по оформлению, но и по содержанию. Вы копирует абсолютно бессмысленные участки кода, а местами еще и "улучшаете" их. И вот абсолютно ничего не делающий код (т.к. таймер остановлен и большинство регистров в нулях) вида:
превращается силой вашего замысла в "фешенебельный" фрагмент
У вас там у всех с приведение типов какой-то бзик? Вы бы хоть посмотрели, как эти объявления выглядят в заголовках. А выглядят они, как бы вам ни было прискорбно, так:
И выясняется ужасное -- они уже приведены к нужному типу. Вы как-то посетовали, что совсем быстро у вас не получится. Теперь даже понятно почему. Такое количество бессмысленной писанины действительно может отнимать изрядно времени.
Я ничего не путаю и вы как-то мне делали замечание по оформлению имен переменных? Почему же вы тогда не делали таких же замечаний киндеру? Корпоративная этика не позволяет? Как вам такое наименование переменных?
В массиве с именем data_TIM_ARR хранятся значения, которые никогда не будут иметь отношение к регистру таймера ARR, но предназначены для занесения в регистр (фанфары!) CCR1L. Правда ведь, что такое наименование переменных выглядит максимально логично и естественно?
Уважаемый Олег, если вам когда-то еще вздумается поучительно рассуждать об оформлении кода, я рассмеюсь вам в лицо. Вы заслуживаете.
Ну и использование простых переменных внутри обработчика прерывания это вообще нубизм в квадрате или даже кубе. Ни вы, ни киндер ни досикус никогда не слышали, что этого нельзя делать ни при каких условиях? Вы втроем пропустили один из самых поганых кошмаров разработчика -- ошибку, которая может сколь угодно долго "спать", но вылезти в самый неподходящий момент. Есть несколько способов поставить в известность компилятор о возможном изменении содержания переменной в любое непредусмотренное нормальным code-flow время. Но вы не воспользовались ни одним из этих способов. И это мощнейший залет, от которого я даже не представляю, как вы будет отмываться. Вам нельзя доверять написание программ, т.к. вы допускаете ошибки, которые должны отсекаться еще на этапе изучения программирования.
И не надо басен, про копипаст и "набросок". Все это дерьмище не могло быть ниоткуда скопиащено, т.к. там оно было бы точно таким же дерьмищем. Это код написанный человеком "не в себе". И если вы позволяете себе копировать его без правки, увещевая, что все работает, то примите мои самые искреннейшие соболезнования.
Это вовсе не все, что я бы мог сказать по вашему чудо-коду, но так как я абсолютно уверен, что ни на вас, ни на всю вашу компанию это не произведет никакого впечатления, а будет "объяснено" самым удивительным образом, то на этом я закругляюсь. Если кто-то захочет, то могу продолжить потом.
Код: Выделить всё
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];Уважаемый Олег, если вам когда-то еще вздумается поучительно рассуждать об оформлении кода, я рассмеюсь вам в лицо. Вы заслуживаете.
Ну и использование простых переменных внутри обработчика прерывания это вообще нубизм в квадрате или даже кубе. Ни вы, ни киндер ни досикус никогда не слышали, что этого нельзя делать ни при каких условиях? Вы втроем пропустили один из самых поганых кошмаров разработчика -- ошибку, которая может сколь угодно долго "спать", но вылезти в самый неподходящий момент. Есть несколько способов поставить в известность компилятор о возможном изменении содержания переменной в любое непредусмотренное нормальным code-flow время. Но вы не воспользовались ни одним из этих способов. И это мощнейший залет, от которого я даже не представляю, как вы будет отмываться. Вам нельзя доверять написание программ, т.к. вы допускаете ошибки, которые должны отсекаться еще на этапе изучения программирования.
И не надо басен, про копипаст и "набросок". Все это дерьмище не могло быть ниоткуда скопиащено, т.к. там оно было бы точно таким же дерьмищем. Это код написанный человеком "не в себе". И если вы позволяете себе копировать его без правки, увещевая, что все работает, то примите мои самые искреннейшие соболезнования.
Это вовсе не все, что я бы мог сказать по вашему чудо-коду, но так как я абсолютно уверен, что ни на вас, ни на всю вашу компанию это не произведет никакого впечатления, а будет "объяснено" самым удивительным образом, то на этом я закругляюсь. Если кто-то захочет, то могу продолжить потом.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
опять словесный понос, фу
Да эти строки только вам глаза мозолят. Главного вы упорно "стараетесь" не заметить. Вот это главное:
утверждение a5021: на одном таймере повышаются накладные расходы
доказательство обратного Kinder_Surprise: на одном таймере не повышаются накладные расходы - использован регистр RCR, проверено
Да эти строки только вам глаза мозолят. Главного вы упорно "стараетесь" не заметить. Вот это главное:
утверждение a5021: на одном таймере повышаются накладные расходы
доказательство обратного Kinder_Surprise: на одном таймере не повышаются накладные расходы - использован регистр RCR, проверено
Re: Программирование STM8
У вас плохое зрение? Я уже давно согласился на этом форуме, что метод с repetition counter действительно работает. А вот вы не признаетесь никогда.
- Реклама
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Ура - наконец получили признание поражения. Зачем тогда был весь этот понос, совершенно непонятно.
Re: Программирование STM8
Поражения? Вы это "поражение" могли наблюдать еще вчера в нашей с вами переписке. Только тогда почему-то оно не было "поражением". А теперь вдруг стало. Что-то произошло за истекшие сутки? Или вам просто так захотелось, чтобы возникло какое-нибудь "поражение"? А может "поражение" стало экстренно необходимо на фоне так некстати всплывшего позорного косяка (множества косяков) с кодом? Вы уж договаривайте.oleg110592 писал(а):Ура - наконец получили признание поражения.
Больше всего вам должно быть непонятно, как вы втроем засыпались на такой простой (по вашим же словам) ситуации.Зачем тогда был весь этот понос, совершенно непонятно.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
а зачем после поражения было это поносное сообщение:
http://radiokot.ru/forum/viewtopic.php? ... 6#p2405246
Если опытный дядя сказал, что можно сделать на одном таймере, надо было не трепыхаться а срочно сесть за парту, до посинения читать RM и потом тихо лить слезы умиления от просветления и осознания того, что такое действительно возможно. А так получается - дядя принес решение на блюдечке, так его же потом и обгаживают, зачем это делать непонятно.
http://radiokot.ru/forum/viewtopic.php? ... 6#p2405246
Если опытный дядя сказал, что можно сделать на одном таймере, надо было не трепыхаться а срочно сесть за парту, до посинения читать RM и потом тихо лить слезы умиления от просветления и осознания того, что такое действительно возможно. А так получается - дядя принес решение на блюдечке, так его же потом и обгаживают, зачем это делать непонятно.
Re: Программирование STM8
Я "дядю" спрашивал прямо и просил объяснить, как возможно сделать то, что он описывал. Дядя ответа не дал. Начал колотить понты и вываливать фейки. Херовый из дяди учитель оказался, да и выяснилось, что научить он нифига ничему не может. И дядину величайшую тайну я протумкал еще до того, как он в первый раз промычал что-то членораздельное. Можете забирать свои понты и нести их туда, где им самое место.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
дядя просто хотел научить вас думать и выложил картинку, этого было достаточно. Далее надо было включать думатель, но если его нет ничем не поможешь - можно только дать готовый результат. Надо сказать - "спасибо дядя", а не бросать какашки.
Re: Программирование STM8
Мысль о том, что можно кого-то научить думать, сама по себе является доказательством неспособности думать. А на фоне педагогических талантов иных учителей, картина приобретает и вовсе весьма прескверные очертания.
Картинку ваш дядя выложил фейковую и это стало понятно сразу. Не могло быть таких частот на стм8. Но было интересно, что будет дальше. Дальше у дяди случился позор вместо триумфа, но он этого и заслужил.
Целуйте своего дядю, а можете еще и тетю. Пусть вас они и учат.
Картинку ваш дядя выложил фейковую и это стало понятно сразу. Не могло быть таких частот на стм8. Но было интересно, что будет дальше. Дальше у дяди случился позор вместо триумфа, но он этого и заслужил.
Целуйте своего дядю, а можете еще и тетю. Пусть вас они и учат.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
НАУЧИТЬ ДУМАТЬ — САМАЯ ВАЖНАЯ ЗАДАЧА УЧИТЕЛЯ
НАУЧИТЬСЯ ДУМАТЬ — САМАЯ ВАЖНАЯ ЗАДАЧА УЧЕНИКА
http://www.psychologos.ru/articles/view ... at_vos_zn_
НАУЧИТЬСЯ ДУМАТЬ — САМАЯ ВАЖНАЯ ЗАДАЧА УЧЕНИКА
http://www.psychologos.ru/articles/view ... at_vos_zn_
Re: Программирование STM8
С этим, пожалуйста, в школу.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Пойдем вдвоем, а? Дядя нас учить будет.
Re: Программирование STM8
Дядю самого учить надо.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Пока получалось так, что он нас учит.
Re: Программирование STM8
Такое же представление вы хотели обставить и здесь. Обломались.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Перевод стрелок? Мы ж вроде только что дядю обсуждали... Я то конечно плохой, и обламываюсь регулярно с этим не поспоришь.
. Дядя хороший.
Re: Программирование STM8
Не уверен.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Может поплакать, успокоится и потом будет видно все совершенно в другом ракурсе. Мне в детстве помогало.


