20.04.2013 Views

Descarga este documento en formato PDF - Ucontrol

Descarga este documento en formato PDF - Ucontrol

Descarga este documento en formato PDF - Ucontrol

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!