перенес мигалку из оверфлоу в капчуре двумя способами, но к сожалению не срабатывет, на осциле ничего не вижу ////прерывание захвата ICP1
ISR(TIMER1_CAPT_vect) {
switch(zamer_T)
{
case 0:
rising_1 = ICR1; // Запоминаем значение счётчика
OVF_counter = 0; // Обнуляем количество переполнений счётчика
zamer_T = 1; // Переходим к следующему вычислению
RELAY_PORT |= 1 << RELAY_PIN; //relay on ///////////////////////////////////////////////////////////////////////
break;
case 1:
rising_2 = ICR1; // Запоминаем значение счётчика
// Приводим все переменные к одному типу и вычисляем период импульса
T = (unsigned long)rising_2 - (unsigned long)rising_1 + ((unsigned long)OVF_counter * 65536UL);
zamer_T = 0;
zamer_1 = 2; // Переходим к следующему вычислению периода и частоты
RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
break;
}
}
////прерывание захвата ICP1
ISR(TIMER1_CAPT_vect) {
switch(zamer_T)
{
case 0:
rising_1 = ICR1; // Запоминаем значение счётчика
OVF_counter = 0; // Обнуляем количество переполнений счётчика
zamer_T = 1; // Переходим к следующему вычислению
RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
RELAY_PORT |= 1 << RELAY_PIN; //relay on ///////////////////////////////////////////////////////////////////////
RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
break;
case 1:
rising_2 = ICR1; // Запоминаем значение счётчика
// Приводим все переменные к одному типу и вычисляем период импульса
T = (unsigned long)rising_2 - (unsigned long)rising_1 + ((unsigned long)OVF_counter * 65536UL);
zamer_T = 0;
zamer_1 = 2; // Переходим к следующему вычислению периода и частоты
RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
break;
}
}