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

 
 
> Дребезг на клаве, Need your help !
dio
сообщение Jul 19 2006, 19:02
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Понимаю что вопрос тупой, но всё таки ...
Упростил пример до невозможного, а он опять не работает blink.gif



Цитата
int main( void )
{
byte t1,t2;
DDRB=0x0F; // b0-b3 : outputs b4-b7 : inputs
DDRD=0xFF; // d0-d7 output

PORTB=0x01;;
for(;;)
{
__delay_cycles(160000); // Пихните куда надо
t1=PORTB;
t2=0x10;
t1=t1 & t2;

if (t1==t2) PORTD=0xFF;
else PORTD=0x00;
}
}



Хочу чтоб загорелся диод на PORTD после нажатия клав. "1" на 4x4 клавиатуре.
Помогите плииииис !!!
sad.gif

Сообщение отредактировал dio - Jul 19 2006, 19:03
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Jul 19 2006, 23:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



При условии, что на считывающем входе PB4 имеется внешний pull-up резистор, а светодиод зажигается подачей лог. 0, я бы так написал эту прогу
Код
#define KB_SCAN1 0x01  //маска для сканирующей линии
#define KB_LINE1 0x10  //маска для считывающей линии
#define LED_OUT  0xFF  // маска для светодиода

int main( void )
{ unsigned char t1,t2;
  DDRB=0x0F;
  DDRD=0xFF;
  t2=0;
  t1=t2;
  while(1)
  { PORTB&=~KB_SCAN1;             //установим сканирующую линию
    t1=~PINB&KB_LINE1;            //опросим считывающую линию
    PORTB|=KB_SCAN1;              //сбросим сканирующую линию
    if (t2==t1)                   //состояния одинаковы?
    {                             //да, значит состояние кнопки устройчивое
      if (t1==0x00) PORTD|=LED_OUT;//погасим LED, если кнопка отжата
      else PORTD&=~LED_OUT;       //зажжем LED, если кнопка нажата
    }
    else t2=t1;
    __delay_cycles(160000);       //задержка для устранения дребезга
  }
}
Go to the top of the page
 
+Quote Post
dio
сообщение Jul 19 2006, 23:55
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(rezident @ Jul 20 2006, 02:18) *
а светодиод зажигается подачей лог. 0


Прежде чем все начать я видел что и другие так делали (через лог. 0) и подумал : " А почему 0 а не 1", и решил сделать свою версию. Я не использую pull-up, скорей всего в этом и проблема. Наверное всетаки перейду на общепринятую версию. smile.gif

Премного благодарен за уделённое Вами мне время !!! rolleyes.gif

Kalinixta !!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dio   Дребезг на клаве   Jul 19 2006, 19:02
- - impuls-v   схемку нарисуй.   Jul 19 2006, 21:01
|- - dio   Цитата(impuls-v @ Jul 20 2006, 00:01...   Jul 19 2006, 21:34
|- - Tiro   Цитата(dio @ Jul 20 2006, 00:34) Цитата(i...   Jul 19 2006, 21:58
|- - rezident   Цитата(dio @ Jul 20 2006, 03:34) Нет ника...   Jul 19 2006, 22:03
|- - dio   ЦитатаЕсли используете Bit0 для ввода, то почему м...   Jul 19 2006, 22:24
||- - rezident   Цитата(dio @ Jul 20 2006, 04:24) ЦитатаЕс...   Jul 19 2006, 22:37
|- - Tiro   Уважаемый rezident, будьте внимательны! В пер...   Jul 19 2006, 22:29
|- - dio   ЦитатаЧтобы его программа пошла, ему достаточно ст...   Jul 19 2006, 22:43
- - dio   Работает !!! не совсем как хотелось...   Jul 19 2006, 23:01
- - dio   Kalinixta !!! -> Спокойной ночи ...   Jul 19 2006, 23:58
- - WHALE   вообще-то светодиоды "0" зажигают по при...   Jul 20 2006, 15:35
|- - Rst7   Цитата(WHALE @ Jul 20 2006, 18:35) вообще...   Jul 21 2006, 10:20
- - Woodoo   на счет светодиода, dio, вы же его через токоогран...   Jul 20 2006, 17:33
- - dio   Цитата(Woodoo @ Jul 20 2006, 20:33) вы же...   Jul 20 2006, 19:33
|- - Alex_Pol   Цитата(dio @ Jul 20 2006, 22:33) Цитата(W...   Jul 21 2006, 09:57
- - WHALE   в avr одинаковая нагрузочная способность и по 0 и ...   Jul 21 2006, 05:00
- - GL_basik   Возможно проблема в следующем. (5-1.8)=3.2В 3.2/36...   Jul 21 2006, 08:31
- - dio   Извините за долговременное отсутствие, не было воз...   Jul 26 2006, 21:04


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 06:27
Рейтинг@Mail.ru


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