Changeset ff4dbfd in avrstuff


Ignore:
Timestamp:
Aug 30, 2010, 7:39:44 PM (14 years ago)
Author:
Adrien Destugues <pulkomandy@…>
Branches:
main
Children:
aeff83b
Parents:
49fd394
Message:

Gestion correcte de la touche capslock.

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

Location:
aktousb
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • aktousb/circuit/ps2toserial.pro

    r49fd394 rff4dbfd  
    11version=1
    2 last_client=kicad
    3 update=02/08/2010 09:46:23
     2last_client=pcbnew
     3update=14/08/2010 15:48:31
    44[cvpcb]
    55version=1
     
    7373LibName29=contrib
    7474LibName30=valves
     75[general]
     76version=1
    7577[pcbnew]
    7678version=1
     
    105107LibName11=r_mini_din
    106108LibName12=ENSSAT_robotique
    107 [general]
    108 version=1
  • aktousb/code/keyboard.hex

    r49fd394 rff4dbfd  
    1 :10000000A7C076C2CAC0BFC0BEC0BDC0BCC0BBC056
     1:10000000A7C0ACC2CAC0BFC0BEC0BDC0BCC0BBC020
    22:10001000BAC0B9C0B8C0B7C0B6C0B5C0B4C0B3C02C
    33:10002000B2C0B1C0B0C0351E1F2021222324252616
     
    2121:100140002101010001223F000705810308000A0088
    2222:1001500011241FBECFE5D4E0DEBFCDBF10E0A0E686
    23 :10016000B0E0E6EEF9E002C005900D92A436B107CA
     23:10016000B0E0E2E5FAE002C005900D92A436B107D6
    2424:10017000D9F710E0A4E6B0E001C01D92AC3AB10797
    25 :10018000E1F716D12EC43CCF8C9A949884E591E087
     25:10018000E1F728D164C43CCF8C9A949884E591E03F
    2626:100190000197F1F7949A8C9808951F920F920FB6D9
    2727:1001A0000F9211242F933F938F939F9383992CC089
     
    4444:1002B00068000895282F30E0F901EA5DFF4F44916E
    4545:1002C0008056883010F030E004C02A5C3F4FF901BE
    46 :1002D00034914423E9F02091610092E015C0E92FA8
    47 :1002E000F0E0E859FF4F8081841769F407C0E92FD7
    48 :1002F000F0E0E859FF4F818180839F5F9730B8F32A
    49 :1003000010926F0021509F5F921748F32093610075
    50 :100310003095809168003823309368000895FC017F
    51 :1003200088E690E0909391008093900080818076A1
    52 :10033000803271F58181813011F488E0089589302F
    53 :1003400049F486819781019719F581E080936400D3
    54 :100350008FEF0895823019F487E690E013C08A3059
    55 :1003600029F483818093670080E00895833031F41D
    56 :100370008381882369F41092600008958B3041F4E2
    57 :1003800080E690E0909391008093900081E0089542
    58 :1003900080E00895FC0180916400882329F0613099
    59 :1003A00019F48081809365001092640081E00895C3
    60 :1003B000DF92EF92FF920F931F932FE088E190E07E
    61 :1003C0000FB6F894A89581BD0FBE21BD85E083BF0F
    62 :1003D000A59AA49A88E0E8E6F0E0DF011D928A95EC
    63 :1003E000E9F7A7D12BDF789400E090E1D92E80E2E5
    64 :1003F000E82EFF24F39401C0012FA895A7D1809186
    65 :100400007500809175008823C1F007DF95B39D25A5
    66 :1004100095BB95B39E2595BB982F969580FD03C0FF
    67 :10042000892F20DF02C0892F45DF8091810084FF62
    68 :1004300004C088E690E068E0B1D208B600FEDDCFE7
    69 :10044000F8BE109167001123C1F2053018F0102F8B
    70 :100450001550D2CF80916600882321F082E62ADFF2
    71 :10046000109266008091810084FFC6CF88E690E0FC
    72 :1004700068E094D2C1CFDF93CF93CDB7DEB7289792
    73 :100480000FB6F894DEBF0FBECDBF982F80918100CC
    74 :1004900084FFFCCFFE01319688E0DF011D928A9532
    75 :1004A000E9F799836B83CF0168E078D228960FB67D
    76 :1004B000F894DEBF0FBECDBFCF91DF910895A82F76
    77 :1004C000B92F80E090E041E050EA609530E009C04B
    78 :1004D0002D9182279795879510F084279527305E78
    79 :1004E000C8F36F5FA8F30895EADF8D939D93089595
    80 :1004F000CF93CFB7CF93DF93C395859BE9F7859BC8
    81 :100500000BC0859B09C0859B07C0859B05C0859B4B
    82 :1005100003C0859B01C08BC06F93C0918F00DD2706
    83 :10052000CA56DF4F2F9365E5859B03C02F916F91CE
    84 :10053000E6CF0F931F934F9320E040E15F9300B30A
    85 :10054000047205FB27F93F9350E03BE039C0147279
    86 :1005500040642F77012F5F5F1EC0406810B3147294
    87 :100560002F7752501FC0406400B32F770472D1F12F
    88 :100570005F5F00C023C0406210B32F77147291F107
    89 :100580005F5F00C025C004721027515012F45D5FF8
    90 :100590000000115027952C3F10B3C8F614720127A4
    91 :1005A000015027952C3FC8F64227499300B30472A7
    92 :1005B00010274F73115027952C3FA8F64695469566
    93 :1005C00010B3147279F00127015027952C3F98F64B
    94 :1005D0006B5A60F3315000B3B0F600C010E41ABF9C
    95 :1005E000002719C03B503195C31BD04010E41ABFFF
    96 :1005F0000881033C09F10B34F9F020918D00198139
    97 :10060000110F1213EDCF4A81441F093651F10D32FB
    98 :1006100011F0013E29F7009394003F915F914F91B3
    99 :100620001F910F912F916F91CAB7C6FD65CFDF91D2
    100 :10063000CF91CFBFCF91189520919400222369F3D9
    101 :1006400010919200112391F5343092F13093920081
    102 :1006500020938E0010918F003BE0311B30938F0070
    103 :1006600027C00091920001300CF50AE54F7049F463
    104 :100670003091620034FD1DC000936200C6E7D0E0F7
    105 :100680001CC03091810034FD14C000938100C2E889
    106 :10069000D0E013C0052710E000C0000002BB1AC064
    107 :1006A000052710E0221F1DC010E021C04AE502C04E
    108 :1006B00032ED432FC4E1D0E032E011B31462959AD9
    109 :1006C00002B311BB54E220E865E320FF052702BB1B
    110 :1006D000279517951C3FF0F66695B8F7B1F720FF00
    111 :1006E000052702BB279517951C3FD0F62795179530
    112 :1006F00017FF052700001C3F02BBB0F629913A9571
    113 :1007000019F70B7D10919300110FC651D04002BB19
    114 :1007100011F010938D0010E41ABF006211B31B7D1D
    115 :10072000402F4B7D54E05A95F1F702BB11BB42BB01
    116 :1007300074CF85B7836085BF8BB780648BBF8BE434
    117 :10074000809382008AE58093810008951F93CF9360
    118 :10075000DF9360919200635067FDC4C080918F0069
    119 :10076000CCE0D0E0C81BD109CA56DF4F80918E0083
    120 :100770008D3209F0A4C0683009F0B2C083EC8093D8
    121 :1007800076008AE5809362001092700088818076FE
    122 :1007900041F0CE010E948F01282F8F3F09F47EC0C7
    123 :1007A00084C09A8110927F008981882321F410925D
    124 :1007B000800022E06CC0853019F49093930066C0ED
    125 :1007C000863009F04FC08B81813041F48BE191E09C
    126 :1007D000909391008093900022E140C0823041F4D8
    127 :1007E0008DE291E0909391008093900022E236C0D8
    128 :1007F0008330F9F48A81882341F48DED90E0909361
    129 :1008000091008093900024E029C0813041F481EE72
    130 :1008100090E0909391008093900024E21FC082307A
    131 :10082000E1F485E091E0909391008093900026E1BF
    132 :1008300015C0813241F48FE391E090939100809351
    133 :10084000900029E00BC0823241F48EE990E0909351
    134 :100850009100809390002FE301C020E080E480931A
    135 :10086000700023C0883021F421E085E990E011C0B8
    136 :10087000893019F49093950009C08A3011F421E071
    137 :1008800006C08B3019F48BE48093820020E08FE760
    138 :1008900090E0909391008093900007C0888187FD3D
    139 :1008A0002E8180E88093700006C08F81882319F420
    140 :1008B0008E81821708F0822F8093630011C080918F
    141 :1008C000700087FF0DC0CE010E94CA018F3F21F446
    142 :1008D0008EE18093620004C0882311F010926300BF
    143 :1008E000109292008091620084FF4AC08091630060
    144 :1008F0008F3F09F445C0182F893008F018E0811B9C
    145 :10090000809363008091760098E889278093760031
    146 :10091000112341F12091900030919100809170005D
    147 :1009200086FF0DC0A7E7B0E080E090E0F901E80F96
    148 :10093000F91FE491ED9301961817C1F708C0912FA4
    149 :10094000D901E7E7F0E08D9181939150E1F71150E3
    150 :10095000812F90E01F5F0196820F931F909391006B
    151 :100960008093900087E790E0612F0E947402612FCE
    152 :100970006C5F6C3019F08FEF8093630060936200BE
    153 :1009800094E180B3847231F49150D9F710929300BE
    154 :1009900010928D00DF91CF911F9108951F93DC017C
    155 :1009A000162F8091810084FF07C08091820098E813
    156 :1009B00089278093820003C08AE580938100912F6C
    157 :1009C000E3E8F0E08D91819391501916DCF383E810
    158 :1009D00090E0612F0E9474021C5F109381001F91B0
    159 :0609E0000895F894FFCF1A
    160 :0409E60001025AFFB1
     46:1002D0003491493381F480916100883058F5E82FDA
     47:1002E000F0E0E859FF4F40838F5F8093610081E029
     48:1002F000809366001FC04423E9F02091610092E0E2
     49:1003000015C0E92FF0E0E859FF4F8081841769F4A8
     50:1003100007C0E92FF0E0E859FF4F818180839F5F9C
     51:100320009730B8F310926F0021509F5F921748F3F7
     52:1003300020936100309580916800382330936800E5
     53:100340000895FC0188E690E09093910080939000DE
     54:1003500080818076803271F58181813011F488E06E
     55:100360000895893049F486819781019719F581E0D4
     56:10037000809364008FEF0895823019F487E690E04F
     57:1003800013C08A3029F483818093670080E0089548
     58:10039000833031F48381882369F4109260000895DA
     59:1003A0008B3041F480E690E0909391008093900030
     60:1003B00081E0089580E00895FC0180916400882325
     61:1003C00029F0613019F480818093650010926400F7
     62:1003D00081E00895FF920F931F93CF93DF932FE057
     63:1003E00088E190E00FB6F894A89581BD0FBE21BDBD
     64:1003F00085E083BF8E9A88E0E8E6F0E0DF011D9299
     65:100400008A95E9F7CCD11ADF789400E0C0E1D0E01A
     66:10041000FF24F39401C0012FA895CED180917500DF
     67:1004200080917500882391F0F8DE982F969580FDD5
     68:1004300003C0892F17DF02C0892F3CDF8091810024
     69:1004400084FF04C088E690E068E0DED208B600FED3
     70:10045000E3CFF8BE80916600882321F0969A219719
     71:1004600019F025C0969823C0109266004091610053
     72:1004700022E030E013C0F901E859FF4F8081893351
     73:1004800059F404C02F5F3F4F81818193273031059C
     74:10049000CCF310926F0041502F5F3F4F842F90E0BC
     75:1004A0002817390744F340936100C0E1D0E0109170
     76:1004B0006700112309F4B0CF053010F00550ACCF20
     77:1004C00080916600882321F082E6F4DE10926600B7
     78:1004D0008091810084FF9FCF88E690E068E094D20D
     79:1004E0009ACFDF93CF93CDB7DEB728970FB6F894A6
     80:1004F000DEBF0FBECDBF982F8091810084FFFCCF5F
     81:10050000FE01319688E0DF011D928A95E9F7998313
     82:100510006B83CF0168E078D228960FB6F894DEBFDF
     83:100520000FBECDBFCF91DF910895A82FB92F80E0E6
     84:1005300090E041E050EA609530E009C02D918227BB
     85:100540009795879510F084279527305EC8F36F5FE5
     86:10055000A8F30895EADF8D939D930895CF93CFB7C5
     87:10056000CF93DF93C395859BE9F7859B0BC0859B54
     88:1005700009C0859B07C0859B05C0859B03C0859BE3
     89:1005800001C08BC06F93C0918F00DD27CA56DF4F2B
     90:100590002F9365E5859B03C02F916F91E6CF0F9355
     91:1005A0001F934F9320E040E15F9300B3047205FB7B
     92:1005B00027F93F9350E03BE039C0147240642F7735
     93:1005C000012F5F5F1EC0406810B314722F77525026
     94:1005D0001FC0406400B32F770472D1F15F5F00C089
     95:1005E00023C0406210B32F77147291F15F5F00C097
     96:1005F00025C004721027515012F45D5F00001150A5
     97:1006000027952C3F10B3C8F6147201270150279587
     98:100610002C3FC8F64227499300B3047210274F734A
     99:10062000115027952C3FA8F64695469510B31472A5
     100:1006300079F00127015027952C3F98F66B5A60F30B
     101:10064000315000B3B0F600C010E41ABF002719C043
     102:100650003B503195C31BD04010E41ABF0881033CC6
     103:1006600009F10B34F9F020918D001981110F12134B
     104:10067000EDCF4A81441F093651F10D3211F0013E90
     105:1006800029F7009394003F915F914F911F910F9133
     106:100690002F916F91CAB7C6FD65CFDF91CF91CFBFC4
     107:1006A000CF91189520919400222369F31091920024
     108:1006B000112391F5343092F13093920020938E0003
     109:1006C00010918F003BE0311B30938F0027C00091C9
     110:1006D000920001300CF50AE54F7049F43091620048
     111:1006E00034FD1DC000936200C6E7D0E01CC030910D
     112:1006F000810034FD14C000938100C2E8D0E013C033
     113:10070000052710E000C0000002BB1AC0052710E05A
     114:10071000221F1DC010E021C04AE502C032ED432F68
     115:10072000C4E1D0E032E011B31462959A02B311BB78
     116:1007300054E220E865E320FF052702BB27951795C3
     117:100740001C3FF0F66695B8F7B1F720FF052702BB0E
     118:10075000279517951C3FD0F62795179517FF052766
     119:1007600000001C3F02BBB0F629913A9519F70B7DAA
     120:1007700010919300110FC651D04002BB11F010939D
     121:100780008D0010E41ABF006211B31B7D402F4B7D1A
     122:1007900054E05A95F1F702BB11BB42BB74CF85B749
     123:1007A000836085BF8BB780648BBF8BE480938200AE
     124:1007B0008AE58093810008951F93CF93DF93609122
     125:1007C0009200635067FDC4C080918F00CCE0D0E000
     126:1007D000C81BD109CA56DF4F80918E008D3209F0B7
     127:1007E000A4C0683009F0B2C083EC809376008AE53B
     128:1007F00080936200109270008881807641F0CE0173
     129:100800000E94A101282F8F3F09F47EC084C09A81E5
     130:1008100010927F008981882321F41092800022E0C9
     131:100820006CC0853019F49093930066C0863009F04F
     132:100830004FC08B81813041F48BE191E09093910026
     133:100840008093900022E140C0823041F48DE291E03B
     134:10085000909391008093900022E236C08330F9F4A7
     135:100860008A81882341F48DED90E0909391008093EC
     136:10087000900024E029C0813041F481EE90E0909313
     137:1008800091008093900024E21FC08230E1F485E063
     138:1008900091E0909391008093900026E115C0813201
     139:1008A00041F48FE391E0909391008093900029E0D0
     140:1008B0000BC0823241F48EE990E0909391008093D6
     141:1008C00090002FE301C020E080E48093700023C0FB
     142:1008D000883021F421E085E990E011C0893019F4D5
     143:1008E0009093950009C08A3011F421E006C08B3046
     144:1008F00019F48BE48093820020E08FE790E09093DE
     145:1009000091008093900007C0888187FD2E8180E848
     146:100910008093700006C08F81882319F48E8182171E
     147:1009200008F0822F8093630011C08091700087FFD0
     148:100930000DC0CE010E94DC018F3F21F48EE1809337
     149:10094000620004C0882311F010926300109292009C
     150:100950008091620084FF4AC0809163008F3F09F458
     151:1009600045C0182F893008F018E0811B8093630080
     152:100970008091760098E8892780937600112341F1D1
     153:1009800020919000309191008091700086FF0DC001
     154:10099000A7E7B0E080E090E0F901E80FF91FE491EB
     155:1009A000ED9301961817C1F708C0912FD901E7E719
     156:1009B000F0E08D9181939150E1F71150812F90E0FB
     157:1009C0001F5F0196820F931F909391008093900078
     158:1009D00087E790E0612F0E94AA02612F6C5F6C3064
     159:1009E00019F08FEF809363006093620094E180B30D
     160:1009F000847231F49150D9F71092930010928D00C7
     161:100A0000DF91CF911F9108951F93DC01162F8091E4
     162:100A1000810084FF07C08091820098E88927809335
     163:100A2000820003C08AE580938100912FE3E8F0E023
     164:100A30008D91819391501916DCF383E890E0612F3A
     165:100A40000E94AA021C5F109381001F910895F894E0
     166:020A5000FFCFD6
     167:040A520001025AFF44
    161168:00000001FF
  • aktousb/code/main.c

    r49fd394 rff4dbfd  
    4545        else
    4646                modifier = MOD_NONE;
     47
    4748        if (key != KEY_Reserved && reportIndex < 8) {
    4849                reportBuffer[reportIndex] = key; // set next available entry
     
    6465        else
    6566                modifier = MOD_NONE;
    66         if (key != KEY_Reserved) {
     67
     68        if (key == KEY_capslock) {
     69                if (reportIndex < 8) {
     70                        reportBuffer[reportIndex] = key; // set next available entry
     71                        reportIndex++;
     72                        pressingCaps = 1;
     73                }
     74        } else if (key != KEY_Reserved) {
    6775                for (i = 2; i < reportIndex; i++) {
    6876                        if (reportBuffer[i] == key) {
     
    9199        uint8_t idleCounter = 0;
    92100    uint8_t updateNeeded = 0;
     101        int capsDelay = 16;
    93102
    94103        wdt_enable(WDTO_2S);
     
    97106
    98107        //debug LED - output
    99         DDRC |= (1<<PC5);
    100         DDRC |= (1<<PC4);
     108        DDRD |= (1<<PD6);
    101109
    102110        // Keyboard
     
    117125                if (char_waiting) {
    118126                        key_code = ak_read_scancode();
    119                         PORTC ^= (1<<PC4);
    120                         PORTC ^= (1<<PC5);
    121127                        // if an update is needed, send the report
    122128                        if ((key_code & 1) == 0)
     
    128134                }
    129135
     136
    130137                // check timer if we need periodic reports
    131138                if (TIFR & (1 << TOV0)) {
    132139                        TIFR = (1 << TOV0); // reset flag
     140
     141                        // PORTD ^= (1<<PD6); // blink del : we are alive !
     142                        if (pressingCaps)
     143                                PORTD |= 1<<PD6;
     144                        else
     145                                PORTD &= ~(1<<PD6);
     146
     147                        if (pressingCaps) {
     148                                if (--capsDelay == 0) {
     149                                        capsDelay = 16;
     150                                        pressingCaps = 0;
     151
     152                                        int i;
     153                                        for (i = 2; i < reportIndex; i++) {
     154                                                if (reportBuffer[i] == KEY_capslock) {
     155                                                        for (; i < 7; i++)
     156                                                                reportBuffer[i] = reportBuffer[i+1];
     157                                                        reportBuffer[7] = 0;
     158                                                        reportIndex--;
     159                                                }
     160                                        }                               
     161                                }
     162                        }
     163
    133164                        if (idleRate != 0) { // do we need periodic reports?
    134165                                if(idleCounter > 4){ // yes, but not yet
Note: See TracChangeset for help on using the changeset viewer.