да поначалу совсем немного излишков есть, но это ж С++ - он так думает. Дальше размер уже от пограмиста уже будет зависеть. Зато например математика на Цэ намного нагляднее и проще.
Какой там "всего 4"?! Разница гораздо больше - ведь у проекта под адуринкой всего-то конфигурация таймера на досчет до 0,5 секунды и АППАРАТНЫЙ ногодрыг ЕДИНСТВЕННО ВОЗМОЖНОГО ВЫВОДА. (Аппаратные преимущества соответствующего МК явные). А в моем варианте из-за 8 разрядной организации таймера (специфика аппаратной начинки тиньки13й) и счетчик досчета и обработчик прерывания и дополнительный "хвост" для обеспечения программно селектируемого "ногодрыга". Так что заведомо избыточный код добавлен. И то разница в 4 байта. А Ёжли бы полное соответствие (допустим с 2313 на Т1) то вряд-ли уже можно говорить о "малом размере"...
Цифры же озвучены 66-62=4. Сравнивать надо одинаковые действующие программы на одинаковом МК. Листинг же привел - да это чисто на ассемблере можно подсократить, но не много. В дальнейшем оверхеда скорее не будет. Компилятор еще можно поуговаривать, типа векторы выкинуть и др.
УВЫ... тиньки 10й у меня нету(в том числе и проработки документации по причине перспектив применения). Так что речь может идти только об аналогии.
Одначе и при том - там всего-то установить режимы таймера и запуск отсчета при остальных функциях на основе аппаратной составляющей - и 66 байт (33 команды)?... Это явно перебор...
Так что при всем уважении, но ассемблер таки остается базовым языком программирования для прикладных устройств простой периферии. А уже далее комплект из комбинированного применения как периферийных интерфейсных СБИС на основе МК под ассемблером/ЯВУ, так и более крупных МК/систем на кристалле под ЯВУ. Соответственно и подготовка материала для ассемблера заметно более затратная - но там компенсация за счет применения небольшого арсенала хорошо проработанных представителей различных семейств для разнообразных прикладушек. В случае с ЯВУ затрат времени на проработку документации МК заметно меньше, но "абсолютная власть" над ресурсами становится более "заморочной" - но под ЯВУ этого в большинстве случаев и не требуется.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Одначе и при том - там всего-то установить режимы таймера и запуск отсчета при остальных функциях на основе аппаратной составляющей - и 66 байт (33 команды)?... Это явно перебор...
слова много, перебор - непрофессионально тини10 живая не нужна - создаем проект в древней аврстудии 4.19, быстренько пишем тот же функционал: Спойлер
.CSEG .org 0 ;Interrupt vector table rjmp reset ; All Resets reti ; External Interrupt R.equuest 0 reti ; Pin Change Interrupt R.equuest 0 reti ; Timer/Counter0 Input Capture reti ; Timer/Counter0 Overflow reti ; Timer/Counter0 Compare Match A reti ; Timer/Counter0 Compare Match B reti ; Analog Comparator reti ; Watchdog Time-out reti ; VCC Voltage Level Monitor reti ; ADC Conversion Complete
reset: ; Set Stack Pointer (SP) ldi r16, 0x00 out SPH, r16 ldi r16, 0x5F out SPL, r16 ; Set clock to 4MHz ldi r16, 0xD8 ; Unprotect CLKPSR reg out CCP, r16 ldi r16, 1 ; Divide by 2 out CLKPSR, r16 ; Calibrate Oscillator ldi r16, 0xA3 ; ATTiny10 Value out OSCCAL, r16 ; Setup I/O Port ldi r16, 0x02 ; PB1 are outputs out DDRB, r16 ; TCCR0A = 1<<COM0A0 | 0<<WGM00; // Toggle OC0A, CTC mode ldi r20, 0x40 out 0x2e, r20 ; TCCR0B = 1<<WGM02 | 3<<CS00; // CTC mode; use OCR0A; /64 ldi r20, 0x0B out 0x2d, r20 ; OCR0A = 15624; // 1 second; ie 0.5Hz ldi r20, 0x08 ldi r21, 0x3D out 0x27, r21 out 0x26, r20 loop: rjmp loop
Код:
---------- ATtiny10 memory use summary [bytes]: Segment Begin End Code Data Used Size Use% ---------- [.cseg] 0x000000 0x000040 64 0 64 1024 6.3% [.dseg] 0x000040 0x000060 0 3 3 32 9.4% [.eseg] 0x000000 0x000000 0 0 0 0 - Assembly complete, 0 errors. 0 warnings
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Вопрос в том, что при отсутствии перспектив проработка техдокументации для аттини10 не выполнялась - а без таковой я только предполагать могу (или "на скору руку" чего нашкрябать по беглому взгляду на даташит, рискуя ошибок наделать).
Зачем собственно в программе из Вашего последнего примера : 1. Запись ВСЕХ векторов прерываний вместо необходимого только по RESET? (ни единое прерывание по умолчанию НЕ ИСПОЛЬЗУЕТСЯ); 2. Установка значения регистра указателя стека (спорно ибо в большинстве АВР выполняется автоматически при подаче питания - надо вчитываться в даташит и ерраты); 3. переустановка штатной частоты системного генератора (в большинстве АВР базовая частота устанавливается по умолчанию автоматически); 4 соответственно и загрузка нового значения калибровки. Ведь даже для тиньки 13й вполне реально получение удобоваримого значения опорной сетки частот на 8-разрядном таймере с предделителем... А тут 16 разрядный таймер... ???
Воть и излишние байты явно проявились. Это для дополнительного садомазохизьму что-ли?
Наш диалог напоминает из известного фильма поиск в магазине коня - "а нет ли такого, но без крыльев", а конь вообще снимался еще в других фильмах (с крыльями). а смысл выжимать лишние байты - редко возникает задача где есть борьба за последний байт http://we.easyelectronics.ru/Asticon/is ... bayta.html ну даже 30 байт мы сэкономим упираясь и потея на ассемблере, ведь задачи для тини10 обычно совсем крохотные (фонарики, моргалки, моторчики) и если их могут решать ардуинщики в ихней среде - кусок хлеба у ассемблерщиков уже отобран (кыш на пенсион). Об этом была речь. Ардуинщик, если упрется - может и тини25/45/85 взять и в дамки
Я наоборот указываю на то, что ресурс ассемблера если и исчерпан (недостаточно времени/средств для СТАРОГО КОТА), то исключительно или в отношении ARM(система-на-кристалле) или в отношении абсолютно новых семейств, что могут в перспективе появиться. Да и направление "смешанных проектов" с применением самодельных СБИС практически никем не занято.
Ардуинщики тоже с разным подходом имеются - различаем "школярство" и профи-разработку. Тут надо попытаться нечто среднее поднять - как минимум "продвинутый пользователь" с навыками самостоятельного написания программ "с нуля" при использовании минимума из средств "штатного референса". Столь жесткие рамки обусловлены наличием в платформах IDE не только АВР МК, но и иных семейств. Да кому-то все-таки придется и в "потроха" самой IDE залезть, чтоб на надлежащем уровне противостоять "школярству".
ЭЭххх... последний КОТ (oleg110592) школярам от адуринки сдался!
Пы.Сы. У мня такое видение перспектив было лет с 10-15 тому назад. Благополучно прошло по мере "перехода на иной уровень" - с которым и адуринья благополучно вписалась (минуя промежуточный Си). Правда таки приходится "пропущенный материал" по мере возникновения вопросов поднимать/перелопачивать.
лучше горькая правда, чем сладкая ложь. Вот и на святую тини13 ардуинщики замахнулись https://github.com/MCUdude/MicroCore 3 дня назад подновляли - значит востребовано поддерживает различные тактовые частоты 9.6 MHz internal oscillator (default) 4.8 MHz internal oscillator 1.2 MHz internal oscillator 600 kHz internal oscillator * 128 kHz internal watchdog oscillator * с калибровкой ! 20 MHz external oscillator 16 MHz external oscillator 12 MHz external oscillator 8 MHz external oscillator 1 MHz external oscillator оптимизация LTO и согласно заветам батьки Атмеля AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers. UART library, которого вроде насколько помню аппаратно нету и т.д. з.ы. а вы продолжайте заниматься "самовиденьем перспектив"
лучше горькая правда, чем сладкая ложь. Вот и на святую тини13 ардуинщики замахнулись https://github.com/MCUdude/MicroCore... з.ы. а вы продолжайте заниматься "самовиденьем перспектив"
У меня этот вариант уже даавненько установлен... Обновления там сегодня по ВСЕМ платформам, что в MCUdude заявлены:
ССЫЛКИ УКАЗАНЫ ДЛЯ РАЗМЕЩЕНИЯ В соответствующем окне РАЗДЕЛА НАСТРОЙКИ - ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ ДЛЯ МЕНЕДЖЕРА ПЛАТ, А НЕ ДЛЯ ПРЯМОГО ПЕРЕХОДА В БРОУЗЕРЕ!!
Единственный минус - ставятся автоматом на сегодня ТОЛЬКО для windows7-10. Для ХР придется обновлять вручную. Собственно там все же разработка "в рамках референса", иначе или "чистый Си" или "чистый ассемблер" придется использовать. Да вчитываться в документацию. Оба подхода в своих рамках верны, но в конкретном случае удобнее использовать тот вариант, который более подходит для решения конкретного проекта. Да и "взаимовлияние" приемов весьма удачно в таком случае вписывается. Собственно удобство адуринки не в "контрмерах" относително АВРок, а в единой среде для разных семейств. Однако "нюансы" в описании отличий базового референса для различных семейств пока ХРОМАЮТ... И ... к сожалению особо именно тем направлением (разбором отличий и "нюансов") пока у нас слабо занимаются (как и популяризацией работы на уровне отличном от "школярства").
Даже интересно, что там в 13й тиньке LTOшить можно?! Но в целом прогресс ардуины налицо: и 10 лет не прошло с первых реализаций программного UART...
Собственно единственная наша общая ошибка только в том, что вместо объединенного подхода каждый старается остаться фанатом своего компилятора, семейства.... При том не всегда замечая (и тем более применяя) полезности из "противоположного лагеря".
Возможно там еще чего интересного для "больших кристаллов" в новом обновлении - я то не Сишник... Обновление по всем MCUdude платформам для ардуино 1.8.13 вроде совсем свеженькое - декабрьское (в ноябре еще не было)...
За ХРшную версию (1.8.9 и более ранние) ... я там автообновление напрочь закрыл "во избежание проблем"... УВЫ... автоматика (автообновлнеие) уже для ХР ... слишком современна - операционка "давится" приложениями для х64 и новыми добавками в сетевых технологиях...
там написано MicroCore требует Arduino IDE версии 1.6.13 или выше. и зачем
Цитата:
Зачем использовать ATtiny13 в проекте Arduino? Они ГРОМКО дешевые (мы говорим здесь о центах!) Они бывают как в DIP, так и в SOIC пакетах. Они совместимы по выводам с семейством ATtiny25 / 45/85 и часто совместимы с кодом Большинство функций Arduino реализовано в MicroCore. Благодаря MicroCore вы можете уместить большой объем кода высокого уровня в 1024 байта!
Насчет "требует Arduino IDE версии 1.6.13 или выше"... Там вопрос похитрее (и заметно хуже)... В прошлом году вероятно было что-то изменено в алгоритмах автообновления. Если базовая машина с виндовс ХР (х32) автообновление не просто"захлебывается" , но и портит уже установленную IDE... А версия 1.8.13 устанавливается ТОЛЬКО на 7-10ке. Разбираться с причинами тогда не стал - просто сделал копию с базовых файлов на другом ПК и затем восстанавливал содержимое для дополнительных платформ.
А вот под 7-10 любая из версий IDE продолжает корректно обновлять платформы... УВЫ... "дань современности"... (ТБХУ!!!)...
Просто подборка "дополнительного материала" от разных авторов. (как и z-uno и другие дополнительные платформы). Меня у MCUdude более другие АВРки интересовали - та же 8515/162, 16я, 128я и прочее... А подборка с 13-й удачнее таки у DIY - там 8-лапок побольше. Кстати... нигде не встречал КАЧЕСТВЕННОЙ платформы под тиньку 2313/4313. Да и ПИКи "особнячком" держутся.
Ранее шел разговор о том, что ардуиноIDE не такая уж и "детская шалость", которой можно побрезговать. Сколько народу пыталось доказать нежизнеспособность IDE... Теперь чаще слышу "обратный вариант"...
А правда одна - все надо использовать разумно-достаточно и взаимовыгодно.
...Просто подборка "дополнительного материала" от разных авторов. ...Кстати... нигде не встречал КАЧЕСТВЕННОЙ платформы под тиньку 2313/4313. ...Ранее шел разговор о том, что ардуиноIDE не такая уж и "детская шалость", которой можно побрезговать.
1)"подборка от разных" - мусорная каша на компьютере в иде, потом жалобы - то не работает и то не работает 2)гуглом легко ищется или на сайте, который от каши на компьютере не открывается https://github.com/SpenceKonde/ATTinyCore 3) разговор от о том что нафик эта иде не нужна, она нужна только для кухарок - проверил код блинка тини10 на линуксе без всяких иде, скомпилил без вопросов тем же чудесным универсальным макефайлом - получил абсолютно тот же результат и те же 66 байт. Причем GCC AVR из дебиановского репозитория, старенький атмелевский еще вариант. CPP - он и в Африке CPP (повторяюсь).
А мне ВЛОМ на сегодня составление макуфайлов учить. Тем более под каждый проект заново прописывать, ёжли есть хоть и "ограниченный рамками референса", но вполне устраивающий по качеству инструмент.
Насчет "каши" неверное утверждение ибо каждая платформа таки имеет свои прописи путей и свои подкаталоги. Ежли конечно грамотно разработана.
Сайт не от "каши на компьютере" не открывается, а от ограничений наложенных более "МОДЕОРНИСТСКИМ" ПО, применяемом на многих сайтах - в ХР данный МОДЕРНИЗЬМ уже не поддерживается.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения