Ср июн 06, 2018 13:10:22
#define BUTTON_UP (1<<PD4) //4 ножка
#define BUTTON_DOWN (1<<PD5) //5 ножка
#define BUTTON_START (1<<PD6) //6 ножка
#define BUTTON_STOP (1<<PD7) //7 ножка
Ср июн 06, 2018 13:26:51
if (!(PIND & pin_state)) //если кнопка физически нажата (логический 0 на n ножке порта D)
{
if(Button_count<20) Button_count++; //подавление дребезга при нажатии (кнопка физически нажата 20 тактов)
else
{
Button_state=1; //регистрируем нажатие кнопки
key_delay++; //как долго кнопка нажата
}
Ср июн 06, 2018 13:31:41
Ср июн 06, 2018 13:34:18
if (Button_count>0)Button_count--; //подавление дребезга при отжатии
else
{
Button_state=0; //регистрируем отжатие кнопки
if (key_delay<20000) Flag=1; //регистрируем короткое нажатие
else Flag=2; //регистрируем длительное нажатие
Ср июн 06, 2018 14:40:02
Сб июн 09, 2018 19:40:03
Неудивительно, что кнопки не опознаются. Процитированная строка по каждому прерыванию от таймера инитит эти самые служебные переменные, поэтому при сравнении if'ами в Button_count ничего, кроме единицы, быть не может.bezzabotna писал(а):int Button_count=0,Button_state=0,key_delay=0,Flag=0; //служебные переменные
Может быть неудачно скопипастила?bezzabotna писал(а):Почему? Я этот кусок кода на stm32 использовала, на реальном камне. Все работало.
Вс июн 10, 2018 09:32:01
Вс июн 10, 2018 13:38:14
Ср июл 04, 2018 07:41:38
Ср июл 04, 2018 07:52:39
во-первых, можно выключить. во-вторых, иголки - это, как правило, ЕСТЕСТВЕННОЕ состояние для Fast-PWM при одном из "крайних" значений регистра сравнения.artemik32 писал(а):Можно ли выключить отдельно тот или другой канал?
Ср июл 04, 2018 08:26:30
Сб июл 28, 2018 13:02:30
Сб июл 28, 2018 17:52:43
Сб июл 28, 2018 20:48:26
Ср авг 01, 2018 21:58:11
Ср авг 01, 2018 22:23:34
Чт авг 02, 2018 08:58:37
Чт авг 02, 2018 09:05:35
Чт авг 02, 2018 10:11:59
Чт сен 06, 2018 15:38:16