趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
備忘メモ。。。。
キーマトリックス→USBスキャンコード
#pragma romdata eedata1_scn=0xf00000
ROM unsigned char eedata1_values[0x80] =
{
0x29,0x26,0x12,0x0f,0x37,0xff,0xff,0xff ,0x60,0x5f,0x63,0x5d,0x5a,0xff,0xff,0xff,
0x61,0x2a,0x53,0x5e,0x5b,0xff,0xff,0xff ,0x55,0x89,0x28,0x56,0x57,0xff,0xff,0xff,
0x2c,0x24,0x18,0x0d,0x10,0x3a,0xff,0xff ,0x52,0x21,0x15,0x09,0x19,0x3b,0xff,0xff,
0x35,0x23,0x1c,0x0b,0x11,0x3c,0xff,0xff ,0x50,0x25,0x0c,0x0e,0x36,0x3d,0xff,0xff,
0x51,0x27,0x13,0x33,0x38,0x3e,0xff,0xff ,0x4f,0x2e,0x30,0x32,0x54,0xff,0xff,0xff,
0xe0,0x2d,0x2f,0x34,0x87,0xff,0xff,0xff ,0xe1,0x20,0x62,0x5c,0x59,0xff,0xff,0xff,
0xff,0xff,0x14,0x04,0x1d,0xff,0xff,0xff ,0x39,0x22,0x17,0x0a,0x05,0xff,0xff,0xff,
0x2b,0x1e,0x1a,0x16,0x1b,0xff,0xff,0xff ,0xe2,0x1f,0x08,0x07,0x06,0xff,0xff,0xff
};
#pragma romdata
BREAKキーなどの特殊なキー→USBスキャンコード
// EEPROM Map:Scancode for Option key
#pragma romdata eedata2_scn=0xf00080
ROM unsigned char eedata2_values[0x10] =
{
0x35,0xff,0xff,0xff,0xff,0xff,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
#pragma romdata
Fnキーの定義
Fn押さないときのUSBスキャンコード、押したときのUSBスキャンコードを32通り登録まで登録する。
// EEPROM Map:HHK like Fn key
#pragma romdata eedata3_scn=0xf00090
ROM unsigned char eedata3_values[0x40] =
{
0x2f,0x52,0x34,0x4f,0x33,0x50,0x38,0x51,0x0F,0x49,0x37,0x4e,0x0e,0x4a,0x36,0x4d,
0x0c,0x46,0x12,0x47,0x13,0x48,0x2a,0x4c,0x2b,0x39,0x30,0x49,0x1e,0x3a,0x1f,0x3b,
0x20,0x3c,0x21,0x3d,0x22,0x3e,0x23,0x3f,0x24,0x40,0x25,0x41,0x26,0x42,0x27,0x43,
0x2d,0x44,0x2e,0x45,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
#pragma romdata
ゴーストキー対策
キーマトリックス上、キーが定義してあるところのビットを立てる。
あと、MSB---LSBをLSB---MSBてな感じに、左右逆転させる。
(ビットの並びは、7 6 5 4 3 2 1 0 といった感じで、左が上位になっているから)
ちょっと難しいかな?
// EEPROM Map:GHOST(Phantom) Key reduction
#pragma romdata eedata4_scn=0xf000D0
ROM unsigned char eedata4_values[0x10] =
{
0b00011111,0b00011111,
0b00011111,0b00011111,
0b00111111,0b00111111,
0b00111111,0b00111111,
0b00111111,0b00011111,
0b00011111,0b00011111,
0b00011111,0b00011111,
0b00011111,0b00011111
};
#pragma romdata
Fnキーを定義。これはキーマトリックスの読み取り値をセットする。
#define FN_KEY 0x68 // HHK like Fn key: 0x68=Caps Lock
これを1にすると、キーマトリックス読み取り値をそのままUSBへ出力する(開発用)
#define KMX_MONITOR 0 // 0...Operation 1...Matrix Monitor
FM-7のように、Nキーロールオーバーなキーボートのときは0をセットする。
#define GHOST_KEY_REDUCTION 1 // 0...Disabled 1...Enabled
// Unusable Port:A6,A7,C3,C4,C5,E3
// Column 00-05: A0-A5
// Column 06-07: C6-C7
// Column 08-09: E0-E1
// Column 10-15: B2-B7
// NumLk LED :C0
// CapsLk LED :C1
// ScrLk LED :C2
// Option :E2
// PS/2 CLK :B0
// PS/2 DATA :B1
これがそのファイル(プロジェクト)
file.typematic.blog.shinobi.jp/composite.zip
別途MCHPFSUSB Framework2.5aが必要。これよりあたらしいと、うまくいかないかも。
Microchipは、フレームワークがバージョンアップすると古いフレームワークをダウンロード不可にしてしまうので、要注意。しかも、各フレームワークのバージョン間で互換性は無い。古いフレームワークで開発していたソースは、新しいフレームワークではまったく動かない。どうにかしてくれ~。
キーマトリックス→USBスキャンコード
#pragma romdata eedata1_scn=0xf00000
ROM unsigned char eedata1_values[0x80] =
{
0x29,0x26,0x12,0x0f,0x37,0xff,0xff,0xff ,0x60,0x5f,0x63,0x5d,0x5a,0xff,0xff,0xff,
0x61,0x2a,0x53,0x5e,0x5b,0xff,0xff,0xff ,0x55,0x89,0x28,0x56,0x57,0xff,0xff,0xff,
0x2c,0x24,0x18,0x0d,0x10,0x3a,0xff,0xff ,0x52,0x21,0x15,0x09,0x19,0x3b,0xff,0xff,
0x35,0x23,0x1c,0x0b,0x11,0x3c,0xff,0xff ,0x50,0x25,0x0c,0x0e,0x36,0x3d,0xff,0xff,
0x51,0x27,0x13,0x33,0x38,0x3e,0xff,0xff ,0x4f,0x2e,0x30,0x32,0x54,0xff,0xff,0xff,
0xe0,0x2d,0x2f,0x34,0x87,0xff,0xff,0xff ,0xe1,0x20,0x62,0x5c,0x59,0xff,0xff,0xff,
0xff,0xff,0x14,0x04,0x1d,0xff,0xff,0xff ,0x39,0x22,0x17,0x0a,0x05,0xff,0xff,0xff,
0x2b,0x1e,0x1a,0x16,0x1b,0xff,0xff,0xff ,0xe2,0x1f,0x08,0x07,0x06,0xff,0xff,0xff
};
#pragma romdata
BREAKキーなどの特殊なキー→USBスキャンコード
// EEPROM Map:Scancode for Option key
#pragma romdata eedata2_scn=0xf00080
ROM unsigned char eedata2_values[0x10] =
{
0x35,0xff,0xff,0xff,0xff,0xff,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
#pragma romdata
Fnキーの定義
Fn押さないときのUSBスキャンコード、押したときのUSBスキャンコードを32通り登録まで登録する。
// EEPROM Map:HHK like Fn key
#pragma romdata eedata3_scn=0xf00090
ROM unsigned char eedata3_values[0x40] =
{
0x2f,0x52,0x34,0x4f,0x33,0x50,0x38,0x51,0x0F,0x49,0x37,0x4e,0x0e,0x4a,0x36,0x4d,
0x0c,0x46,0x12,0x47,0x13,0x48,0x2a,0x4c,0x2b,0x39,0x30,0x49,0x1e,0x3a,0x1f,0x3b,
0x20,0x3c,0x21,0x3d,0x22,0x3e,0x23,0x3f,0x24,0x40,0x25,0x41,0x26,0x42,0x27,0x43,
0x2d,0x44,0x2e,0x45,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
#pragma romdata
ゴーストキー対策
キーマトリックス上、キーが定義してあるところのビットを立てる。
あと、MSB---LSBをLSB---MSBてな感じに、左右逆転させる。
(ビットの並びは、7 6 5 4 3 2 1 0 といった感じで、左が上位になっているから)
ちょっと難しいかな?
// EEPROM Map:GHOST(Phantom) Key reduction
#pragma romdata eedata4_scn=0xf000D0
ROM unsigned char eedata4_values[0x10] =
{
0b00011111,0b00011111,
0b00011111,0b00011111,
0b00111111,0b00111111,
0b00111111,0b00111111,
0b00111111,0b00011111,
0b00011111,0b00011111,
0b00011111,0b00011111,
0b00011111,0b00011111
};
#pragma romdata
Fnキーを定義。これはキーマトリックスの読み取り値をセットする。
#define FN_KEY 0x68 // HHK like Fn key: 0x68=Caps Lock
これを1にすると、キーマトリックス読み取り値をそのままUSBへ出力する(開発用)
#define KMX_MONITOR 0 // 0...Operation 1...Matrix Monitor
FM-7のように、Nキーロールオーバーなキーボートのときは0をセットする。
#define GHOST_KEY_REDUCTION 1 // 0...Disabled 1...Enabled
// Unusable Port:A6,A7,C3,C4,C5,E3
// Column 00-05: A0-A5
// Column 06-07: C6-C7
// Column 08-09: E0-E1
// Column 10-15: B2-B7
// NumLk LED :C0
// CapsLk LED :C1
// ScrLk LED :C2
// Option :E2
// PS/2 CLK :B0
// PS/2 DATA :B1
これがそのファイル(プロジェクト)
file.typematic.blog.shinobi.jp/composite.zip
別途MCHPFSUSB Framework2.5aが必要。これよりあたらしいと、うまくいかないかも。
Microchipは、フレームワークがバージョンアップすると古いフレームワークをダウンロード不可にしてしまうので、要注意。しかも、各フレームワークのバージョン間で互換性は無い。古いフレームワークで開発していたソースは、新しいフレームワークではまったく動かない。どうにかしてくれ~。
PR
この記事にコメントする