¿Cuál es la forma más rápida de alternar un bit1 en MPASM para el de 14 bits?
conjunto de instrucciones mejoradas? (Estoy trabajando con un PIC16F1829)
El código debe ser independiente, quiero decir que se puede llamar en cualquier
momento, sin saber el valor del bit en ese momento.
Los criterios clave son la velocidad aquí: un programa con menos ciclos de instrucción es
mejor. El número de ciclos de instrucciones se calcula como el número
cuando el bit es 0 + el número cuando el bit es 1, dividido por 2.
1: con alternar quiero decir que el código debe ser similar a pin =! pin en C
He asumido que el bit que desea cambiar es parte de un registro que tiene "no importa" en los otros bits y, por lo tanto, los nibbles de intercambio podrían funcionar. Nunca dijo que no podría funcionar de esta manera y si está tan corto de registros que necesita los otros bits, se recomienda volver a escribir el código o actualizar MCU.
Necesitaría configurar 11110000 (cualquier patrón haría si bn no es igual a bn + 4) inicialmente, pero luego cada vez que quiera invertir uno de los bits que usa:
swapf f, d
Es una operación de un ciclo y no necesita 1 en la configuración del registro w.
Por supuesto, en el resto del programa tendrías que seguir este método de cambiar el bit PERO otra vez, no has dicho que no puedes, en otras palabras, las instrucciones de BCF o BSF están prohibidas.
Pensé en rotar, pero giran a través del transporte y esto probablemente corrompería las cosas. ¡No he escrito el código PIC en más de 20 años, por lo que el perdón debería estar en la vanguardia de su mente cuando se vota! p>