Nikolay_Po (02.12.2018 18:51 - 18:59, просмотров: 314) ответил avrdude на Братцы ткните носом где не так сделал, тактируюсь от внутреннего 8МГц, отладчика с дебагом нету
Это что такое? if (zamer_1 ==2);
{f = 8000000/T; // Вычисляем частоту сигнала в Гц}
if (f <1200)
{
RELAY_PORT |= 1 << RELAY_PIN; //relay off
}
if (f>1250)
{
RELAY_PORT |= 1 << RELAY_PIN; //relay on
}
}
Преподаватель прикалывается над студентом?
Точка с запятой после проверки условия делает это условие обособленным оператором без влияния на последущие строки, которые, в своих скобках, выполняются безусловно.
Должно быть примерно так:
if (zamer_1 == 2) {
f = 8000000 / T; // Вычисляем частоту сигнала в Гц}
if (f < 1200) {
RELAY_PORT |= 1 << RELAY_PIN; //relay off
}
if (f > 1250) {
RELAY_PORT |= 1 << RELAY_PIN; //relay on
}
zamer_1 == 0;
}
Обратите внимание, если не обнулить флаг zamer_1, то до следующего прерывания таймера, ваш цикл успеет прокрутиться зря много раз.