Sancho писал(а): ↑17.10.2020{, 22:42}
Прерывание можно объявить в любой момент.
Только не в составе функции? Задекларировал в сетапе - компилится, но не работает)
Sancho писал(а): ↑17.10.2020{, 22:42}
Так-же его можно всегда перенастроить - изменить обработчик или событие его вызывающее.
Да, наверное, но мне пока рано... пока копипаст... вдумчивый копипаст
Отправлено спустя 49 минут 32 секунды:
Еще не могу понять почему выход на 7 пине не работает в такой конструкции
bool re=0;
void setup()
{
attachInterrupt (0, _SCT_1coutFunction, FALLING );
attachInterrupt(0, _SCT_1positiveCoutFunction, RISING );
pinMode(7, OUTPUT);
}
void loop()
{
digitalWriteFast(7, re);
}
void _SCT_1coutFunction()
{
re=0;
attachInterrupt( 0 , _SCT_1positiveCoutFunction, RISING );
}
void _SCT_1positiveCoutFunction()
{
re=1;
attachInterrupt( 0 , _SCT_1coutFunction, FALLING );
}
Но работает в такой
void setup()
{
attachInterrupt (0, _SCT_1coutFunction, FALLING );
attachInterrupt(0, _SCT_1positiveCoutFunction, RISING );
pinMode(7, OUTPUT);
}
void loop()
{
}
void _SCT_1coutFunction()
{
digitalWriteFast(7, 0);
attachInterrupt( 0 , _SCT_1positiveCoutFunction, RISING );
}
void _SCT_1positiveCoutFunction()
{
digitalWriteFast(7, 1);
attachInterrupt( 0 , _SCT_1coutFunction, FALLING );
}
Не работает в этой
bool Dubl_fr;
bool out7;
void setup()
{
attachInterrupt (0, _SCT_1coutFunction, FALLING );
attachInterrupt(0, _SCT_1positiveCoutFunction, RISING );
pinMode(7, OUTPUT);
}
void loop()
{
out7 = Dubl_fr;
digitalWriteFast(7, out7 );
}
void _SCT_1coutFunction()
{
Dubl_fr = 0;
attachInterrupt( 0 , _SCT_1positiveCoutFunction, RISING );
}
void _SCT_1positiveCoutFunction()
{
Dubl_fr = 1;
attachInterrupt( 0 , _SCT_1coutFunction, FALLING );
}
Но работает в этой
unsigned long CP;
bool Dubl_fr;
unsigned long _SCT_1P= 0UL;
unsigned long _SCT_1IC= 0UL;
bool out7;
void setup()
{
_SCT_1P=micros();
attachInterrupt (0, _SCT_1coutFunction, FALLING );
attachInterrupt(0, _SCT_1positiveCoutFunction, RISING );
pinMode(7, OUTPUT);
}
void loop()
{
if((( micros()-_SCT_1P) > 1000000 )||(( micros()-_SCT_1P) <0))
{
CP = _SCT_1IC;
_SCT_1IC=0;
_SCT_1P = micros();
}
out7 = Dubl_fr;
digitalWriteFast(7, out7 );
}
void _SCT_1coutFunction()
{
_SCT_1IC++;
Dubl_fr = 0;
attachInterrupt( 0 , _SCT_1positiveCoutFunction, RISING );
}
void _SCT_1positiveCoutFunction()
{
Dubl_fr = 1;
attachInterrupt( 0 , _SCT_1coutFunction, FALLING );
}
Это возможна фишка ядра?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.