Не понятно какой контроллер, не известен код программы
Извините что не сказал- контроллер atmega8. А как он вообще устанавливается?,везде пишут что буфер приемника переполнен?,как вообще это досканально понять? к примеру я отправил данные и чатаю их:
Код:
read: sbis UCSRA,RXC rjmp read
in R17,UDR
получается флаг установиться если во время чтения придет еще байт в UDR что ли? Я пока в железе устройство не собирал решил сделать приборчег который показывает процент ошибки передачи данных по UART на модулях hc-12,пока смотрю в симуляции,возможно протеус логает не пойму,если я подключаю виртуальный терминал в симуляции и сам передаю данные через него куча раз то устанавливается флаг DOR типо что переполнен UDR приёмника я как понял,но почему то после установки DOR сразу все виснит в :
Код:
read: sbis UCSRA,RXC rjmp read
и данные больше не читаются RXC=0 всегда
,а как вообще сделать так чтобы флаг DOR =0 после того как он станет =1 ?, так что ли???:
Народ, что то не пойму - или лыжи не едут, или я. На тини 2313 не могу вывести сигнал тактирования на порт д2. Порт сконфигурирован на выход, фьюз установлен, а на PD2 тихо.
_________________ Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Народ, что то не пойму - или лыжи не едут, или я. На тини 2313 не могу вывести сигнал тактирования на порт д2. Порт сконфигурирован на выход, фьюз установлен, а на PD2 тихо.
Эта фича делается фьюзами, а не программно. Нужно ли настраивать порт на выход не помню. Пробуйте так и так. Давно было, у меня обратная ситуация была, устройство не работало, так как пин фьюзами был настроен как выход кварцевого генератора.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Добавлено after 7 hours 12 minutes 20 seconds: Народ, помогите. Кто может сгенерировать ассемблеровския листинг вот из этого http://radiokot.ru/circuit/digital/home/239/03.zip проекта, а то скачал студию, а разобратся не могу.
_________________ Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
я в курсе. Именно поэтому прошу асемблерный листинг после компиляции СИшного кода в студии. Если кто работает в студии это будет быстрее чем мне сейчас в ней ковырятся + к тому в протеусе нету файлов которые указаны в .include, и он на них ругается, а без них листинг мягко говоря не полный
_________________ Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн апр 23, 2018 20:52:05
Встал на лапы
Зарегистрирован: Вт мар 31, 2015 01:12:46 Сообщений: 89
Рейтинг сообщения:0
Всем доброго времени суток! Задача: помигать св-диодом с частотой 1Гц. МК - тини2313, частота 500кГц (что бы с коеф. дел 1024 получить частоту мигания 1Гц). Св-диод управляется кнопкой (переключение по фронту, без внешних прерываний). В программе обязательно задействовать таймер (для практического закрепления изученного материала). Таймер Т0 изучил все, кроме ШИМа. Я уже когда то задавал подобный вопрос здесь (313 страница), из предложенных вариантов выбрал такой (какой больше смог понять ): в главной программе я опрашиваю сост. кнопки. Если кнопка нажата, то... то что делать дальше не понимаю. Не понимаю как построить свою программу и где какой блок должен размещаться. Я имею ввиду, к примеру, вот где нужно разместить всю инициализацию связанную с таймером (все, включая уст. флага внеш. прерыв. и уст. необходимого коеф. дел.)? 1) до входа в осн. цикл (тогда где то я должен буду обнулить таймер?) 2) вкл. внеш. прерыв. до осн. цикла, а в подпрограмме вкл св-диод и задать коеф. деления 3) или нужно связать свою судьбу с прерыванием в канале А или В? в общем, мне не хватает понимая где что размещать и как построить програму так, что бы она состояла из блоков, как конструктор (как я понимаю, ведь к этому же необходимо стремится, создавая проект на ассемблере) Возможно у кого то есть пример правильного/профессионального построения программы? (желательно не сложную, сложности в "мигание двумя св-диодами" будет достаточно пока ) надеюсь, никого не запутал. Спасибо за ответы!
Я писал неоднократно. Книги: Вольфганг Трамперт "AVR-RISC микроконтроллеры фирмы ATMEL". Джон Мортон "Микроконтроллеры AVR. Вводный курс". Там примеры программ. И не только.
начальные настройки таймера (и не только) делаются (т.к. они один раз делаются) до главного цикла, там указываешь и режим работы и делители и разрешаешь прерывания. для более точных интервалов обычно используют режим СТС - в OCR0A заносишь значение и счетчик, досчитав до него сам обнуляется, для запуска обработчиков используй прерывания по совпадению (по переполнению работать не будет, т.к. переполнения не происходит).
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Подскажите кто знаком с БОД В тини13а есть функция программного отключения БОД. Пытаюсь ее активировать в IDLE режиме вот таким образом:
Код:
ldi r_temp, (1<<SE)|(0<<SM1)|(0<<SM0) out MCUCR, r_temp
ldi r_temp, (1<<BPDS)|(1<<BPDSE) out BODCR, r_temp
ldi r_temp, (1<<BPDS)|(0<<BPDSE) out BODCR, r_temp
sleep
Естественно БОД включен во фьюзах, но по току потребления вижу что при переходе в IDLE БОД не отключается (должно быть снижение на 15-17 мкА) Может программное отключение БОД возможно только в Power Down режиме? Даташит как-то расплывчато об этом говорит, остается ощущение что не только в Power Down
IDLE-режим по большому счету бесполезен. Снижение тока потребления минимально, так как работает практически все. Если и есть польза, то только в единственном случае, минимизировать собственные шумы при аналого-цифровом преобразовании. Так как в этом режиме выполнение программы остановлено, нет переключений сигналов в мк и на целевой плате.
И сам бы отказался от IDLE, да вот только прерывание от таймера необходимо, а как известно таймер из Power Down не пробуждает. С другой стороны в аппноуте "Innovative Techniques for Extremely Low Power Consumption with 8-bit Microcontrollers" перечислены и другие режимы кроме Power Down
Не понятно, зачем включать BOD, стремясь при этом снизить потребление.
По "бесполезности" режима IDLE. Картинка показывает снижение в ~4 раза. Если ещё отключить аналоговый компаратор, лапы перевести на вывод, потребление будет ещё ниже. Спойлер
БОД используется для обеспечения сохранности ЕЕПРОМ. По логике вещей отключить его программно в ИДЛЕ должно быть возможно, потому что в этом режиме отключается тактирование флэш и цпу, а значит и выполнение неверных команд, которые могут привести к порче памяти, невозможно
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения