Trabajando con un pic a 64 Mhz se supone que tenemos una frecuencia de instruccion de 16Mhz, esto es, que el micro puede ejecutar 16 millones de instrucciones por segundo.
Si yo escribo un valor en un registro de un puerto, por ejemplo, pongo el valor 170 en el puerto B y el puerto B quedará en 10101010. ¿ Ese proceso demora 2 ciclos de instrucción?.
¿ Significa eso que en un micro a 64 Mhz yo podría sacar 16 millones de bytes por segundo por el puerto B ??
La prueba la hecho en C, y claro, sé que esto mejor en assembler, pero en C haciendo:
while(1) {
output_b(0b10101010);
output_b(0b01010101);
output_b(0b10101010);
output_b(0b01010101);
}
Lo he puesto 4 veces seguidas para ver los tiempos entre cambios de estados de función a función sin tener en cuenta que el while en si ocupa otros dos ciclos por lo menos.
Esto visto en el osciloscopio me da 8 millones de cambios de estado por segundo y no los 16 que esperaba.
¿ es correcto?, Algo se me escapa.