Programateando #3, parte 2. Uart y Fifo con interrupciones
Channel: El Colo Tronics
Date: 09/09/2016

En esta edición nos metemos de lleno en hacer trabajar la Fifo con la Uart a través de interrupciones.
Pruebas, errores, depuración, correcciones, alguna breve consideración de concurrencia...
Terminamos con algo aparentemente funcional... ¿será así?

----------------------------------------------------------
Guía temporal

Intro hasta 0:30
0:30 Ñom ñom ñom.
2:25 Ahora sí empezamos!!!, interrupción de recepción Uart con FIFO.
6:01 Modificación UartWrite y UartRead(), rutina de interrupción para transmitir por uart.
8:40 No usar sumar para setear/limpiar bits!!!
10:12 Seguimos, ¿eco en la ISR de RX?, por qué la transmisión Uart es menos exigente que la recepción.
12:14 Había una vez... ( totalmente irrelevante :P ).
13:43 Rutina de comienzo de transmisión UartTxStart(). Parada de rutina de interrupción de transmisión.
17:02 Funcionamiento de nuestras funciones para transmisión por UART.
18:20 Queremos no romper la aplicación si llaman mal a UartTxStart(), pero eso genera concurrencia entre TxStart y ISR transmisión UART.
21:55 Sincronizando con variable global volatile.
23:54 Código de prueba en main(). Hacer una linea nueva tiene sus bemoles.
26:20 Compilamos, corrección menores, a ejecutar y.... error!!! (tenía que ser).
29:29 Hacemos un "attach" para ver depurar.
32:50 Ya encontramos que el problema es habilitación de interrupción, hacemos modificaciones, ahora sincronizamos con bit de habilitación de interrupción.
36:31 A probar de vuelta!!! yyyyyy..... aserción!!!!
38:07 Notar como se guarda "char" en buffer "unsigned int"
39:34 Aserción... algo falla con vos... ajá!!!, solucionamos eso, y a probar de vuelta. La tediosa búsqueda de errores en forma manual. Encontramos el error y corregimos.
45:49 Por qué el código de test es mejor que depuración manual.
48:08 Prueba final.... por ahora.
----------------------------------------------------------
Videos anteriores:

Programateando #2:
https://www.youtube.com/playlist?list=PLGL5AjNW8FqpXpfCmRQN3_JhkD6ks2FXu

Programateando #1:
https://www.youtube.com/playlist?list=PLGL5AjNW8FqrC4nG78msLqIiTcxzeSBIO
----------------------------------------------------------
GitHub del proyecto: https://github.com/colotron/comandita
Foros:
http://www.forosdeelectronica.com/f24/programateando-3-carreras-truncadas-uart-fifo-enemistadas-146580/
http://www.todopic.com.ar/foros/index.php?topic=46746.0
----------------------------------------------------------
Créditos musicales (intro y outro):

Different Heaven - Nekozilla [NCS Release] 
https://www.youtube.com/watch?v=6FNHe3kf8_s

Autor: Different Heaven
▽ Follow Different Heaven
SoundCloud_ http://soundcloud.com/different-heaven
Facebook___ https://www.facebook.com/DifferentHeaven
YouTube____ https://www.youtube.com/user/Differen...
Twitter____ https://twitter.com/DifferentHeaven

Provista por: NoCopyrightSounds
https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg
▽ Connect with NCS
Facebook___ http://facebook.com/NoCopyrightSounds
Twitch______ http://twitch.tv/nocopyrightsounds
Twitter______ http://twitter.com/NCSounds
Spotify______ http://bit.ly/SpotifyNCS
SoundCloud_ http://soundcloud.com/nocopyrightsounds
Instagram____http://instagram.com/nocopyrightsounds_