|
Не работает прибавление 1 к переменной при нажатии на кнопку |
|
|
|
May 9 2011, 06:05
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577

|
Доброго времени суток! Всех с Днем Победы! Желаю чтобы агрессивные политики воевали только в парламентах по мордам друг друга! биты конфигурации задаю вручную, RA0 сидит на +5В через резистор 4к7, кнопка на "массу", МК - pic16f72. Срабатывание кнопки гарантировано доходит до RA0 (мерял на выводе). При "ручной" записи в порт через переменную индикация работает нормально. Код #include <pic.h>
#define knopka_start RA0 #define all_1 RC4 unsigned char time1 = 0;
void podgot (void) { ADCON1 = 0x07; TRISA = 0b111111; TRISB = 0b00000000; TRISC = 0b00000000; RBPU = 0; PORTA = 0; PORTB = 0b11111111; PORTC = 0b11111111; }
const unsigned char arr_seg [10] = { /* начало массива 0bABCDEFGH <– расположение сегментов по битам */ 0b00000011, // «0» ! 0b10011111, // «1» ! 0b00100101, // «2» ! 0b00001101, // «3» ! 0b10011001, // «4» ! 0b01001001, // «5» ! 0b01000001, // «6» ! 0b00011111, // «7» ! 0b00000001, // «8» ! 0b11110111, // «9» ! };
void main (void) { podgot(); all_1 = 0; PORTB = arr_seg [time1]; if (knopka_start == 0); { time1 = time1 + 1; } }
Сообщение отредактировал loghir - May 9 2011, 06:05
|
|
|
|
|
 |
Ответов
|
May 9 2011, 09:55
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577

|
Цитата Где бесконечный цикл (у вас - ожидания нажатия кнопки)? Спасибо, добавил while(1) Цитата Где антидребезг? не все сразу - дребезг экспериментам не помеха. Цитата Где отработка нажатия и отжатия кнопки? отработку нажатия попытался реализовать так: Код if (knopka_start == 0); а отжатие зачем как-то отрабатывать? Код void main (void) { podgot(); while(1) { time1 = 1; all_1 = 0; PORTB = arr_seg [time1]; if (knopka_start = 0); { time1 = time1 + 1; } } }
|
|
|
|
|
May 9 2011, 12:18
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(loghir @ May 9 2011, 13:55)  не все сразу - дребезг экспериментам не помеха. Если не помешает правильно интерпретировать результаты экспериментов. Цитата отработку нажатия попытался реализовать так: Код if (knopka_start == 0) Вам нужно распознать не состояние кнопки, а изменение состояния. Вероятно, нужно сравнивать текущее состояние кнопки с предыдущим. А отсюда и до анти-дребезга совсем рядом. Цитата а отжатие зачем как-то отрабатывать? Дык разные бывают задачи. Иногда интересует момент нажатия, иногда наоборот, иногда оба. Цитата Код ... PORTB = arr_seg [time1]; // и что получится при time1 >= 10 ? if (knopka_start = 0); // '=' - оператор присваивания, '==' - оператор сравнения, ';' после ')' ну очень лишний // результат '(knopka_start = 0)' - всегда false, а '(knopka_start = 123)' - всегда true. ...
|
|
|
|
Сообщений в этой теме
loghir Не работает прибавление 1 к переменной при нажатии на кнопку May 9 2011, 06:05 V_G А вы когда-нибудь программы для микроконтроллеров-... May 9 2011, 07:21 V_G Отжатие совместно с антидребезгом надо отрабатыват... May 9 2011, 12:19 loghir ЦитатаЕсли не помешает правильно интерпретировать ... May 9 2011, 14:08 sergeeff Цитата(loghir @ May 9 2011, 18:08) забавн... May 9 2011, 14:25 xemul Цитата(loghir @ May 9 2011, 18:08) Если б... May 9 2011, 15:30 loghir ЦитатаВся ваша программа - полное отсутствие поним... May 9 2011, 15:10 sergeeff Цитата(loghir @ May 9 2011, 19:10) Чтобы ... May 9 2011, 16:02 loghir Цитата';' в С - не просто закорючка. Сомне... May 9 2011, 16:45 sergeeff Цитата(loghir @ May 9 2011, 20:45) Спасиб... May 9 2011, 17:05 xemul Цитата(loghir @ May 9 2011, 20:45) Спасиб... May 9 2011, 19:09 V_G Цитата(xemul @ May 10 2011, 06:09) Тогда ... May 9 2011, 23:19 loghir Тут не гадать, а пробовать надо: в другом "бу... May 10 2011, 13:23 sergeeff Цитата(loghir @ May 10 2011, 17:23) Тут н... May 10 2011, 14:10 loghir sergeeff
ЦитатаПростой вопрос. Вы уверены, что мож... May 10 2011, 15:59 sergeeff Цитата(loghir @ May 10 2011, 19:59) Прочи... May 10 2011, 17:10 loghir ЦитатаTак как у PIC'ов ног мало, а функций и п... May 11 2011, 18:29 xemul Цитата(loghir @ May 11 2011, 22:29) Я тут... May 11 2011, 20:22 sergeeff Попробуйте простой тест:
Кодvoid main (void... May 11 2011, 19:14 loghir Проверил код
Кодvoid main (void)
{
podgot... May 12 2011, 15:16 xemul Цитата(loghir @ May 12 2011, 19:16) после... May 12 2011, 16:04 sergeeff Кодif((knopka_prev == 0) && ... May 12 2011, 15:37 loghir Спасибо, уже убедился другим способом:
Кодif(... May 12 2011, 16:08 sergeeff Цитата(loghir @ May 12 2011, 20:08) Судя ... May 12 2011, 16:39 RunneR2 Раз не работает с переобъявлением ноги, попробуйте... May 12 2011, 17:36 loghir Цитатанезнаю что у вас за компилятор,
PICC 8.05pl2... May 17 2011, 09:49 sergeeff Цитата(loghir @ May 17 2011, 12:49) Алгор... May 17 2011, 10:13 loghir 1. Со сборкой программатора (пардон, 3-х программа... May 17 2011, 15:51 sergeeff Цитата(loghir @ May 17 2011, 18:51) Один ... May 17 2011, 16:42 loghir Если бы нюансы! Неправильные схемы включения и... May 22 2011, 16:05 sergeeff Цитата(loghir @ May 22 2011, 20:05) Если ... May 22 2011, 16:08 loghir ЦитатаВы предлагаете вам схемку на форуме спаять?
... May 22 2011, 18:08 sergeeff Цитата(loghir @ May 22 2011, 22:08) Я скр... May 22 2011, 19:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|