1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- По логіці роботи програми.
- Використовуються два таймери - 0 та 2.
- Таймер0 викорисовується лише для запуску перетворень АЦП.
- В обробнику переривань від АЦП обчислюється напруга мережі 220В,
- детектується перехід через "0", та виконується ПІД-синхронізація частоти
- другого таймера до частоти мережі.
- Таймер0 налаштовано на частоту 5 кГц (період 200 мкс) - в 100 разів більше від
- частоти мережі. Десь читав, що треба 100+ разів від частоти вимірюваної
- напруги. Тобто треба збільшити частоту?
- Таку частоту не можна задати віртуальному таймеру - треба шукати інші
- можливості для запуску АЦП з потрібною частотою.
- Зідно налаштувань таймера - в дійсності його частота в два рази менша, тобто
- період 400 мкс. Можливо помилка налаштування.
- Таймер2 працює з частотою 50 Гц (період 20 мс), в процссі роботи підстроюється
- під частоту мережі.
- В обробнику переривань теймеру2 виконуються:
- - Razgon_() - управління релє
- - якщо pdm, то PDM_() - твердотільне релє, щось там рахують і міняють
- прапорець ,по якому вже буде TURN_SSR_ON чи TURN_SSR_OFF
- - інвертується флаг напівволни мережевої напруги (?)
- - завантажуєтся нове значення в дільник таймеру2
- - рахуються періоди до секунди. коли секунда:
- - оновлення дісплею(?)
- - контролюється таймаут меню
- - контроль таймауту для усарт
- - відсилання репорту на ADprotocol
- - Buttons_() - опитування кнопок.
- Зроблю:
- один VT на 50 Гц - релюхі
- другий VT на 1 сек
- третій VT на 50 Гц - кнопки. або, краще, окремий потік.
- -----
- Опитування кнопок - евенти
- https://www.playembedded.org/blog/mastering-exti-chibios-pal/
- -----
- 20.11.2023
- На цьому - все.
- тут тупік.
- воно не робить - скоріш за все прибрав щось зайве, код такий, що розбиратись в
- ньому немає жодного бажання.
- краще почати з 0.
|