Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

UART de pic a 125khz

8 Respuestas
4 Usuarios
0 Reactions
6,015 Visitas
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 18 años

Hasta ahora programaba el puerto serie por software, pero si me cambio a un micro pic con UART me pregunto si podré programarlo para coger datos digitales a 125khz.
Mi idea es usar uno que consuma poco, un 12F1823 o similar.

Saludos

Responder
7 respuestas
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 18 años

Para leer y escribir por las dos uarts he hecho este trozo de código:

while(1)
{
if (!U1STAbits.UTXBF) { U1TXREG=bufferTX1[countTX1--]; }
if (!U2STAbits.UTXBF) { U2TXREG=bufferTX2[countTX2--]; }
if (U1STAbits.URXDA) { bufferRX1[countRX1++]=U1RXREG; }
if (U2STAbits.URXDA) { bufferRX2[countRX2++]=U2RXREG; }
...
}

La pregunta es si después de escribir he de resetear el flags: U1STAbits.UTXBF=1
Y si después de leer también: U1STAbits.URXDA=0
(y lo mismo para la segunda UART)

Responder
dragonet80
Respuestas: 1328
(@dragonet80)
Ardero
Registrado: hace 18 años

Para leer y escribir por las dos uarts he hecho este trozo de código:

while(1)
{
if (!U1STAbits.UTXBF) { U1TXREG=bufferTX1[countTX1--]; }
if (!U2STAbits.UTXBF) { U2TXREG=bufferTX2[countTX2--]; }
if (U1STAbits.URXDA) { bufferRX1[countRX1++]=U1RXREG; }
if (U2STAbits.URXDA) { bufferRX2[countRX2++]=U2RXREG; }
...
}

La pregunta es si después de escribir he de resetear el flags: U1STAbits.UTXBF=1
Y si después de leer también: U1STAbits.URXDA=0
(y lo mismo para la segunda UART)

Si te fijas en el "Family Reference Manual" del 30F, verás que el bit/flag UTxBF es "read only".

Puedes darle un vistazo al bootloader y a su código fuente para ver como hace las lecturas y escrituras:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en530200 " onclick="window.open(this.href);return false;

Vaya, ahora he visto que yo te hablo del dspic y tu usas un 16F1823. Pero eso no me cuadra con el código que has puesto, que vendría a ser de un dspic. En cambio en el 16F1823, usa unos registros diferentes y sólo tiene 1 puerto serie. Así que me quedo un poco descolocado.

Responder
fusion
Respuestas: 391
Topic starter
(@fusion)
Ardero
Registrado: hace 18 años

Es correcto, estoy con el dspic30, perdona 🙂

Responder
Página 2 / 2
Compartir: