cuneum, ваш S_meter_13_PWM.ino_a ttiny13a_9600000L.he x к реальному 13A работает,
регулируется от 0 до максимума, но частота низкая (с делителем /8, Fout pwm ~2,3 kHz). (Fclock = 9,6 MHz, L fuse: 7A) .
---
Да, теперь вижу, и на симуляторе низкая.
cuneum, ваш S_meter_13_PWM.ino_a ttiny13a_9600000L.he x к реальному 13A работает,
регулируется от 0 до максимума, но частота низкая (с делителем /8, Fout pwm ~2,3 kHz). (Fclock = 9,6 MHz, L fuse: 7A) .
---
Да, теперь вижу, и на симуляторе низкая.
Читайте #1643. "Как у автора" частота ШИМ-а ~19 kHz. ШИМ 2.5 kHz не хочет, причинам там он написал.
Переделал код полностью, моя версия занимает 136 байт и должна выдавать ~30..38кГц ШИМ, по крайней мере в Протеус она это делает. Выводы и уровни сигнала прежние. Уровни задаются в единицах квантования ADC (0..1023) в массиве из 16 пороговых значений. Предполагается, что будут заданы те точки на графике, что соответствуют значениям шкалы стрелочного индикатора и входным уровням S. Изменение положения стрелки скачком, сглаживание достигается RC-цепью по выходу ШИМ и входу S, интерполяция в данной версии кода не применяется.
Для формирования ШИМ применяется метод FastPWM со счётом до переполнения.
Аналоговый вход - PB4 (0..5V)
Выход ШИМ - PB0
Последний раз редактировалось cuneum; 03.02.2025 в 23:54.
Очередная проблема.. Изготовил плату, спаял устройство. Также изменил программу с целью использовать второй вход АЦП для измерения выходной мощности. То есть, контроллер также выполняет роль переключателя. Выход используется тот-же как и стрелочный прибор. В режимн измерения выходной мощности фактически измеряется выходное напряжение. Ситуация такая - при наладке, происходит следующее. Напряжение на вход АЦП подаю с переменного резистора 10 ком. Сигнал контролирую осциллографом. При вращении резистора, почти до среднего положения движка, скважность увеличивается незначительно, затем почти скачком растет до максимальной. Напряжение на движке переменного резистора меняется похожим образом и не поднимается выше 3,8 вольта, хотя резистор запитан от 5 вольт). Вернулся к макету, на котором установлена другой экземпляр Attiny13. Та же картина.
Если у кого есть желание, посмотрите пож. исходник, может там что намудрил.. А если есть возможность проверить на своем железе, буду признателен.
Кстати, какое входное сопротивление АЦП (читаю даташит, но не думаю, что я там что-то прочитаю, ведь на одном входе напряжение с переменного резистора меняется плавно).
Также приложил схему...
Измените строку 48:
от
наКод:DDRB=0x0D;
Код:DDRB=0x01;
Не понял: работает или нет? (другими словами, пожалуйста).
А вот это проблему устранило. Жаль, что не внял совету сразу. Если без делителя, устройство работало несколько секунд, а вчера даже с делителем на 8, иногда зависало. Сейчас уже полчаса работает. Но, я уже суеверным стал, поэтому не будем торопиться. Но, все равно, спасибо.
Есть, правда, еще обстоятельство.. С ожиданием установки флага ADIF, наверное, десятки конструкций имеются, в которых именно так. Правда, там везде Atmega8, 168, 328.
Не работает...
В Proteus с DDRB=0x0D; не работало. С DDRB=0x01; работало. Попробую тестовой бредборд с ATtiny13A.
---
Попробовал. Поправка только в DDRB=0x01; - работает и на тестовой бредборд с ATtiny13A (код: в Arduino IDE + MicroCore).
Последний раз редактировалось veso74; 06.02.2025 в 13:17.
Эту тему просматривают: 6 (пользователей: 0 , гостей: 6)