Changeset 1380


Ignore:
Timestamp:
08/25/10 14:55:30 (21 months ago)
Author:
jdunn
Message:

fix for clickview:

  • firmware needs to clear the receive interrupt state before enabling tcap/twrap
Location:
trunk/firmware/usb_ir_body
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware/usb_ir_body/usb_ir_body.hex

    r1107 r1380  
    4747:400b80003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303035 
    4848:400bc00030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030f5 
    49 :400c000050077f30803b303080ca303082213030825530303030303030303030303030303030303030303030303030303030303030303030303030303030303050007f3030 
    50 :400c400053f551f42102a0339ff22117b0094100bf620b0180164301fc620f01621001621101621201621301621401620a026231cf622a08622b0326f4fd51f42104a00a51 
    51 :400c80002655fe7c0f8e26f4fb51f42108a0077c0dcc26f4f751f53910a04e3911a05b3912a0643914a0683915a06c391aa088391ba089391ca08a391da090391ea0913994 
    52 :400cc0001fa0983925a0993906a09a800657047c00987f51552102a00c55fb3157047c00987c0dcc7c0d917f55fb109f4f53fc55fd4157067c00988fda55fb1155fc96571d 
    53 :400d0000057c00988fcd2e55017c0dcc8fc02655fe7c0dcc8fb87c0dbd7c0088a0097c0eb37c0dcc8fa87c0eb37c0dcc55fb3257057c00988f9d7c0fca8f987c10288f9343 
    54 :400d40007c109257067c00988f897c10c58f7f7c0dbd7c00887c11018f747c1fc08f7457047c00987c0e988f6a3e583c58f3b00455585d70fe7a5771017f3c5796a00f3f88 
    55 :400d8000f376573cf3f3b00955f35d80042e55027f3c5707c018570755f5f89fcc3ff579bffa51573ff5570850f87c00947f9e8c2117b0064100bf80044301fc7f5de121bc 
    56 :400dc0007f60e15ddf21fd60df9fe37f2655fd55585d55f35d5557009fe351552101a0135de1298060e151552104b0075ddf290260df7f515a6767676767672103535a51c3 
    57 :400e00005964642c5aa0037a5a515a217f2a5b535a5159676767676721075359a00b515b297f9f567a59bffb515a9f4e802e085d20535a5d2153595d2c2101b00f555b80d9 
    58 :400e400051552104a0145f53528011555b0051552104a00655530080038f99622000622100622c03187e0850809f0f187e5554005552409dc72117a01f55540126fdfc5f8f 
    59 :400e800052fd5152b0045552fc51feb00b51ffb00755fe0655ff317f9fd32e55059f2d62e3387c0080b007507f90208ff32655fa9f1a7f9fb855f35d5553005ff5fc51f59d 
    60 :400ec000a0053ef390057af5bff97f53f7217f6453f6585451552104b01151f72180a00655530080065f5352800151f6a0895e00325361007af651fee0013a003a003a00ce 
    61 :400f00003a0051ffe00140404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040c6 
    62 :400f4000404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040408f759e367f9cc12107b0055090 
    63 :400f800001800b55fb0457047c009850007f9cac2107b0364100f06205006206006207006208009c972110b012410187621000621100621200621300801041002043008079 
    64 :400fc000620c01620b006209007f9fada05a57047c00985d05210753f85d06210753f95d07210753fa5d08210753fb9c4f2110b01b5d10210753fc5d11210753fd5d1221d5 
    65 :401000000753fe5d13210753ff80165d09210753fc55fd005d0a210753fe5d0c210753ff570850f87c00947f9f4fa0667c0080affc570850f87c0084570850f87c00945166 
    66 :40104000f82107600551f92107600651fa2107600751fb210760089be32110b01b51fc2107601051fd2107601151fe2107601251ff21076013801351fc2107600951fe2162 
    67 :4010800007600b51ff2107600c55fb1b57047c00987f9ee5a02f9ba42110b01b70fe5d0053fc5d0153fd710168fd68fd68fd26fc0f26fd0f800f70fe5d0053fc710126fceb 
    68 :4010c000df55fd007f9eb2a0389b712110b02326fc0f26fd0f65fd65fd65fd70fe5d0021f02afc60005d0121872afd60017101801026fcdf70fe5d0021202afc6000710188 
    69 :401100007f9e76aec555f35d58fca01f3ef353f5210f53fc51f521f06767676753fd9fa5501ea004788ffc798fe17f30303030303030303030303030303030303030303005 
     49:400c000050077f30803b303080ce303082333030826730303030303030303030303030303030303030303030303030303030303030303030303030303030303050007f3008 
     50:400c400053f551f42102a0339ff22117b0094100bf620b0180164301f0620f01621001621101621201621301621401620a026231cf622a08622b0326f4fd51f42104a00a5d 
     51:400c80002655fe7c0fa026f4fb51f42108a0077c0dd526f4f751f53910a0523911a05f3912a0683914a06c3915a0703927a08c391aa093391ba094391ca095391da09b3935 
     52:400cc0001ea09c391fa0a33925a0a43906a0a5800657047c00987f51552102a00c55fb3157047c00987c0dd57c0da07f55fb109f4b53fc55fd4157067c00988fda55fb1193 
     53:400d000055fc9657057c00988fcd2e55017c0dd58fc02655fe7c0dd58fb87c0dcc7c0088a0097c0ec57c0dd58fa87c0ec57c0dd555fb3257057c00988f9d7c0dcc7c0ec55c 
     54:400d40007c0dd58f8d7c0fdc8f8d7c103a8f887c10a457067c00988f7e7c10d78f747c0dcc7c00887c11138f697c1fc08f6957047c00987c0eaa8f5f3e583c58f3b004558a 
     55:400d8000585d70fe7a5771017f3c5796a00f3ff376573cf3f3b00955f35d80042e55027f3c5707c018570755f5f89fcc3ff579bffa51573ff5570850f87c00947f9e7d213e 
     56:400dc00017b0064100bf80044301f07f41e17f41dffd9fe97f2655fd55585d55f35d5557009fe951552101a01c622000622100622c0341db7f41dcfd43e18051552104b0e1 
     57:400e00000443df027f515a6767676767672103535a515964642c5aa0037a5a515a217f2a5b535a5159676767676721075359a00b515b297f9f537a59bffb515a9f4b802ef7 
     58:400e4000085d20535a5d2153595d2c2101b00f555b8051552104a0145f53528011555b0051552104a00655530080038f99622000622100622c03187e0850809f0c187e555a 
     59:400e800054005552409db52117a01f55540126fdf05f52fd5152b0045552f051feb00b51ffb00755fe0655ff317f9fd32e55059f2462e3387c0080b007507f90208ff326d3 
     60:400ec00055fa9f117f9fb855f35d5553005ff5fc51f5a0053ef390057af5bff97f53f7217f6453f6585451552104b01151f72180a00655530080065f5352800151f6a089a8 
     61:400f00005e00325361007af651fee0013a003a003a003a0051ffe00140404040404040404040404040404040404040404040404040404040404040404040404040404040b4 
     62:400f40004040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404071 
     63:400f80004040404040408f759e337f9caf2107b0055001800b55fb0457047c009850007f9c9a2107b0364100f06205006206006207006208009c852110b012410187621061 
     64:400fc000006211006212006213008010410020430080620c01620b006209007f9fada05a57047c00985d05210753f85d06210753f95d07210753fa5d08210753fb9c3d210c 
     65:4010000010b01b5d10210753fc5d11210753fd5d12210753fe5d13210753ff80165d09210753fc55fd005d0a210753fe5d0c210753ff570850f87c00947f9f4fa0667c000b 
     66:4010400080affc570850f87c0084570850f87c009451f82107600551f92107600651fa2107600751fb210760089bd12110b01b51fc2107601051fd2107601151fe21076078 
     67:401080001251ff21076013801351fc2107600951fe2107600b51ff2107600c55fb1b57047c00987f9ee5a02f9b922110b01b70fe5d0053fc5d0153fd710168fd68fd68fdbf 
     68:4010c00026fc0f26fd0f800f70fe5d0053fc710126fcdf55fd007f9eb2a0389b5f2110b02326fc0f26fd0f65fd65fd65fd70fe5d0021f02afc60005d0121872afd60017190 
     69:4011000001801026fcdf70fe5d0021202afc600071017f9e76aec555f35d58fca01f3ef353f5210f53fc51f521f06767676753fd9fa5501ea004788ffc798fe17f303030cf 
    7070:40114000303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030306f 
    7171:40118000303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302f 
     
    130130:400000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 
    131131:020000040020da 
    132 :02000000e9e431 
     132:02000000ece62c 
    133133:00000001ff 
  • trunk/firmware/usb_ir_body/usb_ir_body/ir.asm

    r1094 r1380  
    144144; FUNCTION rx_disable disables the IR receiver 
    145145rx_disable: 
    146     ; disable the timer capture (tcap) interrupt 
    147     mov A, REG[INT_MSK1] 
    148     and A, ~0b10000000 
    149     mov REG[INT_MSK1], A 
     146        ; disable the timer capture (tcap) interrupt 
     147    and REG[INT_MSK1], ~0b10000000 
    150148 
    151149    ; disable the timer wrap (twrap) interrupt 
    152     mov A, REG[INT_MSK2] 
    153     and A, ~0b00000010 
    154     mov REG[INT_MSK2], A 
     150    and REG[INT_MSK2], ~0b00000010 
    155151 
    156152    ; make sure the transmit LEDs are OFF 
     
    173169        jz rx_reset_done 
    174170 
     171        ; clear the timer capture registers from when the receiver was "off" 
     172    mov REG[FRTMRL], 0      ; reset timer low byte 
     173    mov REG[FRTMRH], 0      ; reset timer high byte 
     174    mov REG[TCAPINTS], 0x03 ; clear int status 
     175        ; acceptably small race between this and the next instruction 
     176 
     177        ; need to clear any pending interrupts 
     178    and REG[INT_CLR1], ~0b10000000         ; tcap interrupt 
     179    and REG[INT_CLR2], ~0b00000010         ; twrap interrupt 
     180 
    175181    ; enable the timer capture interrupt 
    176     mov A, REG[INT_MSK1] 
    177     or A, 0b10000000         ; tcap interrupt enable 
    178     mov REG[INT_MSK1], A 
    179  
    180     ; enable the timer wrap interrupt 
     182    or REG[INT_MSK1], 0b10000000 
     183 
     184    ; enable the timer wrap interrupt unless we're in repeater mode 
    181185    mov A, [rx_flags]        ; check if we're in repeater mode 
    182186    and A, RX_REPEATER_FLAG 
    183187        jnz rx_reset_done 
    184     mov A, REG[INT_MSK2] 
    185     or A, 0b00000010         ; twrap interrupt enable 
    186     mov REG[INT_MSK2], A 
     188    or REG[INT_MSK2], 0b00000010 
    187189 
    188190  rx_reset_done: 
Note: See TracChangeset for help on using the changeset viewer.