Академический Документы
Профессиональный Документы
Культура Документы
Mecatronica
TECNOLOGICO SUDAMERICANO
Mecatronica
EJEMPLO:
f es una funcin que recibe un nmero real x como parmetro y devuelve 2*x-y.
float f (float x, float y) // variables flotantes x y y
se pueden utilizar en f
{
float r;
// declarar r para almacenar el
resultado
r = 2*x - y; // almacenar el resultado del clculo
en r
return r;
// devolver el valor de r
}
Cada funcin debe ser declarada apropiadamente para poder interpretarla correctamente
durante el proceso de compilacin. La declaracin contiene los siguientes elementos:
Tipo de resultado (valor devuelto): tipo de dato del valor devuelto
Nombre de funcin: es un identificador que hace posible llamar a una funcin.
Declaracin de parmetros se parece a la declaracin de variable regular (por
ejemplo: float x). Se utilizan para pasar la informacin a la funcin al llamarla. Los
parmetros diferentes estn delimitados por comas.
Cuerpo de funcin: bloque de sentencias dentro de llaves.
EJEMPLO:
Una funcin no necesita parmetros (funcin main() por ejemplo), pero debe estar entre
parntesis.
TECNOLOGICO SUDAMERICANO
Mecatronica
Funcin RETURN
Una funcin puede devolver un valor por medio de la palabra clave return. Al llegar a
return, la funcin evala un valor (puede ser una expresin) y lo devuelve a la lnea de
programa desde la que fue llamada.
La sentencia return tiene dos usos importantes. Primero, fuerza una salida inmediata de la
funcin en que se encuentra. O sea, hace que la ejecucin del programa vuelva al cdigo
que llam a la funcin. En segundo lugar, se puede utilizar para devolver un valor.
EJEMPLO:
#include <stdio.h>
int mul(int, int);
/* prototipo */
void main (void) /* no recibe nada ni devuelve nada la
funcin principal (main()) */
{
int x=10, y=20, z;
z=mul(x,y); /* 1 */
printf("El resultado es: %d",mul(x,y)); /* 2 */
mul(x,y); /* 3 */
}
mul(int a, int b)
{
return(a*b);
}
Una funcin no puede devolver ms de un valor, pero puede devolver un puntero o una
estructura. Tenga cuidado al utilizar matrices y punteros.
El compilador reserva memoria para el almacenamiento de variables de la funcin reverse
slo durante su ejecucin. Una vez completada la ejecucin de reverse, la localidad de
memoria para la variable i o para la matriz r ya no est reservada. Esto significa que la
direccin que contiene los valores de i o r[] est libre para introducir datos nuevos.
Concretamente, la funcin devuelve slo el valor &r[0], as que slo el primer elemento de
la matriz tab ser almacenado en la memoria. Las dems localidades de memoria, tales
como &tab[1], &tab[2], etc. sern consideradas por el compilador como espacios en
blanco, o sea, estarn listas para recibir los nuevos valores.
Para escribir esta funcin es necesario pasar la matriz r [] como parmetro
TECNOLOGICO SUDAMERICANO
Mecatronica
Funcin IF
La programacin de Condicin o programacin Condicional consiste en afirmar una
expresin, si sta es verdadera se procede a realizar una instruccin, sino se realiza otra
instruccin, se le conoce tambin como instruccin IF. Por ejemplo:
TECNOLOGICO SUDAMERICANO
Mecatronica
{
case 1://caso y el '1' es el condicional
bloque de instrucciones 1; //set de instrucciones para
el caso 1
break;// esta sentencia se utiliza para parar la
bsqueda y que el ciclo no se repita indefinidamente.
case caso_n://aqu tan bien se utilizan caracteres.
set de instrucciones para case n;
break;
default: bloque de instrucciones por defecto //esto
aplica cuando la opcin ingresada y comparada no se
encuentra entre los casos predeterminados.
}
Sentencia DO/WHILE
Existe una tercera y es la instruccin DO WHILE, consiste en hacer determinadas
instrucciones mientras la condicin que le asignamos sea vlida. Por ejemplo:
Sentencia 'ELSE'
La sentencia 'ELSE' significa de lo contrario o sea que si la condicional del 'IF' no es
correcta el set de instrucciones del 'ELSE' aplican.
if (condicin)
{
TECNOLOGICO SUDAMERICANO
Mecatronica
TECNOLOGICO SUDAMERICANO
Mecatronica
Mecatronica
Al llamar una funcin, se le pasan los parmetros. En C existen dos formas diferentes para
pasar parmetros a una funcin.
El primer mtodo, denominado paso por valor, es el ms fcil. En este caso, los
parmetros se pueden considerar como variables locales de la funcin. Cuando se llama
una funcin, el valor de cada parmetro se copia a un nuevo espacio de memoria
reservado durante la ejecucin de la funcin. Como los parmetros se consideran como
variables locales por el compilador, sus valores pueden ser modificados dentro de la
funcin, pero sus modificaciones no se quedan en la memoria una vez completada la
ejecucin de la funcin.
EJEMPLO:
Mecatronica
TECNOLOGICO SUDAMERICANO
Mecatronica
CONEXIN BSICA
Para que un micro controlador funcione apropiadamente es necesario proporcionar lo
siguiente:
Alimentacin;
Seal de reinicio; y
Seal de reloj.
ALIMENTACIN
Aunque el PIC16F887 es capaz de funcionar a diferentes voltajes de alimentacin, no es
recomendable probar la ley de Murphy. Lo ms adecuado es proporcionar un voltaje de
alimentacin de 5V DC. Este circuito, mostrado en la pgina anterior, utiliza un regulador
de voltaje positivo de tres terminales LM7805. Es un regulador integrado y barato que
proporciona una estabilidad de voltaje de alta calidad y suficiente corriente para habilitar
el funcionamiento apropiado del controlador y de los perifricos (aqu suficiente significa
una corriente de 1A).
TECNOLOGICO SUDAMERICANO
Mecatronica
SEAL DE REINICIO
Para que un microcontrolador pueda funcionar apropiadamente, un uno lgico (VCC) se
debe colocar en el pin de reinicio. El botn de presin que conecta el pin MCLR a GND no
es necesario. Sin embargo, este botn casi siempre est proporcionado ya que habilita al
microcontrolador volver al modo normal de funcionamiento en caso de que algo salga
mal. Al pulsar sobre el botn RESET, el pin MCLR se lleva un voltaje de 0V, el
microcontrolador se reinicia y la ejecucin de programa comienza desde el principio. Una
resistencia de 10k se utiliza para impedir un corto circuito a tierra al presionar este botn.
SEAL DE RELOJ
A pesar de tener un oscilador incorporado, el microcontrolador no puede funcionar sin
componentes externos que estabilizan su funcionamiento y determinan su frecuencia
(velocidad de operacin del microcontrolador). Dependiendo de los elementos utilizados
as como de las frecuencias el oscilador puede funcionar en cuatro modos diferentes:
TECNOLOGICO SUDAMERICANO
Mecatronica
Cristal de cuarzo
Al utilizar el cristal de cuarzo para estabilizar la frecuencia, un oscilador incorporado
funciona a una frecuencia determinada, y no es afectada por los cambios de temperatura
y de voltaje de alimentacin. Esta frecuencia se etiqueta normalmente en el encapsulado
del cristal. Aparte del cristal, los condensadores C1 y C2 deben estar conectados como se
muestra en el siguiente esquema. Su capacitancia no es de gran importancia. Por eso, los
valores proporcionados en la siguiente tabla se deben tomar como recomendacin y no
como regla estricta.
Resonador cermico
Un resonador cermico es ms barato y muy similar a un cuarzo por la funcin y el modo
de funcionamiento. Por esto, los esquemas que muestran su conexin al microcontrolador
son idnticos. No obstante, los valores de los condensadores difieren un poco debido a las
diferentes caractersticas elctricas. Refirase a la tabla que est a continuacin.
TECNOLOGICO SUDAMERICANO
Mecatronica
Oscilador RC
Si la frecuencia de operacin no es de importancia, entonces no es necesario utilizar los
componentes caros y adicionales para la estabilizacin. En vez de eso, basta con utilizar
una simple red RC, mostrada en la siguiente figura. Como aqu es utilizada slo la entrada
del oscilador local, la seal de reloj con la frecuencia Fosc/4 aparecer en el pin OSC2. sta
es la frecuencia de operacin del microcontrolador, o sea la velocidad de ejecucin de
instrucciones.
Oscilador externo
Si se requiere sincronizar el funcionamiento de varios microcontroladores o si por alguna
razn no es posible utilizar ninguno de los esquemas anteriores, una seal de reloj se
puede generar por un oscilador externo. Refirase a la siguiente figura.
TECNOLOGICO SUDAMERICANO