Necesito generar enteros de 8 bits a través de paralelo (es decir, usando 8 pines en el mismo puerto) a 1024 hz. Por lo que puedo ver, tengo dos opciones:
1) Escriba en cada pin individualmente utilizando DigitalOut.
2) Evita la biblioteca mbed por completo y haz algo como:
void sendByte(char byte)
{
DataPort|= (((byte >>0x00) & 0x01) << LCD_D0);
DataPort|= (((byte >>0x01) & 0x01) << LCD_D1);
DataPort|= (((byte >>0x02) & 0x01) << LCD_D2);
DataPort|= (((byte >>0x03) & 0x01) << LCD_D3);
DataPort|= (((byte >>0x04) & 0x01) << LCD_D4);
DataPort|= (((byte >>0x05) & 0x01) << LCD_D5);
DataPort|= (((byte >>0x06) & 0x01) << LCD_D6);
DataPort|= (((byte >>0x07) & 0x01) << LCD_D7);
}
He escuchado que DigitalOut es bastante lento, aunque no estoy seguro de qué frecuencia puede manejar. ¿Es probable que la segunda opción sea más rápida? ¿Alguien puede comparar los dos métodos?
PREGUNTA LATERAL: Usaré la salida con un DAC para producir una señal analógica. ¿Necesitaré usar un búfer en medio, o se garantiza que los pines salgan simultáneamente?