Доброго времени суток мастерам! Впервые подключаю Arduino Mega 2560. Заливаю по ICSP китайским USB-программатором, прямо из БаскомАВР. Пробный тест: светодиодик L не моргает (просто потушен), а вместо логических уровней 0/1, на выводах 2,4-2,5 Вольт. Вот кусочек текста: $regfile = "m2560def.dat" $crystal = 16000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Porth = Output Config Portb = Output Portb.7 = 1 Do Porth = &B11110000 Wait 1 Porth = &B00001111 Wait 1 Portb.7 = 1 Wait 1 Portb.7 = 0 Wait 1 Loop End До этого пробовал МЕГУ 328 - всё происходило нормально (и шилось и моргало и уровни были 0/5В). Буфер чтения и записи на первый взгляд совпадают, ошибок не выдаёт. В эмуляторе Баскома - работает правильно. Напряжение питания не "просажено", внешних нагрузок от платы не питаю. Все порты свободные (просто тест на пустой плате). В чём косяк? Ткните мордой...
Разобрался! Дело было в установке фьюзов... Дело в том, что поставка кристалла осуществляется в конфигурации: Fusebit High M -> 1: Reset vector is $ 0000 Тоесть, при подаче питания, сбросе, рестарте после прошивки, старт будет произведён с адреса лежащего в нулевой ячейке... Производитель ардуины (как конечного устройства) снабжает свой прибор ПО, которое оговаривает загрузку кода через USB, а это подразумевает наличие внутри кристалла некой примитивной операционной системы в виде начального загрузчика. Поэтому производитель ставит этот фьюз в положение: Fusebit High M -> 0: Reset vector is bootloader Тоесть при рестарте начальное управление получит загрузчик, и только он потом отдаст "бразды правления" самой программе. А так как я прошиваю кристалл программой напрямую (через ICSP ), то у меня нет загрузчика, и начинаться программа должна с нулевого вектора. То есть этот фьюз должен быть установлен в положение: Fusebit High M -> 1: Reset vector is $ 0000.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт ноя 09, 2017 16:38:12
Потрогал лапой паяльник
Карма: 1
Рейтинг сообщений: 2
Зарегистрирован: Чт мар 26, 2009 20:53:27 Сообщений: 398 Откуда: Беларусь.Минская обл.
Рейтинг сообщения:0
Попробовал скорректировать Tt. Частота подгоняется но на больших значениях начинает выбегать вперед на пару герц. Я так понимаю в программе косяков нет? И дело скорее всего в тактировании генератора?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А у мну вот такой вопрос. Делаю часы на ds1307 & attiny2313. Как в баскомавре можно реализовать код с двумя кнопками Mode & Set. Жмешь моде - кнопкой сет устанавливаешь часы. Жмешь опять кнопку моде - устанавливаешь минуты. Ну и так далее день, месяц, год. Обычный кусок кода у меня есть, где одной нопкой часы, а второй минуты устанавливаются.
Как вариант - ТАК. Вариант очень простой, но работающий как часы. Хоть и писался очень давно. Код прокомментирован очень подробно, потому проблем возникнуть не должно. В добавок ко всему, проект протеус тоже приложен. В этих часах кнопка "MODE" в рабочем режиме переводит часы в режим отображения даты (пока удерживается), кнопка "SET" переводит в режим настроек, где уже "MODE" меняет по очереди параметры.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Как вариант - ТАК. Вариант очень простой, но работающий как часы. Хоть и писался очень давно. Код прокомментирован очень подробно, потому проблем возникнуть не должно. В добавок ко всему, проект протеус тоже приложен. В этих часах кнопка "MODE" в рабочем режиме переводит часы в режим отображения даты (пока удерживается), кнопка "SET" переводит в режим настроек, где уже "MODE" меняет по очереди параметры.
Респект и уважуха! Я вас всех тут люблю! То, что надо, тоько адаптирую под газоразряд. Всю ночь кодил. Вот докодился.. А как покороче сделать проверку на количество дней месяца при вводе? Те примеры, что видел, больше килобайта жрут. Пока останоовился на тупом варианте на кнопке.
Код:
If _month = 1 AND _day > 31 Then _day = 1 If _month = 2 AND _day > 29 Then _day = 1 If _month = 3 AND _day > 30 Then _day = 1 If _month = 4 AND _day > 30 Then _day = 1 If _month = 5 AND _day > 31 Then _day = 1
И так на каждый месяц всего 12 строк
Можно это как-нибудь оптимизировать? А то не влезает уже чуть.
так не проще? if _day > 28 and _month = 2 then _day = 1 if _day > 30 then if _month = 4 or _month = 6 or _month = 9 or _month = 11 then _day = 1 end if if _day > 31 then _day = 1
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения