Escolar Documentos
Profissional Documentos
Cultura Documentos
Entrega N 7.
Assembler embebido
Se puede insertar cdigo en assembler mediante #asm y #endasm. Dentro de un bloque en assembler no se deben usar: Las directivas del ensamblador. las etiquetas deben acabar con : No se soporta direccionamiento indirecto. La constantes se especifican como en lenguaje C.
Ejemplo: #asm //codigo en Assembler MOVLW 10 // Movemos decimal al contador MOVWF count, 0 inicio: //etiqueta NOP NOP DECFSZ count, 1, 0 //decrementamos el contador BRA inicio salir: #endasm //salimos del bloque assembler
Ejemplo:
struct Reloj { char hora; char minuto; char segundo; } De esta forma se define una estructura llamada reloj, ahora hay que declarar una variable de este tipo: struct Reloj Time; En este caso la variable es de tipo empleado y se pueden acceder a los campos miembros de la estructura de la siguiente forma: Time.hora Time.minuto Time.segundo Las estructuras son muy usadas para crear campos de BITS que nos permitan usar de forma individual cada uno de los BITS de los registros de funciones especiales.
Los posibles tipos de retorno son los tipos de datos ya vistos: (int, float, void, char,etc). Para crear una funcin en C, primero hay que declarar el prototipo de la misma antes de la funcin main() y luego de la llave final del programa se define la funcin.
Ejemplo:
La siguiente funcin suma dos valores y retorna un resultado: int suma(int x, int y) { return x+y; } Se retorna de una funcin cuando se llega a la sentencia return o cuando se encuentra la llave de cierre de la funcin. Cuando lo que se desea escribir es un procedimiento que, por ejemplo, realice un delay o muestre un texto por LCD o cargue una arreglo, o sea, que no devuelva ningn valor se escribe como tipo de retorno void,( que significa tipo vaco).
Variable local:
Se declara apenas abrir una llave en el cdigo, cuando la llave se cierra esta variable desaparece.
En este ejemplo llamamos a la funcin delay_ms y le pasamos el valor 100, el cual se encuentra dentro del parntesis.
Ejemplo: void calcula_voltaje (int val, float &voltaje)//funcion que calcula el voltaje { voltaje=(val*v_max)/escala; } En el ejemplo de la funcin observamos el apuntador & que apunta a la variable voltaje, de esta forma le pasamos el valor de la variable a la posicin que la misma ocupa.
ATENCIN: Los arrays, (entindase tambin cadenas), siempre se pasan por referencia y no hace falta anteponerle el smbolo &, pues como habamos dicho el nombre de un array es un puntero al primer elemento del mismo.
Continuar ......