Changeset 92955f9 in avrstuff


Ignore:
Timestamp:
May 14, 2014, 11:59:13 AM (10 years ago)
Author:
Adrien Destugues <pulkomandy@…>
Branches:
main
Children:
5562497
Parents:
9e87244
Message:

Use a smarter strategy to avoid losing keystrokes.

git-svn-id: svn://pulkomandy.tk/avrstuff@91 c6672c3c-f6b6-47f9-9001-1fd6b12fecbe

Location:
pcwk/code
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pcwk/code/Makefile

    r9e87244 r92955f9  
     1CC := $(shell { which avr-gcc || which avr-gcc-x86; } 2>/dev/null)
     2OBJCOPY := $(shell { which avr-objcopy || which avr-objcopy-x86; } 2>/dev/null)
     3
    14keyboard.hex: keyboard.bin
    2         avr-objcopy -j .text -j .data -O ihex keyboard.bin keyboard.hex
     5        $(OBJCOPY) -j .text -j .data -O ihex keyboard.bin keyboard.hex
    36
    47keyboard.bin: keyboard.o main.o
    5         avr-gcc keyboard.o usart.o main.o -o keyboard.bin -mmcu=atmega8 -Os
     8        $(CC) keyboard.o main.o -o keyboard.bin -mmcu=atmega8 -Os
    69
    710main.o: main.c ../../libs/usart/usart.h ../../libs/ps2_keyboard/ps2_keyboard.h
    8         avr-gcc -std=c99 -c main.c -mmcu=atmega8 -Os -o main.o -mmcu=atmega8 -Os
     11        $(CC) -std=c99 -c main.c -mmcu=atmega8 -Os -o main.o -mmcu=atmega8 -Os
    912
    1013keyboard.o: ../../libs/ps2_keyboard/ps2_keyboard.c ../../libs/ps2_keyboard/ps2_keyboard.h ../../libs/ps2_keyboard/keymap.h
    11         avr-gcc -c ../../libs/ps2_keyboard/ps2_keyboard.c -mmcu=atmega8 -Os -o keyboard.o
     14        $(CC) -DCALLBACK="callback();" -c ../../libs/ps2_keyboard/ps2_keyboard.c -mmcu=atmega8 -Os -o keyboard.o
  • pcwk/code/keyboard.hex

    r9e87244 r92955f9  
    1818:100110003F15243F3F3F01A60716051482A513276C
    1919:1001200006A3A204103F11241FBECFE5D4E0DEBF1A
    20 :10013000CDBF10E0A0E6B0E001C01D92A837B10726
    21 :10014000E1F7B1D04DC15CCF1F920F920FB60F9265
    22 :1001500011242F933F938F939F9382B390E4892729
    23 :1001600082BB83994EC080916100882341F48499B9
    24 :1001700027C081E0809361001092650028C0209123
    25 :100180006500283098F4849B0DC03091630081E0B5
    26 :1001900090E0022E02C0880F991F0A94E2F7382BD4
    27 :1001A000309363002F5F209365002BC0283021F42B
    28 :1001B00089E08093650025C010926100109265006F
    29 :1001C00080916300803F31F481E08093620010925F
    30 :1001D000630017C09091630080916200923149F4EE
    31 :1001E000882321F481E0809360000BC010926000AE
    32 :1001F00002C0882319F01092620003C081E080934E
    33 :1002000066009F918F913F912F910F900FBE0F909D
    34 :100210001F901895E82FF0E0EA5DFF4F84919091D0
    35 :100220006000911180520895809166008823E1F367
    36 :100230001092660080916300089510926100109200
    37 :100240006300109265008B98839A85B7886085BF9C
    38 :1002500085B78B7F85BF8BB780688BBF78940895F7
    39 :1002600089B990BD86E880BD88E18AB908955D9B13
    40 :10027000FECF8CB908955F9BFECF8CB10895CF93CC
    41 :10028000C82F82958F708A3010F4805D01C0895C20
    42 :10029000EEDFCF70CA3010F4C05D01C0C95C8C2F96
    43 :1002A000E6DFCF9108951F93CF93DF93C6DF18BA8F
    44 :1002B00086E087BB8E9AC1E0D0E014E0B5DFE82F7E
    45 :1002C000F0E0EA55FF4FE49180916200AE2FA295D5
    46 :1002D000AF70F0E0882389F0B0E0A859BF4FEF700D
    47 :1002E000F070CE0102C0880F991FEA95E2F7FC0179
    48 :1002F000E0958C91E823EC930FC0B0E0A859BF4F74
    49 :10030000EF70F070CE0102C0880F991FEA95E2F7F6
    50 :10031000FC018C918E2B8C938FEF9FEF18BBE0E24A
    51 :10032000EA95F1F718BAF0E2FA95F1F718BB20E276
    52 :100330002A95F1F718BA40E24A95F1F724E030E047
    53 :1003400017C0AC01022E02C0559547950A94E2F7FA
    54 :1003500040FF02C018BB01C018BAE0E2EA95F1F70D
    55 :10036000C19AF0E4FA95F1F718BA40E74A95F1F727
    56 :1003700021503040EFEF2F3F3E0719F7E7EDF0E057
    57 :100380003197F1F700C0000028E030E0FC01EF7089
    58 :10039000F070E859FF4F18C0408150E0022E02C0B3
    59 :1003A000559547950A94E2F740FF02C018BB01C07B
    60 :1003B00018BA40E24A95F1F7C19A40E44A95F1F73C
    61 :1003C00018BA40E74A95F1F7215030404FEF2F3FE0
    62 :1003D000340711F701968031910509F09FCF6ECF58
    63 :0403E000F894FFCFBF
     20:10013000CDBF10E0A0E6B0E001C01D92A637B10728
     21:10014000E1F7BFD024C15CCF1F920F920FB60F9280
     22:1001500011242F933F934F935F936F937F938F93CC
     23:100160009F93AF93BF93EF93FF9382B390E489275C
     24:1001700082BB83994EC080916200811108C084992E
     25:1001800026C081E0809362001092610027C0209118
     26:100190006100283090F4849B0CC03091640081E0B1
     27:1001A00090E0022E01C0880F0A94EAF7382B3093B2
     28:1001B00064002F5F209361002CC0283021F489E077
     29:1001C0008093610026C010926200109261008091BD
     30:1001D0006400803F31F481E08093650010926400F8
     31:1001E00018C09091640080916500923149F48111AA
     32:1001F00004C081E0809360000CC01092600002C0D7
     33:10020000882319F01092650004C081E08093630098
     34:1002100037D0FF91EF91BF91AF919F918F917F91D7
     35:100220006F915F914F913F912F910F900FBE0F9063
     36:100230001F901895E82FF0E0EA5DFF4F84919091B0
     37:100240006000911180520895809163008823E1F34A
     38:1002500010926300809164000895109262001092E1
     39:100260006400109261008B98839A85B7886085BF7F
     40:1002700085B78B7F85BF8BB780688BBF78940895D7
     41:10028000E3DFE82FF0E0EA55FF4FE491809165004D
     42:10029000AE2FA295AF70EF70B0E0AA59BF4F21E02A
     43:1002A00030E00E2E01C0220F0A94EAF7882329F0CD
     44:1002B00020958C9128232C9308958C91822B8C93DC
     45:1002C0000895CBDF18BA86E087BB8E9A8FEF9FEF39
     46:1002D00064E068BB20E22A95F1F718BA40E24A953B
     47:1002E000F1F768BBE0E2EA95F1F718BAF0E2FA95A7
     48:1002F000F1F724E030E021503109C0F0AC01022ECA
     49:1003000002C0559547950A94E2F740FF02C068BBCA
     50:1003100001C018BA40E24A95F1F7C19AE0E4EA95C3
     51:10032000F1F718BAF0E7FA95F1F7E5CFE7EDF0E06D
     52:100330003197F1F700C0000028E030E0FC01EF70D9
     53:10034000FF27EA59FF4F21503109C8F0408150E0A2
     54:10035000022E02C0559547950A94E2F740FF02C06D
     55:1003600068BB01C018BA40E24A95F1F7C19A40E46F
     56:100370004A95F1F718BA40E74A95F1F7E4CF0196AC
     57:10038000803191050CF4A5CF8FEF9FEFA2CFF894A9
     58:02039000FFCF9D
    6459:00000001FF
  • pcwk/code/main.c

    r9e87244 r92955f9  
    2121};
    2222
     23
     24void callback()
     25{
     26        uint8_t key_code = 0;
     27        key_code = read_char(); // TODO this is blocking function
     28
     29        uint8_t decode = pgm_read_byte(&(pcw[key_code]));
     30        if(release)
     31                keys[decode >> 4] &= ~(1 << (decode & 0xF));
     32        else
     33                keys[decode >> 4] |= 1 << (decode & 0xF);
     34}
     35
     36
    2337int main() {
    2438  init_keyboard();
     
    3145  DDRD |= (1<<PD6);
    3246
    33   uint8_t key_code = 0;
    3447
    3548  while(1) {
    36         key_code = read_char(); // TODO this is blocking function
    37 
    38         uint8_t decode = pgm_read_byte(&(pcw[key_code]));
    39         if(release)
    40                 keys[decode >> 4] &= ~(1 << (decode & 0xF));
    41         else
    42                 keys[decode >> 4] |= 1 << (decode & 0xF);
    43 
    4449        for(int idx = -1; idx < 16; idx++)
    4550        {
Note: See TracChangeset for help on using the changeset viewer.