tonyk_av 45 23 августа Опубликовано 23 августа · Жалоба 1 hour ago, EdgeAligned said: не мог понять, где именно "запрещенное слово" в тексте Вспомнился старый анекдот (заодно и проверим детектор запрещённых слов)Ж Quote - Дети, запишите предложение: "В углу скребет мышь". - Марьванн, а кто такой "скр"? - СКР, Вовочка, это Следственный комитет России. Ха! Не сработал. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 23 августа Опубликовано 23 августа · Жалоба У нас было "А кто такой Вуглускр?" 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 23 августа Опубликовано 23 августа · Жалоба 5 часов назад, EdgeAligned сказал: Тест экономит место, поскольку они уже есть в заголовочном файле, а нормальная IDE при наведении мышки показывает значения битовых масок, и при щелчке можно перейти в заголовочник прямо к описанию Поэтому, даже если программист убежал в другую контору, описания битов никуда не денутся, они остаются в заголовочнике и легко просматриваются. И здесь у вас - классический пример индусского кода. И проще послать подальше, чем реально разгрeбать портянки в попытке найти ошибку PS. Блин, я раз пять переписывал этот текст, и не мог понять, где именно "запрещенное слово" в тексте. А оказалось, что приличное слово "разгр/е/бать" считается тут неприличным 🙂 https://electronix.ru/forum/topic/188090-zapreschennye-slova/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 15 23 августа Опубликовано 23 августа · Жалоба 21 hours ago, firstvald said: стойкое ощущение, что что- то с обнаружением шума на линии приводит к такому результату рандомные данные на входе заставляют алгоритм ходить по закоулкам программы, в которые он даже не заглядывает при нормальной работе. можно ловить на этапе написания кода, если внедрить embedded software testing hello word для QA 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 23 августа Опубликовано 23 августа · Жалоба 8 hours ago, EdgeAligned said: Тест экономит место, поскольку они уже есть в заголовочном файле, а нормальная IDE при наведении мышки показывает значения битовых масок, и при щелчке можно перейти в заголовочник прямо к описанию Поэтому, даже если программист убежал в другую контору, описания битов никуда не денутся, они остаются в заголовочнике и легко просматриваются. И здесь у вас - классический пример индусского кода. И проще послать подальше, чем реально разгрeбать портянки в попытке найти ошибку PS. Блин, я раз пять переписывал этот текст, и не мог понять, где именно "запрещенное слово" в тексте. А оказалось, что приличное слово "разгр/е/бать" считается тут неприличным 🙂 ааа. когда был модером на одном замечательном форуме то движек обучили всем всем нехорошим словам. писать посты стало невозможно. в любом предложении он находил матюги там, где даже не подумаешь. 7 hours ago, EdgeAligned said: Ладно, так и быть, показываю, как можно обходиться без вставки описания битов в рабочий текст: Так же, запись usart_sr_my&USART_ISR_TXE обычно принято писать с пробелами: usart_sr_my & USART_ISR_TXE дабы визуально был заметнее оператор и понятнее было, что там именно операция, а не набор букв. Небрежность в оформлении создает общее говнопредставление. В общем, в своем говнокоде, будьте любезны, разбирайтесь уж сами 🙂 замечательна жизнь у людей которым "ааа где код мы тут не экстрасенсы". выкладываешь код "разбирайтесь сами". это с точки профессионализма ноль называется. 3 hours ago, kpv said: рандомные данные на входе заставляют алгоритм ходить по закоулкам программы, в которые он даже не заглядывает при нормальной работе. можно ловить на этапе написания кода, если внедрить embedded software testing hello word для QA я уже подумал, что может не само прерывание, а то что за ним. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 23 августа Опубликовано 23 августа (изменено) · Жалоба Есть слова типа разгр/е/б/ать и употре/б/л/я/ть, у которых вторая половина слова - чисто матюковая. -------------------- Если честно, в том коде написана какая-то дичь. Серьезно. Сколько бы не пытался разобрать код, всё сваливается к фейс-палму с тяжким вздохом. static long unsigned int usart_sr_my=0; что это? Почему в размерности long int, то есть 64 бита? Почему 64 бита, если USART->SR имеет разрядность 32 бита, а регистр DR вообще содержит только 9 значащих бит? Ладно, а почему переменная static? Её содержимое - что, нужно сохранять при следующем входе в эту функцию? Но зачем, если в нее просто читается заново срдержимое регистра USART->SR usart_sr_my=UART5->ISR; Нет, ну серьезно, ЗАЧЕМ static? Использование long int вероятно говорит о том, что сей код писал тот, кто еще недавно пересел с 8-битных МК. И такие вопросы - практически в каждой строчке. Там всё переписывать надо с нуля. Серьезно. Я совершенно не понимаю, ЗАЧЕМ туда воткнуто ВСЁ ВОТ ЭТО? Что это вообще такое? Не понимаю, чесслово. Может вы, firstvald, как автор расскажете, что это там написано и для чего? if((usart_sr_my&USART_ISR_TXE)!=0){//ïî ïåðåäà÷å //äàííûå ïåðåäàëèñü â ñäâèãîâûé ðåãèñòð //UART5->ISR&=~USART_SR_TC; // UART5->ICR|=USART_ICR_TCCF ;//ñáðîñèì ôëàã UART5->RQR|=USART_RQR_TXFRQ ;//ñáðîñèì USART_SR_TXE // tx_flag=1; __nop(); } Это - что такое? Что за ересь такая? Кто знает, что здесь написано? Объясните, плиз, что тут? Кодировка, кстати, обычная широкораспространенная Win CP1251, ничего особого. Изменено 23 августа пользователем EdgeAligned Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 23 августа Опубликовано 23 августа · Жалоба 3 hours ago, kpv said: рандомные данные на входе заставляют алгоритм ходить по закоулкам программы, в которые он даже не заглядывает при нормальной работе. можно ловить на этапе написания кода, если внедрить embedded software testing hello word для QA да. точно. не порт. после него, где- то в обработке. 👍 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 23 августа Опубликовано 23 августа · Жалоба 1 час назад, EdgeAligned сказал: что это? Почему в размерности long int, то есть 64 бита? Справедливости для, все-таки, 32) но это не отменяет причуд) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 23 августа Опубликовано 23 августа · Жалоба 2 часа назад, EdgeAligned сказал: что это там написано и для чего? if((usart_sr_my&USART_ISR_TXE)!=0){//ïî ïåðåäà÷å //äàííûå ïåðåäàëèñü â ñäâèãîâûé ðåãèñòð //UART5->ISR&=~USART_SR_TC; // UART5->ICR|=USART_ICR_TCCF ;//ñáðîñèì ôëàã UART5->RQR|=USART_RQR_TXFRQ ;//ñáðîñèì USART_SR_TXE // tx_flag=1; __nop(); } Это - что такое? Что за ересь такая? Кто знает, что здесь написано? Объясните, плиз, что тут? Это обычный говнокодерский набор: и запись в read-only регистр ISR; и чтение-модификация-запись ICR; и чтение write-only регистра RQR; и ещё и NOP до кучи добавлен (видимо когда автор костылил этот код, то совал в него всё, что знал). Как видим - мануал автор сего шедевра даже не пытался читать. Всё как всегда. Странно что это вообще как-то "работает"... В 21.08.2024 в 23:42, firstvald сказал: usart_sr_my=UART5->ISR; usart_rdr_my=UART5->RDR;//ïðî÷èòàëè áàéò è ïðè ýòîì Ещё и чтение RDR без предварительного анализа флага RXNE. Баги почти в каждой строчке... мозг даже не включался... Мрак... И ведь совсем недавно автор этого мрака пытался тут поучать - как нужно "правильно" с флагами ISR работать. Ну-ну..... 2 часа назад, EdgeAligned сказал: Нет, ну серьезно, ЗАЧЕМ static? Так бывает, когда программируют наугад. Не понимая как должна работать программа. И что именно означают применяемые ключ.слова языка программирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 23 августа Опубликовано 23 августа · Жалоба 16 минут назад, Arlleex сказал: все-таки, 32 А, да, это от настроек компилятора зависит. Стандарт не задает однозначности. В принципе, переопределения uint32_t для того и придуманы, чтобы была однозначность. Ладно, но static тогда зачем? Да и сама переменная тоже как бы не нужна. В принципе, я вот сколько не пытался понять этот код, всё время путался в закомменченных строках. Ну и я как бы не понимаю назначение этой функции, названной modbus_usart_5(). Вообще, осмысленные названия функций для того и придуманы, чтобы отражать назначение и выполняемые действия. Небрежность в оформлении и форматировании кода затрудняет его просмотр и отладку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 23 августа Опубликовано 23 августа · Жалоба 1 час назад, EdgeAligned сказал: В принципе, я вот сколько не пытался понять этот код, всё время путался в закомменченных строках. Ну и я как бы не понимаю назначение этой функции, названной modbus_usart_5(). Вообще, осмысленные названия функций для того и придуманы, чтобы отражать назначение и выполняемые действия. Небрежность в оформлении и форматировании кода затрудняет его просмотр и отладку. Зато можно показать работодателю с словами: "Вона вишь какой сложный код! сколько труда потратил, сколько накодил! Премию давай!" Если выкинуть весь тот вздор, то кода будет с гулькин нос (чего там сложного-то в тривиальном UART?) А автор над ним может месяца два или три трудился! не покладая рук... И как тогда оправдать перед хозяином галеры кучу потраченного времени? Вот и загромождается всё мусором. Для замазывания глаз. Типичный индусский подход. И чем менее понятно и более запутанно будет, тем легче спрятать разгильдяйство и дилетантство от неопытного наблюдателя. Это вы видите, что static там не нужен и даже вреден, но не всякий начальник это поймёт. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 23 августа Опубликовано 23 августа · Жалоба 18 minutes ago, jcxz said: Зато можно показать работодателю с словами: - Ты первый и последний смотришь этот прекрасный текст, который увеличит прибыль нашего ООО "Рогакопытские Технологии" на 800%. Можно мне сейчас получить часть ? Пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 23 августа Опубликовано 23 августа · Жалоба 3 hours ago, EdgeAligned said: Это - что такое? Что за ересь такая? Кто знает, что здесь написано? Объясните, плиз, что тут? TXFRQ: Transmit data flush request Writing 1 to this bit sets the TXE flag. This allows to discard the transmit data. This bit must be used only in Smartcard mode, when data has not been sent due to errors (NACK) and the FE flag is active in the USART_ISR register (это первый попавшийся под руку RefManual for STM32Lxxx, что там у автора - я не знаю) Ну а вопрос "нафига это надо делать" вы не задавали :-)) Тем более, у меня нет на него ответа. 3 hours ago, EdgeAligned said: Кодировка, кстати, обычная широкораспространенная Win CP1251, ничего особого. https://2cyr.com/ читает ЭТО с настройками "кодировка 1251 отображается как 1252". Ничего особенного, но чуть-чуть подумать надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 23 августа Опубликовано 23 августа · Жалоба Збасиба, мануал читать я умею 🙂 Я спрашивал, че за ересь в целом там написана 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 23 августа Опубликовано 23 августа · Жалоба 1 час назад, EdgeAligned сказал: В принципе, я вот сколько не пытался понять этот код... А надо ли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться