А чё такое стартап код(стартап секция) особая команда какая то ? я же чайник,вы знаете.
Пробовал поискать,чтобы не напрягать гуру всякой ерундой,Шпака,Белова,работа с памятью,
полагаю,но ничего не попадается.Наверное это в описании к AVR studio искать надо.
чайникам это знать не обязательно. а остальным поясню: на компьютере подготовкой памяти приложения занимается операционная система, а в МК ее нет. поэтому для МК, вопреки теории, утверждающей, что самой первой вызывается main, до этого вызова отрабатывает код, который называется startup, и код этот чистит память, инициализирует статические переменные, устанавливает указатель стека, а уж потом вызывает main. по умолчанию вы этот код не увидите, пока не дизассемблируете прошивку или не посмотрите листинг.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Попался экземпляр DS3231SN молотящий на выходе вместо 1Гц кой-чего пошустрее (но не 32768!).
Оставил на поиграться попозже. Может я его когда-то перегрел или еще какой "артефакт" - то уже копаться отдельно буду.
Особо не замерял чего выдает за ненадобностью точных данных. Для наблюдателя на дисплее минуты как секунды меняются, а секундный участок более на десятые секунд смахивает.
В остальном... Чуток "модернизированная" (выкушена цепь зарядки аккумулятора) адуиновская платка
показывает весьма неплохие результаты при комбинированном питании от сетевого адаптера или от аккумулятора через зарядно-питающую платку на TLP4056
(тоже из "готовых наборчиков").
ЕЕПРОМка там установленная пока не используется.
Продолжаю тесты да доработки программки (по мере наличия настроения).
Промежуточный итог для схемки https://img.radiokot.ru/files/20529/2ucv2v42pd.GIF
В программе основная часть с главными часами и минимальными настройками RTC.
Секундомер, таймер и будильники не прописаны - пока там только заготовка для проверки работы главного меню.
Точно таким же образом могут добавляться иные самодельные модули "устройств".
В основной программе заложены "сторожа" по отсутствию тактовых импульсов от RTCболее 20 секунд и "зажатию" любой кнопы(комбинации кноп) более 1 минуты. Выход из критических ошибок только перезапуском по reset для МК.
Заложен контроль падения напряжения аккумулятора с автовыходом из индикации при подключении зарядного устройства.
Тут есть нюанс - нижний уровень определен как 2,8 вольта. Это при условии, что схема BODотключена по умолчанию - так обычно в "стандартных" нанках и про-мини установлено.
Ежли BOD включен - смотрим на его уровень относительно контрольной точки "lou ba".
Несколько извратный режим контроля и коррекции константы RTC...
это пункт 7 субменю просмотра и настройки параметров главных часов.
Сделано из-за специфики индикации...
Сначала "под писк" высвечивается текущее содержимое константы - три позиции и знак в четвертой, затем окна коррекции
HnLn где собственно и вводится от 0 до 9 за один раз в любом из окон (но не в обеих одновременно!).
H соответствует поправке в +
L поправке в -.
Ежли кого более детальное описание заинтересует - отвечу дополнительно.
Переименовывать каталог пока не стал - то будет уже под "полный комплект" сделано по мере готовности.
Удержание точности хода главных часов весьма меня обрадовало.
Итоговая игрушка.
Добавлены секундомер, таймер обратного отсчета и два будильника.
Будилки как и счетчики главных часов продолжают работать в случае когда основным устройством являются таймер или секундомер.
Вобщем "полный функциональный аналог К145ой".
В отличии от прототипа к основному ядру можно добавлять любые свои "устройства" по единым правилам.
Для меги 328й (адуринка-нанка или про-мини) объем программы это вполне позволяет сделать.
Итоговый отчет IDE:
"...
Скетч использует 10838 байт (35%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 181 байт (8%) динамической памяти,
оставляя 1867 байт для локальных переменных. Максимум: 2048 байт.
..."
Возможные замены/модернизации
замена индикатора на ЖКИ (предпочтительно 10-знакоместный)...
В остальном - вполне себе годная заготовка под "многофункционалки".
Подчищенный от лишних комментариев исходник (вариант для публикации):
От ВЕЛИКОЙ ЖАБЫ решил таки еще покопаться как в схемке, так и в программке.
Получился весьма удобоваримый вариант и без RTC.
Правда пришлось пожертвовать таймером Т/С1 (и ессно парой возможных ШИМ выходов на D9 и D10) да еще разок "отступить от "референса""...
Коррекция частоты к сожалению действует в достаточно узком диапазоне питающих напряжений.
В принципе... не такая уж и проблема при питании от источника фиксированного напряжения (5 или 3.3 вольта), но вот от аккумулятора с зарядно-питающим явно диапазон напряжений некорректен для фиксированного значения коррекции.
При уменьшении напряжения часики таки "убегают вперед"...
Так что выбираем -
или аккумулятор с зарядно-питающим + RTC на DS3231
или минимальный вариант, но с фиксированным напряжением питания (сетевой адаптер).
Программа и менюшки также претерпели изменения - помимо стандартного главного меню добавились кнопки экспресс-вызова секундомера и таймера на клавиатуре главных часов и кнопа экспресс-возврата к "устройству "главные часы"".
Планируется еще DS18B20 опцией добавить чтоб схемка соответствовала вот этому варианту: https://img.radiokot.ru/files/20529/2v4pvjbkaf.GIF
как добавлю DS18B20 - выложу и исходник.
пока без термометра - на его добавление надо время и настроение - когда будет готово - тогда и будет, а пока то, что есть в готовности, дабы и это не потерять...
Надеюсь таки удастся доделать невзирая на "факторы внешнего раздражения окружающей среды обитания" ..
Просто есть интерес соорудить "скелет" для блока автоматики класса "программно-временные задатчики" (всевозможные реле времени с привязкой к технологическим параметрам - температуре, положению контактных датчиков, освещению и прочему) на основе адуринки без излишних добавок.
Пока можно сказать что скелет готов, но только под фиксированное питание (преобразователь или от сети или от аккумулятора)
Собственно платка на TLP4056 напрямую использоваться не может - потребуется еще один импульсник на выходе с фиксированным напряжением.
Кварц тот манипусенький, что на нанке/про-мини установлен, таки с оочень большой погрешностью может оказаться.
При питании от сетевого источника 5 вольт корректором можно подогнать ход до +/-1 минуты в сутки, что для бытовых применений (тот же аквариум/тепличка) вполне допустимо.
По данному вопросу книжа имеется (в основном на электромеханике и частично на электронике-тогда оная только нарождалась):
Шполянский В.А., Курицкий А.М.
Программно-временные задатчики.
- М.: Машиностроение, 1984.
Потихоньку продолжу копанину с адуринкой...
Окончательная версия игрушки.
Добавил таки термометр - показометр. Единственно его на минусовом диапазоне температур не проверил - до холодильника уже не допускают (лишний раз открыть при риске отключения электричества ....).
Так что не знаю, как поведет себя показометр при минусе...
Помимо стандартного выбора через главное меню сделан экспресс-вызов секундомера, таймера и термометра.
У термометра малая заморочка - после активации окна его еще надо включить (кнопа"+" перекидывает кружок перед символом "С" снизу вверх, отключение - кнопа "-") сделано больше как "совместимость"
На схемке перенесен вывод термодатчика по факту (на тест-макете такое положение и прожка под него прописана) https://img.radiokot.ru/files/20529/2vdpql5kpo.GIF
Блок питания к сожалению пришлось поставить без аккумулятора и зарядки - тест проводился с обычным 5-вольтовым импульсником.
Константа коррекции хода расчетная = 62499, по факту подгонки при 5 вольтах питания мой экземпляр адуринки пришлось догнать до 62665 (0xF4C9).
Собственно не особо вычищенный от избыточной информации исходник:
отчет IDE:
"Скетч использует 11002 байт (35%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 213 байт (10%) динамической памяти,
оставляя 1835 байт для локальных переменных. Максимум: 2048 байт."
Положу эту игрушку в архивчик - может когда и пригодится...
Вот еще "к сведению" редковредная аппнота на тему далласовских датчиков DS18B20:
Изучать чего-то новое надо по реальной потребности.
Если предполагается использовать - учим, если нет - максимум материал для изучения готовим.
Из ЯВУ пока что в МК ассемблер да Си базовые, С++ только в ардуиноIDE частично используется.
Другое дело - если цель написание программ на ПК предстоит осваивать - там уж выбор весьма широк.
Однако учитывая современную перспективу... Сначала скачать за сохранить несколько копий компилятора, имеющего хорошее описание да бесплатного, да чтоб оффлайн работал... А ужшшш потом и заняться изучением можно.
Решил немножко поиграться с "враждебным элементом" - PCF8583...
Микросхемка старинная, но от того не менее "туманная" - из группы объединенной апнотой еще от Phillips
более современная версия этой апноты:
Случилась какая то хрень,и обычное окно ответа на "химике" скукожилось до одной строчки
и пропала возможность отвечать.
Может можно вручную подправить что то,а то я не понимаю в РНР ничего.
Чем размеры окна определяются.
Тыкал-тыкал,ничего не получается. Вот код этого элемента.
Спойлер<div class="ipsType_normal ipsType_richText ipsType_break" data-ipseditor="" data-ipseditor-controller="https://forum.xumuk.ru/index.php?app=core&module=system&controller=editor" data-ipseditor-minimized="" data-ipseditor-toolbars="{"desktop":[{"name":"row1","items":["Bold","Italic","Underline","Strike","Subscript","Superscript","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","BulletedList","NumberedList","-","RemoveFormat","JustifyLeft","JustifyCenter","JustifyRight","-","TextColor","FontSize","-","ipsPreview","Redo","Undo","-","custom-8de1c8b046fc6fc5813dcc3f4d6aefe9","custom-566179d31a479688ca06a1b6bf5fa5ca","custom-b24c8fea4005f73876e90212130018c0","custom-e50a417e26f1d22d26fe7ccc835ac459","custom-3d8320a906793de60c1a12f9be1672dd","custom-055797ba5bd3da2642bd1b357dcdf649","custom-b01a789ff17201ab02936fbded0a62e2","custom-c8049f09485482e8d8c0301b80a73f9f","custom-d551875f5c5453958cc8cd63999de462","custom-b0f1aef475bcea37c1683111d9334a1b","custom-b5c7d7921d468689f6d5d5ab00e86d7b","custom-1d711b253a2647e30782ed3da7f1572d","custom-57643d86a73671725070f98c850c68b7","custom-1c7f18735b134f0f78a681915cb24a28","custom-2730bc53cb4e2c5a15460a19f1445a94","custom-25cf406fdf85f4de30389c1aae413fd3","custom-b0b494f0274e3ae0e61b364f20c99145","custom-99d06646dcdc4295ece44bc63cc6db94","custom-7c29d2e528cde9a0f6504e6f1cffabfc","custom-707f7711a04ca126106f5554b43f13fb","custom-a0eda65bfeaa5b8583a56c444edcd811","custom-85fa59f6cf2e9dfa98c8a2ac859cd4c1","custom-8ad826987ca16872f32e0d7a332cee2f"]},"\/"],"tablet":[{"name":"row1","items":["Bold","Italic","Underline","Subscript","Strike","Superscript","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","BulletedList","NumberedList","-","RemoveFormat","ipsPreview","Redo","Undo"]},"\/"],"phone":[{"name":"row1","items":["Bold","Italic","Underline","Strike","Subscript","Superscript","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","NumberedList","BulletedList","-","RemoveFormat","ipsPreview","Undo","Redo"]},"\/"]}" data-ipseditor-*самореклама*="custom-566179d31a479688ca06a1b6bf5fa5ca,custom-b24c8fea4005f73876e90212130018c0,custom-e50a417e26f1d22d26fe7ccc835ac459,custom-3d8320a906793de60c1a12f9be1672dd,custom-055797ba5bd3da2642bd1b357dcdf649,custom-b01a789ff17201ab02936fbded0a62e2,custom-b0f1aef475bcea37c1683111d9334a1b,custom-d551875f5c5453958cc8cd63999de462,custom-c8049f09485482e8d8c0301b80a73f9f,custom-57643d86a73671725070f98c850c68b7,custom-b5c7d7921d468689f6d5d5ab00e86d7b,custom-1c7f18735b134f0f78a681915cb24a28,custom-2730bc53cb4e2c5a15460a19f1445a94,custom-25cf406fdf85f4de30389c1aae413fd3,custom-b0b494f0274e3ae0e61b364f20c99145,custom-99d06646dcdc4295ece44bc63cc6db94,custom-7c29d2e528cde9a0f6504e6f1cffabfc,custom-a0eda65bfeaa5b8583a56c444edcd811,custom-1d711b253a2647e30782ed3da7f1572d,custom-707f7711a04ca126106f5554b43f13fb,custom-8ad826987ca16872f32e0d7a332cee2f,custom-85fa59f6cf2e9dfa98c8a2ac859cd4c1" data-ipseditor-postkey="02a25e84a20386497c5f217a457a9a7c" data-ipseditor-autosavekey="reply-forums/forums-302944" data-ipseditor-skin="ips" data-ipseditor-name="topic_comment_302944" data-ipseditor-pastebehaviour="rich" data-ipseditor-*самореклама*="ipsautolink,ipsautosave,ipsctrlenter,ipscode,ipscontextmenu,ipsemoticon,ipsimage,ipslink,ipsmentions,ipspage,ipspaste,ipsquote,ipsspoiler,ipsautogrow,ipssource,removeformat,ipspreview" data-ipseditor-contentclass="IPS\forums\Topic" data-ipseditor-contentid="302944">
<div data-role="editorComposer">
<noscript>
<textarea name="topic_comment_302944_noscript" rows="15"></textarea>
</noscript>
<div class="ipsHide norewrite" data-role="mainEditorArea">
<textarea name="topic_comment_302944" data-role="contentEditor" class="ipsHide" tabindex="1"></textarea>
</div>
<div class="ipsComposeArea_dummy ipsJS_show" tabindex="1"><i class="fa fa-comment-o"></i> Ответить в теме...</div>