Tengo un MSP430G2231. Mi objetivo final es comunicarme con un dispositivo que desea 1 bit de datos cada microsegundo. Creo que esto es demasiado rápido para los temporizadores, lo que significa que debo escribir a mano el código de ensamblaje que usa la cantidad correcta de ciclos para la temporización.
ti.com dice que la frecuencia de la CPU es de 16MHz. El manual dice que "llamada" lleva 5 ciclos. ¿Significa esto que toma 5 / 16000000segundos?
Para verificar esto, traté de hacer un programa simple que se supone que debe encender el LED cada segundo al contar desde 65536 61 veces. Esto debería usar ~ 65536 * 61 * 4 ciclos (alrededor de 16 000 000). Suponiendo que el párrafo anterior sea correcto, eso debería tomar 1 segundo, pero toma 12-13 segundos.
hello:
mov.w #62, r15
clr.w r14
hello_next:
dec.w r14 ; 1 cycle
subc.w #0, r15 ; 1 cycle
jnz hello_next ; 2 cycle
xor.b #LED1PIN, &P1OUT
jmp hello