msg31
New member
Доброе время суток, коллеги.
Решил написать стабилизированный регулятор мощности с управлением через Web - интерфейс на ESP8266 и столкнулся с двумя проблемами:
1) Крайне медленно работает AnalogRead(). За один полу-период сетевого напряжения удается считать примерно 25 значений. Для более-менее правильного расчете TrueRMS приходится брать 10 полупериодов. Ну это ладно, проблема нерешаемая, поскольку АЦП у ESP8266 программный и поэтому по-определению не может быть быстрым.
2) Если повесить прерывание на какой-либо порт, то вызов этого прерывания довольно быстро приводит к перезагрузке ESP с ошибкой (скрин ошибки прилагаю)
Вопрос: Может есть какие-нибудь особенности использования внешних аппаратных прерываний, которые я не знаю.
В прерывании практически ничего не делается. Если убрать источник прерывания (отсоединить детектор нуля), то все работает корректно.
Решил написать стабилизированный регулятор мощности с управлением через Web - интерфейс на ESP8266 и столкнулся с двумя проблемами:
1) Крайне медленно работает AnalogRead(). За один полу-период сетевого напряжения удается считать примерно 25 значений. Для более-менее правильного расчете TrueRMS приходится брать 10 полупериодов. Ну это ладно, проблема нерешаемая, поскольку АЦП у ESP8266 программный и поэтому по-определению не может быть быстрым.
2) Если повесить прерывание на какой-либо порт, то вызов этого прерывания довольно быстро приводит к перезагрузке ESP с ошибкой (скрин ошибки прилагаю)
Вопрос: Может есть какие-нибудь особенности использования внешних аппаратных прерываний, которые я не знаю.
В прерывании практически ничего не делается. Если убрать источник прерывания (отсоединить детектор нуля), то все работает корректно.
Код:
void flCrossZeroSet()
{
delayMicroseconds(50);
flCrossZero=1;
zPS++;
if (StateVolts==1 )
{
CntPeriod++;
if (CntPeriod>10) StateVolts=2;// Если был расчет тока (напряжения), то ставим признак его окончания
}
if (StateVolts==0)
{
index_input=0;
StateVolts=1;
CntPeriod=0;
SqNaprT=0;
zPS=0;
}
if (StateVolts==4)
{
StateVolts=0;
}
}
Вложения
-
10.2 KB Просмотры: 58
Последнее редактирование: