sergs777, вангую, что в протеусе, в свойствах компонента МК просто не поменяли частоту на нужную.
Частоту ставлю в цифрах. Всё остальное ставлю в дефолт. Предполагаю, что будут читаться установки из сгенерированного в codevision файла. Перепробовал все комбинации с первым нулём в CKSEL. При симуляции зависимость периода от TCNT0 вообще непонятна.
Предполагаю, что будут читаться установки из сгенерированного в codevision файла.
Предположение неверное. Еще раз, правый клик в протеусе на AVRку и выставьте там частоты и настройки согласно фьюзам вашего проекта. Это нужно сделать ручками, из CV оно читает только файл прошивки, но не фьюзы. А по-умолчанию там частота 1 МГц стоит.
Это самый простой китайский ардуино. В нем сейчас зашита немного изменееная классическая программа имгания диода. Для проверки функционирования прошивальщика. Нормально функционирует. Сейчас хочу зашить рабочую прошивку. С одного вывода нужен импульсный сигнал в десятки килогерц. Алгоритм прокатываю на codevision 3.12. При отладек в протеусе зашел в полный тупик. CKSEL работают только для RC установки частоты. т. е. максимально 8 МГц. 16 даже с внешнего источника не получить. Периоды при отладке не соответствуют полученныым на коде в кодевизионе. Лепить отладчик, что бы с компа через com в TCNT значения менять для отладке и чем нибудь частоту мерить очень долго. Что делать, не зняю. Помогите пожалуйста.
sergs777, вообще-то про протеус отдельная тема есть. Просто в свойствах компонента AVR есть поле для частоты МК, просто впишите туда 16000000 и будет он симулироваться на 16 МГц, кристалл даже можно не ставить на схеме, оно не симулируется всё-равно.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
я наоборот немного усложнил: - добавил "вашей" математики - можно выбрать любой из таймеров (timer 0/1/2) - 2 варианта частоты системной шины: 16 и 1 МГц
Зарегистрирован: Пн мар 01, 2021 09:01:13 Сообщений: 15
Рейтинг сообщения:0
Привет всем, такой вопрос. На atmega328 настройка таймера такова TCCR0A = 0<<COM0A1|0<<COM0A0 TCCR0B = 1<<CS02 OCR0A = 109 TIMSK0 = 1<<OCIE0A TCCR0A = 1<<WGM01 Как понимаю таймер будет отсчитывать 0,00352 секунды. Если за этот переуд у меня произайдет событие, мне нужно сбросить таймер. Остановить счет, записать 0 в регистр TCNT0 и запустить счет. Получится так или нужно по другому?
Нет. Вы установили таймер в режим CTC (автосброс при совпадении с OCR0A) и установку флага требования прерывания. Т.е. каждые 0,125[мкс]*256*110=3520мкс таймер будет аппаратно сбрасываться и продолжать счет до следующего совпадения.
Зарегистрирован: Пн мар 01, 2021 09:01:13 Сообщений: 15
Рейтинг сообщения:0
А если другая ситуация. В пределах 0.0035 сек. должно произойти событие А которое сбросит таймер. Если время истекло, срабатывает прерывание на событие В. Как в таком случае сбросить таймер? И возможно такое сделать в нормальном режиме (WGM0[2:0] = 0)?
Почему все спрашиваете как сбросить таймер. Зачем тогда его вообще запускать? Если бы был вопрос как определить время между событиями А и В с помощью работающего в нормальном режиме таймера Т0 пришло событие А-запомнили состояние TCNT0_A пришло событие B-запомнили состояние Nb+TCNT0_B. Nb-число переполнений Время между событиями T(B-A)=32[µs]*{(Nb*256+TCNT0_B)-TCNT0_A}
trojninalex, ну тогда вам больше подходит режим CTC, нежели нормальный. В CTC разница лишь в том, что значение, на котором переполняется таймер (TOP) вы контроллируете. Сбрасывать таймер не нужно будет, он сам сбросится когда произойдет прерывание по переполнению, вам там надо будет обработать событие B. А если произойдет событие А, можно просто сбросить таймер, останавливать его необязательно для этого, но есть нюанс в том, что если он был близок к переполнению, прерывание всё-равно может произойти пока вы будете его сбрасывать.
Тема большая, возможно это уже обсуждалось. Нужно сформировать ШИМ на 16-битном таймере (Atmega1280, timer4, OC4A). Пробую использовать режим 15: загоняю "1" в регистры WGM43,WGM42,WGM41,WGM40, настраиваю делитель /1 код: tcnt4=0 tccr4a=&B11000011 tccr4b=&B00011001 tccr4c=0 ocr4a=333 Нету ШИМ. Ноль висит на выходе. Но вот если изменить WGM43 на ноль (tccr4b=&B00001001, режим 7) ШИМ появляется, работает в 10-битном режиме. В принципе, это хорошо и задача решена, но почему не работает fastpwm 15 mode? Земля в иллюминаторе осциллографа...
Думаю, так и должно быть. Точки SET и CLEAR совпадают. Можно попробовать режим 14, загрузив в ICR4 значение периода, а в OCR4A значение длительности. Если оставить режим 15, придется в OCR4A загружать значение периода, а длительность задавать в OCR4B(C)
Atmega8. Необходимо реализовать сигнал в виде прямоугольных импульсов с возможностью произвольно регулировать частоту и скважность посредством двух потенциометров. Один потенциометр регулирует частоту, другой, соответственно, скважность. ШИМ отбросил сразу, поскольку частоты ШИМа жестко фиксированы предделителем и плавной регулировки частоты не получится. Есть идея реализовать такое на двух таймерах в режиме СТС. Один таймер будет отвечать за частоту, другой за скважность. Как думаете, это хорошая идея?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения