Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
А вот ещё пример макроса для инициализации портов ввода/вывода ATmega, ATtiny. Не получается добавить вложение, вот прямая ссылка [url]www.avr-assm.ru\files\macro2.zip[/url]
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Здравствуйте, Друзья! Помогите пожалуйста. Никак не могу понять код умножения из атмеловской аппноы 200. Принцип действия каждой команды понятен, а вот в логику никак не могу въехать. Заранее спасибо!
Тут конечно не поспоришь. Заново изобретать велосипед нет смысла. Но всё же с кодом разобраться хочется. В аппноте подробно расписан алгоритм, но отсутствует разъяснение логики действий. Хотелось бы увидеть хотя бы формулу по котой ведётся расчёт. Если кто знает, был бы благодарен за помощь!
Привет форумчанам! Пока только курю форумы и даташиты, поэтому нужно мнение тех, кто в теме. Имеется давний проект https://www.drive2.ru/b/1561303/ Вот накарябал код, но надо идти дальше Вопрос как реализовать контроль переменного напряжения поступающего на вывод МК? Как прерывание по изменению состояния вывода или измерять ацп? Нужно начать процесс регулирования только после того, как генератор раскрутится, т.е с обмотки статора начнет поступать напряжение.
ок, спасибо ну а почему тогда производится вычитание смиещения ? http://images.slideplayer.com/16/526396 ... ide_29.jpg насколько я понимаю то сначала идут GPR а далее SFR и как по мне то для правильного указания действительного адреса следовало бы записать SFR+0x20
Для компилятора avrasm (avrasm2) использование данного макроса не имеет смысла, так как в аппнотовских файлах (.inc) адреса регистров уже скорректированы для использования в инструкциях in/out либо lds/sts. Этот макрос в avrasm и не применяется. Возможно в каких-то других средах программирования что-то как-то происходит иначе. Я знаю только avrasm, пока не было необходимости в чём то другом. О, вспомнил: в GCC это используется, смотрите в его документации.
Для компилятора avrasm (avrasm2) использование данного макроса не имеет смысла, так как в аппнотовских файлах (.inc) адреса регистров уже скорректированы для использования в инструкциях in/out либо lds/sts. Этот макрос в avrasm и не применяется. Возможно в каких-то других средах программирования что-то как-то происходит иначе. Я знаю только avrasm, пока не было необходимости в чём то другом. О, вспомнил: в GCC это используется, смотрите в его документации.
Ой-ой! Где ж это в инк-файлах "адреса скорректированы"? Там только встречается комент " ; MEMORY MAPPED" - типа "адресуется исключительно как память".
Стандартно приводится ряд адресации для команд in/out (если все регистры вписываются в область 0х01 -0х3F), а для работы с РСФ в диапазоне адресов 0х01 -0х3F как с ОЗУ (ld/st lds/sts) используется "имя регистра+0x20". Плюс особое внимание кристаллам с расширенной областью РСФ, где надо внимательно в даташит глядеть (что в любом случае не лишним будет) в раздел "register summary". Ибо "что сывше 0х3F (0х5F как ОЗУ)" доступно исключительно как ОЗУ и уже не требует пресловутого "+0x20".
Доброго времени суток Небольшая загвоздка с таймером1 в меге8 Значит, установил режим СТС, разрешил прерывания таймера по совпадению с OCR1A, загрузил числа в OCR1A. По прерыванию инвертируем состояние портаB. В avrstudio4 работает нормально, в протеусе и железе - почему-то частота инвертирования порта не зависит от OCR1AH, т.е. все происходит только по младшему регистру.
Спойлер
Код:
;разрешим сон idle mode in temp, MCUCR ori temp, 0b10000000 andi temp, 0b10001111 out MCUCR, temp ;таймер ser temp ; устанавливаем числа, с которыми будет сравниваться таймер out OCR1AL, temp out OCR1AH, temp clr temp out TCCR1A, temp ; ОС1А отключен ldi temp, 0b00001001 out TCCR1B, temp ; режим СТС ldi temp, (1<<OCIE1A) out TIMSK, temp ; разрешаем прерывания по совпадению sei
Nope1: sleep rjmp nope1
tim1_compa: ; обработка прерывания - ставим в лог. 1 нулевой бит портаB ldi temp, 0x0F out ddrb, temp in temp, portb com temp andi temp, 0x0F out portb, temp reti
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения