|
CodeVisionAVR помогите по написанию! |
|
|
|
Oct 31 2009, 07:07
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 30-10-09
Пользователь №: 53 320

|
Задумка такая, надо одной кнопкой переключаться между циклами в которых что то выполняется, но если я нажимаю кнопку, то он проскакивает все циклы так как кнопку не успеваешь отпустить! Подскажите как лучше организовать алгоритм переключения одной кнопкой между циклами?! Вот не правильный текст программы Код //выводим на LCD "нажмите кнопку _start_" lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Hello!"); lcd_gotoxy(0,1); lcd_putsf("Press Start!"); while(PINA.0){ } //бесконечный цекл, ждем нажатие кнопки старт!!! lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Temp. beep"); lcd_gotoxy(0,1); lcd_putchar(t_count); while(PINA.0){ //бесконечный цекл, ждем нажатие кнопки старт!!! // if (PINA.3){ }; if (PINA.1){ //если нажата кнопка + t_count++; lcd_gotoxy(0,1); lcd_putchar(t_count); }; if (PINA.2){ //если нажата кнопка - t_count--; lcd_gotoxy(0,1); lcd_putchar(t_count); }; }
Причина редактирования: Оформление цитаты исходника.
|
|
|
|
|
 |
Ответов
|
Oct 31 2009, 12:20
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 30-10-09
Пользователь №: 53 320

|
Цитата(Genadi Zawidowski @ Oct 31 2009, 15:03)  Вот в этом архиве есть файл keyboard.c - в нём программное подавление дддребезга. А в файле hardware.c (hardware_ged_pressed_key()) - два варианта опроса клавиатуры - или кнопки, замыкающие вход процессора на массу или набор до четырёх кнопок, через резисторную цепочку подключенных ко входу АЦП на процессоре (до четырёх кнопок на один вход АЦП). Схемы резисторной цепочки в файле doc\keyboard_matrix.pdf http://electronix.ru/forum/index.php?act=a...st&id=37570спасибо конечно, но ничего в этих текстах не понял (((
|
|
|
|
|
Oct 31 2009, 22:34
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(ssvd @ Oct 31 2009, 15:20)  спасибо конечно, но ничего в этих текстах не понял ((( там, вроде, комментарии в файле keyboard.c на русском языке были, когд я писал. Функция hardware_ged_pressed_key() из файла hardware.c возвращает прзнак того, нажата ли какая-либо из кнопок и, собственно, номер (код) кнопки. Никаких ожиданий в этой функкции нет, так как она вызывается из обработчика таймерного прерывания около ста раз в секунду. Там, где она вызывается (ищется любым текстовым редактором) в файле keyboard.c - учитывается текущее состояние клавиатуры и давится дребезг (а так же определяется состойние "зажатой" кнопки - для отработки автоповтора (две скорости) или возврата признака "длинного" нажатия в вызывающую программу через функцию Код /* получение скан-кода клавиши или 0 в случае отсутствия. * если клавиша удержана, возвращается скан-код с добавленным битом 0x80 */ uint_least8_t kbd_scan(uint_least8_t * key, uint_least8_t * repeat) { ... }
Сообщение отредактировал Genadi Zawidowski - Oct 31 2009, 22:45
|
|
|
|
Сообщений в этой теме
ssvd CodeVisionAVR помогите по написанию! Oct 31 2009, 07:07 demiurg_spb Вам нужно применить алгоритм подавления дребезга к... Oct 31 2009, 08:02 DRUID3 Нужно просто добавить задержку (насколько помню та... Oct 31 2009, 08:15 demiurg_spb Цитата(DRUID3 @ Oct 31 2009, 11:15) Нужно... Oct 31 2009, 08:27 DRUID3 Разумно... Но для такого объема программы - самое ... Oct 31 2009, 08:31 demiurg_spb Цитата(DRUID3 @ Oct 31 2009, 11:31) Разум... Oct 31 2009, 08:48  ssvd Цитата(demiurg_spb @ Oct 31 2009, 12:48) ... Oct 31 2009, 09:12   demiurg_spb Цитата(ssvd @ Oct 31 2009, 12:12) Подскаж... Oct 31 2009, 13:36    ssvd Цитата(demiurg_spb @ Oct 31 2009, 17:36) ... Oct 31 2009, 15:43     demiurg_spb Цитата(ssvd @ Oct 31 2009, 18:43) как я у... Oct 31 2009, 20:42 Vetal-Soft Сделай так
Код
while(PINA.0){ }; //беско... Nov 2 2009, 07:55 ssvd вот что написал, проверьте пожалуйста.
вызывается ... Nov 2 2009, 15:40 Vetal-Soft бред...
Модератор (rezident). Это сообщение являе... Nov 3 2009, 08:33 ssvd Цитата(Vetal-Soft @ Nov 3 2009, 12:3... Nov 3 2009, 13:51 XVR Цитата(Vetal-Soft @ Nov 3 2009, 11:3... Nov 5 2009, 07:36  ssvd Цитата(XVR @ Nov 5 2009, 11:36) Ну перебо... Nov 9 2009, 10:09 Vetal-Soft Цитата(ssvd @ Nov 3 2009, 18:51) я вообще... Nov 4 2009, 08:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|