Прерывания на Attiny13

Vrt22
Offline
Зарегистрирован: 18.10.2016

Здравствуйте!

Пожалуйста, подскажите, как настроить прерывания. Смысл такой: отслеживаю наличие или отсутствие напряжения на двух линиях 220В с помощью подключенных к этим линиям оптронов. Сигналы с оптронов приходят на входы PB2 и PB3 ATtiny13. Естественно, имеем на входах Тиньки импульсы 50Гц. Считаем время между импульсами - если оно больше, к примеру, 50мс, значит, напряжения на линии нет. Как-то так.

 Так вот суть вопроса: импульсы с двух линий 220В (если они вуключены), естественно, приходят на два входа Тиньки одновременно. Как понять, что включены две линии, а не одна? И как различать, включена первая линия или вторая в настоящий момент?

Vrt22
Offline
Зарегистрирован: 18.10.2016
nik182
Offline
Зарегистрирован: 04.05.2015

Посмотреть уровни сигнала на линиях?

Vrt22
Offline
Зарегистрирован: 18.10.2016

В смысле - просто в цикле отслеживать уровни сигналов на входах PB2 и PB3, не используя прерывания? Или что имеется ввиду?

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Читай про PCINT. На все прерывания PCINT только один обработчик. При срабатывании прерывания в обработчике нужно считывать каждый пин PCINT для проверки его уровня (HIGH или LOW). Тогда и узнаешь, на какой именно пин пришел импульс (или сразу на оба).

Vrt22
Offline
Зарегистрирован: 18.10.2016

Понял примерно, спасибо.