реклама на сайте
подробности

 
 
> CodeVisionAVR помогите по написанию!
ssvd
сообщение Oct 31 2009, 07:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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);
        };
    }
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 19)
Vetal-Soft
сообщение Nov 3 2009, 08:33
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 16-06-05
Пользователь №: 6 074



бред...

Модератор (rezident). Это сообщение является флудом и нарушает п.2.1в Правил форума. Как-либо аргументируйте Вашу оценку предыдущего сообщения топикстартера.
Go to the top of the page
 
+Quote Post
ssvd
сообщение Nov 3 2009, 13:51
Сообщение #17


Участник
*

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



Цитата(Vetal-Soft @ Nov 3 2009, 12:33) *
бред...


я вообще то за помощью сюда пришел, а не выслушивать тупые высказывания... Хочешь отписывать "умными" высказывания или где флудят.
Go to the top of the page
 
+Quote Post
Vetal-Soft
сообщение Nov 4 2009, 08:44
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 16-06-05
Пользователь №: 6 074



Цитата(ssvd @ Nov 3 2009, 18:51) *
я вообще то за помощью сюда пришел, а не выслушивать тупые высказывания... Хочешь отписывать "умными" высказывания или где флудят.

Прошу прошения, погорячился.

Проверяем:
1. Почему фукция определена как int ? Прочитайте про типы переменных в Си. По логике она должна возвращать char т.е. байт.
2. Зачем городить массив button_state[]?
3. И самое главное. Что будет возвращать эта функция?
если return выполняется только при услвии if(anti_drb_counter==9)
и когда будет выполнятся это условие? отвечу )) если не нажата ни одна кнопка то KeyState() равно 0xff (при условии что выводы родтянуты к VCC) ... или если нажата кнопка и в момент вызова этой функции нет дребезгаконтактов. Во всех другиг случаях она будет взвращять НОЛЬ!
ЗЫ .... я, если честно совершенно не понимаю, чего хотел человек от этого куска кода, здесь даже знания си ни причем, просто полное не понимание происходяшего ....

Сообщение отредактировал Vetal-Soft - Nov 4 2009, 08:45
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 5 2009, 07:36
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Vetal-Soft @ Nov 3 2009, 11:33) *
бред...
Ну переборщил человек немного с кодом, бывает rolleyes.gif
Все должно быть проще -

Код
int KeyState(void)
{
int i,pinb_state = PINB;

for(i=0;i<10;++i)
  {
   int new_pinb_state;
   delay_ms(20);
   new_pinb_state = PINB;
   if (new_pinb_state==pinb_state) return pinb_state;
   pinb_state=new_pinb_state;
  }
return -1;
}
Go to the top of the page
 
+Quote Post
ssvd
сообщение Nov 9 2009, 10:09
Сообщение #20


Участник
*

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



Цитата(XVR @ Nov 5 2009, 11:36) *
Ну переборщил человек немного с кодом, бывает rolleyes.gif
Все должно быть проще -



Спасибо большое!
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 16:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01444 секунд с 7
ELECTRONIX ©2004-2016