Цитата Сообщение от Error404 Посмотреть сообщение
Подсовывать раскладку надо только по желанию пользователя, нажатием спецклавиши обрабатываемой прошивкой конвертора(адаптера PS2).
Да да. Есть три режима переключаемые Scroll Lock

1) Русская раскладка (Scroll Lock горит)
2) Английская раскладка (Scroll Lock горит)
3) Автоматическая раскладка (Scroll Lock не горит)

Если в исходниках закомментировать строку #define LED_RUSLAT, то будет всего два режима. По умолчанию для ATMega8 и 48 эта строка закомментирована.

---------- Post added at 11:38 ---------- Previous post was at 11:35 ----------

В начале исходников идет привязка к ножкам для любых МК.

Скрытый текст


#ifdef ATMEGA16
#include <mega16.h>

// Настройка отдельных кнопок
#define OUT_PORT PORTD // Порт к которому подключены входы светодиодов
#define OUT_DDR DDRD
#define OUT_RESET 0 // Вывод порта для кнопки сброса
#define OUT_US 4 // Вывод порта для кнопки УС
#define OUT_SS 5 // Вывод порта для кнопки СС
#define OUT_RUSLAT 6 // Вывод порта для кнопки РУС/ЛАТ

// Настройка светодиодов
#define LED_PIN PIND // Порт к которому подключены входы светодиодов
#define LED_RUSLAT 1 // Вывод порта для вход индикатора РУС/ЛАТ
#define LED_TAPE 3 // Вывод порта для входа индикатора МАГНИТОФОН

// Настройка подключения клавиатуры
#define PS2_PORT PORTB // Порт к которому подключена клавиатура
#define PS2_PIN PINB
#define PS2_DDR DDRB
#define PS2_CLOCK 3 // Вывод порта для линии данных
#define PS2_DATA 4 // Вывод порта для тактового входа

// Настройка джойстика
#define JOY_PIN PINB // Порт к которому подключен джойстик
#define JOY_UP 0 // Вывод порта для кнопки вверх
#define JOY_DOWN 1 // Вывод порта для кнопки вниз
#define JOY_LEFT 5 // Вывод порта для кнопки влево
#define JOY_RIGHT 6 // Вывод порта для кнопки вправо
#define JOY_FIRE 7 // Вывод порта для кнопки выстрел

// Подключение матрицы
#define DECODE_DDR DDRC
#define DECODE PORTC = data[(unsigned char)PINA];
#endif

//---------------------------------------------------------------------------

#ifdef ATMEGA8
#include <mega8.h>
// Биты порта D
#define OUT_PORT PORTC // Порт к которому подключены перечисленные ниже кнопки
#define OUT_DDR DDRC
#define OUT_US 3 // Вывод порта для кнопки УС
#define OUT_SS 4 // Вывод порта для кнопки СС
#define OUT_RUSLAT 5 // Вывод порта для кнопки РУС/ЛАТ

// Настройка подключения клавиатуры
#define PS2_PORT PORTC // Порт к которому подключена клавиатура
#define PS2_PIN PINC
#define PS2_DDR DDRC
#define PS2_CLOCK 1 // Вывод порта для линии данных
#define PS2_DATA 2 // Вывод порта для тактового входа

// Подключение матрицы. Порт A - вход. Порт D - выход. Только линия D2 перенесена на С0.
#define DECODE_DDR DDRD
#define DECODE PORTD = data[(unsigned char)PINB]; PIND.6=0; if(PORTD.2) PINC.0 = 1; else PINC.0 = 0;
#endif
[свернуть]