Грех "воспользоваться готовеньким"... )))))))))))))) При малейшем сбое или ошибке можно долго ломать голову... почему зависло или пересбрасывается... )))))))))
Логично. Доморощенное лучше всего. Желательно начинать с собственных МК, которые никогда не зависают и не пересбрасываются. Там, помнится, в одной из тем крутой парень транзисторы из карандашей делал... А не менее крутые собственными компиляторами баловались. Которые, когда будут написаны, все остальные уделают.
HHIMERA писал(а):
Да ещё и надеяться на то... "что библиотечные элементы, как правило, хорошо оптимизированы и протестированы"... )))))
Доверять компиляторам и библиотекам GNU - преступное легкомыслие. То ли дело Pupkin Soft, Inc.
Цитата:
"Нимфа", туды ее в качель, разве товар дает? - смутно молвил гробовой мастер. - Разве ж она может покупателя удовлетворить?
HHIMERA писал(а):
Да и сам макрос _BV галимый ацтой...
Всегда готов снять шляпу перед тщательно продуманным и аргументированным мнением.
_________________ Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет. J. Ganssle
Желательно начинать с собственных МК, которые никогда не зависают и не пересбрасываются.
Угу... Только если сам пишешь, можно таймер или счётчик проходов прилепить и принять решение по устранению/обходу возникшей ошибки, а так... "непобедимый макрос рекомендованный производителем"... )))))))))))))))))))
Цитата:
Всегда готов снять шляпу перед тщательно продуманным и аргументированным мнением.
А что аргументировать??? )))))))))) Чтобы перенести код с _BV на другую платформу... ................ ))))))) Так в чём сакральный смысл сего изврата с _BV ??? )))))))))
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Только если сам пишешь, можно таймер или счётчик проходов прилепить и принять решение по устранению/обходу возникшей ошибки
Любопытно было бы поглядеть, кто этот легендарный "сам", который единственный способен писать непогрешимый код в этом несовершенном мире (в котором даже производителям нельзя доверять). Ей-богу, лично проспонсировал бы ему отливку конной статуи из бронзы в натуральную величину. Ибо достоин. Но, увы, лично мне такие не встречались, да и не только мне - о "кризисе программного обеспечения" написаны тома.
Практика показывает обратное - "зависло или пересбрасывается" в 99.999 случаев благодаря альтернативной одаренности прокладки между клавиатурой и спинкой кресла. Я еще не видел ни одной программы, которая была бы протестирована на профессиональном уровне какой-либо автоматизированной системой тестирования и при этом безбожно глючила.
HHIMERA писал(а):
Так в чём сакральный смысл сего изврата с _BV ??? )))))))))
В том же, в чем сакральный смысл "изврата" использования любых библиотек - избежать изобретения велосипедов. Иначе разработка любой нетривиальной программы, скажем, под Windows (или XWindow, или Motif - не суть важно) начнется с рисования кнопочек и окошечек линиями и точками.
_________________ Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет. J. Ganssle
Не надо ссылаться на практику... ))))))))) По вашим последним постам... "Смешались в кучу кони, люди"(С)... ))))))))))))))) Тогда читайте теорию... )))))))))))
Цитата:
HHIMERA писал(а):
Так в чём сакральный смысл сего изврата с _BV ??? )))))))))
В том же, в чем сакральный смысл "изврата" использования любых библиотек - избежать изобретения велосипедов. Иначе разработка любой нетривиальной программы, скажем, под Windows (или XWindow, или Motif - не суть важно) начнется с рисования кнопочек и окошечек линиями и точками.
А-а-а... теперь всё понятно... )))))))))) МК, к сожалению, не "большой серый брат"... поэтому вас и бросает со стороны в сторону... так определитесь уже... )))))))))))))) С одной стороны притянутые за уши статьи, с призывом "не спешите повторять"... с другой стороны - призывы к неукоснительному применению макросов от производителей... забывая что "серый брат кажет"... "Макросы - зло!!!"... ))))))))))))))
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Не надо ссылаться на практику... ))))))))) ... Тогда читайте теорию... )))))))))))
Так-так... Вечер, кажется, перестает быть томным.
И что же конкретно из теории программирования посоветуете почитать? Очень интересно пообщаться с теоретиком, честное слово. Особенно столь чуждым практике.
Это не риторический вопрос, мне действительно интересно, какие первоисточники по теории лично Вы считаете авторитетными. Хотя бы несколько ссылок.
HHIMERA писал(а):
С одной стороны притянутые за уши статьи, с призывом "не спешите повторять"... с другой стороны - призывы к неукоснительному применению макросов от производителей...
Заставьте себя дочитывать фразы до точки. Я призывал лишь не спешить следовать советам скороспелых экспертов местного разлива, которые просто обожают учить новичков тому, о чем сами имеют самое смутное представление. И действительно - как в воду глядел. О производителях действительно качественного софта с хорошей репутацией не было ни слова. А в здешнем поле каждый суслик - агроном... то есть, пардон, каждый зарегистрировавшийся на несколько дней раньше - гуру. Потому и призывал к осторожности.
HHIMERA писал(а):
забывая что "серый брат кажет"... "Макросы - зло!!!"... ))))))))))))))
Прошу прощения, но лично у меня нет серых братьев. А Ваши внутрисемейные отношения меня не касаются.
_________________ Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет. J. Ganssle
Так в чём сакральный смысл сего изврата с _BV ??? )))))))))
В том же, в чем сакральный смысл "изврата" использования любых библиотек - избежать изобретения велосипедов. Иначе разработка любой нетривиальной программы, скажем, под Windows (или XWindow, или Motif - не суть важно) начнется с рисования кнопочек и окошечек линиями и точками.
"Любые библиотеки" это как "любая еда"... можно и отравиться... и это действительно изврат... Достаточно вспомнить отравившихся Кодевижн... они впадают в неуёмную прострацию при переходе на другую платформу или компилятор... ))))))))))
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Увы, не с этого. Вступая с кем-то в беседу, не лишне заранее приглядеться, с кем имеешь дело. Я с этим делом явно запоздал.
Отрицательный рейтинг сообщений (-3 менее чем на сотню постов) - довольно красноречивый показатель альтернативной одаренности, как это сейчас принято политкорректно называть. Мало кому удалось добиться столь выдающихся показателей за столь краткий срок. Да и само их содержание как бы намекает... Как говорит Николай Фоменко, "птицу видно по помету". Не ошибся, стервец.
Как я понимаю, ссылка на теорию была просто очередной газификацией луж лично сгенерированным сероводородом? Искренне жаль (хотя заранее было очевидно, что действительно образованный человек оперирует другим лексиконом, но крохотный шанс оставался). Остальной мутный поток сознания, увы, вряд ли кому-то интересен.
HHIMERA писал(а):
Ладно-ладно... продолжай... очень забавно читать твой ералаш... )))))))
Как утверждает известная русская пословица, чрезмерные положительные эмоции без достаточно веской на то причины - еще один признак альтернативной одаренности. Как-то подозрительно коррелирует с рейтингом, вряд ли случайное совпадение.
За милостивое разрешение продолжать - отдельное большое человеческое спасибо, без него вряд ли рискнул бы. Непременно воспользуюсь. Веселитесь дальше, подтверждайте диагноз, ведь народ - он зря не скажет.
_________________ Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет. J. Ganssle
Отрицательный рейтинг сообщений (-3 менее чем на сотню постов) - довольно красноречивый показатель альтернативной одаренности, как это сейчас принято политкорректно называть. Мало кому удалось добиться столь выдающихся показателей за столь краткий срок. Да и само их содержание как бы намекает...
Да что вы говорите??? ))))))))) Были бы чуть-чуть умнее... посмотрели бы те посты... кто минусанул я вам могу сказать... тот, который кричал "Нет у него альбомного режима."... который спорил не со мной, а с даташитом... А суслик (альбомный) то есть!!! ))))))))))) Но это так... к слову... А так... меня это мало волнует... увы... ))))))
Цитата:
Как говорит Николай Фоменко, "птицу видно по помету". Не ошибся, стервец.
В этом вы лучше разбираетесь... ))))))))
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Выгода была в 6 байт после компиляции, по сравнению с моей записью. Блин, сколько нюансов.
Разобрался с этим:
Цитата:
1. Вместо (условие == 0) с таким же успехом можно писать (!условие). Второй вариант читабельнее, поскольку конфузливо скрывает факт, что C так и не обзавелся полноценным булевским типом.
В моем варианте равнозначные условия
Код:
for (int i = 0; String[i] != '\0'; i++)
равнозначно
Код:
for (int i = 0; String[i]; i++)
Нужно мне привыкнуть к правильному написанию.
Цитата:
2. Вместе с макросом _BV в библиотеке определены также еще несколько полезных макросов для работы с битами. Один из них:
Код: #define loop_until_bit_is_set( sfr, bit ) do { } while (bit_is_clear(sfr, bit)) ожидает в пустом цикле, пока в регистре ввода-вывода sfr установится бит bit. Грех не воспользоваться готовеньким, тем более что библиотечные элементы, как правило, хорошо оптимизированы и протестированы.
Я понял как рабоатет эта строчка. А в каких случаях её используют? Просто если написать:
Код:
PORTD |= _BV(PD0);
будет тоже самое, что:
Код:
loop_until_bit_is_set (PORTD, PD0 );
или нет?
_________________ Кот должен прожить жизнь без сожаления.
Заголовок сообщения: Re: WinAvr в вопросах и ответах
Добавлено: Чт сен 20, 2012 17:36:47
Открыл глаза
Зарегистрирован: Сб май 07, 2011 14:35:24 Сообщений: 53 Откуда: Россия
Рейтинг сообщения:0
Здравствуйте! "Отматал я свой срок" год на CVAVR, и вот решил перейти на WinAVR. После кодвижна как-то намного легче освоение пошло, и нисколь не жалею, и другим советую . Ну вобщем все идет ОК, но вот столкнулся с проблемкой вывода сообщений на LCD через функцию sprintf. Опишу по порядку: 1). LCD распространенный 16х2 WH1602B-YYH-CTK на контроллере HD44780 2). Контроллер Мега8. 3). Библиотека lcd_lib (прилагаю в аттаче) распространенная многим известная. Ну вобщем все как обычно и не впервой Но вот на экране какая-то хрень выводится заместо пустых знаков по 2 вертикальных палки на символ (см. фото)
Пишу вроде по всем правилам и рекомендациям, но никак не могу побороть. С отчаяния заполняю пустые ячейки пробелами, но это же не дело, тратить драгоценные байты памяти. Может кто сталкивался уже с этим?
Да, добавлю. При симуляции в Протеусе все отображается нормально. В реале индикатор исправен, проверял с программой на CodeVision.
sprintf(buffer, "Out= %d", 1234); заполняет первые четыре ячейки buffer, а что у вас в последующих ячейках сидит? то и выводит, точнее потом вы выводите. Решений пару, выводите только полезную информацию, здесь четыре знака. Добавьте в конце знак конца строки. Обнулите ваш буффер например при помощи цикла "for", потом добавляйте вашу информацию.
Заголовок сообщения: Re: WinAvr в вопросах и ответах
Добавлено: Чт сен 20, 2012 20:16:58
Открыл глаза
Зарегистрирован: Сб май 07, 2011 14:35:24 Сообщений: 53 Откуда: Россия
Рейтинг сообщения:0
Логично! Спасибо! Завтра попробую. Об этом конечно и сам бы мог догадаться. Видимо дурное влияние от cvavr осталось - надеяться "на дядю Пашу" который заранее позаботился о юзерах Функцией sprintf в дальнейшем пользоваться не собираюсь, ну разве что в особых случаях. Просто захотелось добраться до истины почему так происходит. Еще раз спасибо!
Заголовок сообщения: Re: WinAvr в вопросах и ответах
Добавлено: Пт сен 21, 2012 09:05:00
Открыл глаза
Зарегистрирован: Сб май 07, 2011 14:35:24 Сообщений: 53 Откуда: Россия
Рейтинг сообщения:0
U235 писал(а):
..Попробуйте так
Код:
LCDstring(buffer, strlen(buffer));
Что бы использовать функцию strlen, нужно подключить
Код:
#include <string.h>
Попробовал сделать по Вашей рекомендации. Да, действительно, то что надо! И код получается компактный, и размер прошивки при подключении "string.h" вырос всего на 0,2%. Огромное спасибо за помощь и разъяснения!
Сейчас этот форум просматривают: -Valerius- и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения