Страница 2 из 2
Re: Atmega8 и клавиатура PS/2
Добавлено: Чт фев 23, 2012 09:52:25
svs39
MyXaSA писал(а):
Коты, вы вроде все мозговитые тут, кто-то полюбому клаву подключал к МК.... help работа встала!!!

запускал давно по классике- сайтa atmel - avr313 - DOC1235.PDF (-keybord). Запускается, а потом делаеш под себя
Re: Atmega8 и клавиатура PS/2
Добавлено: Чт фев 23, 2012 15:45:43
Jack_A
svs39 писал(а): Запускается, а потом делаеш под себя
Ну зачем же так мрачно

Re: Atmega8 и клавиатура PS/2
Добавлено: Пт фев 24, 2012 08:03:35
uk8amk
MyXaSA, убедитесь, что у вас корректно работает функция приема байта ISR(INT0_vect). Здесь либо отладчиком(но у М8 нет отладочных интерфейсов, поэтому можно взять М16 например - у нее есть JTAG хотя бы), либо как сказали выше юзайте UART и кидайте полученные скан-коды в терминалку. Типа этого:
Код: Выделить всё
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;
}
}
}
Но вывод в UART должен быть буферизован(типа кольцевого буфера) и управляться только прерыванием(UART_TXC) т.к. нельзя "вешать" прерывание INT0, получающее биты от клавы. Т.е. стандартный putchar() из stdio.h скорее всего не проканает. Далее, когда вы увидите что функция приема работает безошибочно, тогда приступите к отладке механизма дешифрации скан-кодов.