запускал давно по классике- сайтa atmel - avr313 - DOC1235.PDF (-keybord). Запускается, а потом делаеш под себяMyXaSA писал(а):
Коты, вы вроде все мозговитые тут, кто-то полюбому клаву подключал к МК.... help работа встала!!!![]()
Atmega8 и клавиатура PS/2
Re: Atmega8 и клавиатура PS/2
- Реклама
Re: Atmega8 и клавиатура PS/2
Ну зачем же так мрачноsvs39 писал(а): Запускается, а потом делаеш под себя
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: Atmega8 и клавиатура PS/2
MyXaSA, убедитесь, что у вас корректно работает функция приема байта ISR(INT0_vect). Здесь либо отладчиком(но у М8 нет отладочных интерфейсов, поэтому можно взять М16 например - у нее есть JTAG хотя бы), либо как сказали выше юзайте UART и кидайте полученные скан-коды в терминалку. Типа этого:
Но вывод в UART должен быть буферизован(типа кольцевого буфера) и управляться только прерыванием(UART_TXC) т.к. нельзя "вешать" прерывание INT0, получающее биты от клавы. Т.е. стандартный putchar() из stdio.h скорее всего не проканает. Далее, когда вы увидите что функция приема работает безошибочно, тогда приступите к отладке механизма дешифрации скан-кодов.
Код: Выделить всё
ISR(INT0_vect)
{
static uint8_t DATA;
if(!edge)
{
if(bitcnt < 11 && bitcnt > 2)
{
DATA = (DATA >> 1);
if(PINC && (1<<DAT))
{
DATA |= 0x80;
}
}
MCUCR = 3;
edge = 1;
}
else
{
MCUCR = 2;
edge = 0;
if(--bitcnt == 0)
{
uart_putchar(DATA);//вот здесь помещаем полученный байт в буфер на передачу
bitcnt = 11;
}
}
} 