Yushik (Андрей) » 10 янв 2021, 08:38
Здравствуй тёска e меня при данных настройках получается сделать 95 измерений за 1 полупериод сети, я хотел 1 измерение выделить для канала ADC1. Где я упустил догадался, ночью приснилось если я в обработчике прерывания АЦП переключаю канал то этого не достаточно поскольку программа уже ушла по вектору прерывания АЦП в этот макрос. А в регистрах данных АЦП естественно будут лежать данные от измерения предыдущего канала. Я попробовал переключить регистр ADMUX в обработчике прерывания INT_0 в момент перехода сети через 0, но и этого было недостаточно, потом я изменил условие в обработчике прерывания ADC, типа я выделяю 2 измерения из 95 на измерение канала ADC1. Этого уже хватило переменная ADC_TURN стала принимать коректные значения, может и оставлю так но скорее всего перенесу измерение этого канала где-то в конце измерения полупериода сети. Поскольку симистор у меня будет открываться в начале полупериода, а с зади полупериода он большую часть времени будет закрыт и там особо нечего будет мерять. Надо сделать исследование и создать файл ФК как в прерываниях мерять несколько каналов, поскольку если ставить несколько кубиков инициализации прерывания АЦП то из этого ничего не выйдет. Будет работать то прерывание которое инициализировано последним, это я на всякий случай чтоб нас новички потом не задолбали.
У вас нет доступа для просмотра вложений в этом сообщении.