ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
21 апреля
417296 Топик полностью
amusin (13.06.2013 14:57, просмотров: 78) ответил amx на А даёт выигрыш? ИМХО битбанг имеет смысл когда адрес не меняется, а вот пересчитёт адреса для каждого бита может выйти даже дольше.
Бит-банг через адреса пинов, прописанные в таблице: 
    168                              for (uint8_t i = 0; i < sizeof(Pca9555emul_Io)/sizeof(Pca9555emul_Io[0]); i++, mask<<=1)
   \   00000078   0x2100             MOVS     R1,#+0
    169                              {
    170                                  if (regs.output & mask)
   \                     ??Cmd_12:
   \   0000007A   0xEB08 0x02C1      ADD      R2,R8,R1, LSL #+3
   \   0000007E   0x4238             TST      R0,R7
   \   00000080   0xBF14             ITE      NE 
   \   00000082   0x2301             MOVNE    R3,#+1
   \   00000084   0xF44F 0x3380      MOVEQ    R3,#+65536
    171                                  {
    172                                      PinSet(&Pca9555emul_Io[i]);
    173                                  }
    174                                  else // ыюу. 0
    175                                  {
    176                                      PinClr(&Pca9555emul_Io[i]);
   \   00000088   0x6856             LDR      R6,[R2, #+4]
   \   0000008A   0x40B3             LSLS     R3,R3,R6
   \   0000008C   0x6812             LDR      R2,[R2, #+0]
   \   0000008E   0x6113             STR      R3,[R2, #+16]
    177                                  }
    178                              }
   \   00000090   0x1C49             ADDS     R1,R1,#+1
   \   00000092   0x007F             LSLS     R7,R7,#+1
   \   00000094   0x2910             CMP      R1,#+16
   \   00000096   0xD3F0             BCC.N    ??Cmd_12