Descarga este documento en formato PDF - Ucontrol
Descarga este documento en formato PDF - Ucontrol
Descarga este documento en formato PDF - Ucontrol
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
17 de 22<br />
void R_Ll<strong>en</strong>ador1()<br />
{<br />
//El robot debe esperar a que la cinta t<strong>en</strong>ga sufici<strong>en</strong>tes botellas para sacar antes<br />
//de com<strong>en</strong>zar a trabajar.<br />
rtos_await(iCantidad>24); //Esperemos a que se ll<strong>en</strong>e un poco la cinta<br />
output_bit( PIN_B4, 1); //A partir de aqui, si no se podia antes, sacar botellas<br />
rtos_wait(semaphore);<br />
if(input(PIN_B1)==1)<br />
iCantidad -= 12;<br />
if(iCantidad 24); //Esperemos a que se ll<strong>en</strong>e un poco la cinta<br />
output_bit( PIN_B5, 1); //A partir de aqui, si no se podia antes, sacar botellas<br />
rtos_wait(semaphore);<br />
if(input(PIN_B2)==1)<br />
iCantidad -= 12;<br />
if(iCantidad RTOS mail<br />
Hasta el mom<strong>en</strong>to solam<strong>en</strong>te hemos visto mecanismos que nos permit<strong>en</strong> simplificar el diseño de nuestros<br />
programas, pero hoy vamos a ver una nueva pot<strong>en</strong>cialidad de los RTOS que es una cuestión realm<strong>en</strong>te<br />
novedosa <strong>en</strong> cuanto la visión de la programación para uC a la cual estamos acostumbrados.<br />
Cuando hacemos una llamada a una función, es frecu<strong>en</strong>te pasarle algún parámetro para que esta pueda hacer<br />
su tarea, mi<strong>en</strong>tras la función trabaja, nuestro programa espera paci<strong>en</strong>tem<strong>en</strong>te a que la función retorne y nos<br />
devuelva el resultado, que puede ser un valor de retorno, un arreglo cambiado o simplem<strong>en</strong>te el cambio <strong>en</strong> el<br />
estado de algún periférico o salidas del uC.<br />
El párrafo anterior describe lo que hace nuestro programa cuando llamamos a una función, sin embargo nunca<br />
hemos visto que una función le <strong>en</strong>víe un dato a otra (no <strong>en</strong> la llamada a la función, sino fuera de ésta) para<br />
que cuando le toque ejecutarse tome esos valores y los procese, y si hay que devolver algún resultado<br />
<strong>en</strong>tonces que nos <strong>en</strong>víe un acuse de recibo. Es lógico que un mecanismo como el que acabo de describir no se<br />
utilice <strong>en</strong> las técnicas de programación anterior porque la ejecución secu<strong>en</strong>cial del código presupone que no se