ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 ноября
850538 Топик полностью
Лагунов (23.06.2018 10:25 - 10:28, просмотров: 210) ответил Make_Pic на Гуру - Подскажите pls чайнику (чтобы сильно не пинали меня здесь :) красивый компактный код опроса клавиатурной матрицы 4Х4 кнопок с защитой от дребезга на С (БЕЗ С++)?
я вот так делаю, в прерываниях от SysTick (каждую 1 мс): Порт H0, H1 - адрес для 74НС4051, который переключает столбцы // KLAVIATURA uint16_t y=1; for(x=0;x<4;x++) { if (HAL_GPIO_ReadPin (GPIOC, y)==0) { DRBKL[ADRKL*4+x]=0; } else { if (DRBKL[ADRKL*4+x]<20) { DRBKL[ADRKL*4+x]=DRBKL[ADRKL*4+x]+1; if (DRBKL[ADRKL*4+x]>=20) { DRBKL[ADRKL*4+x]=20; NAZKL=KODKL[ADRKL][x]; HAL_TIM_OC_Start(&htim3, TIM_CHANNEL_1); SCZVUK=30; } } else { SCKL[ADRKL*4+x]=SCKL[ADRKL*4+x]+1; if (SCKL[ADRKL*4+x]>250) { //ZVUK HAL_TIM_OC_Start(&htim3, TIM_CHANNEL_1); SCZVUK=50; SCKL[ADRKL*4+x]=0; } } } y=y<<1; } ADRKL=ADRKL+1; if (ADRKL>3) ADRKL=0; HAL_GPIO_WritePin(GPIOH, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOH, ADRKL, GPIO_PIN_SET);