ESTRUCTURA DE LIBRERÍA EN C PARA ATMEGA328_1era Parte
Objetivos:
·
Programar código en C para microcontroladores en
el software Atmel Studio versión 7.0
·
Construir una librería para servomotores en
lenguaje C
·
Comprender el uso de interrupciones
Tutorial básico para ATMEL STUDIO
Este tutorial está diseñado para
las personas que nunca han utilizado un microcontrolador de Atmel. Para este
caso utilizaremos un Atmega 328 para ilustrar todo el proceso, que es exactamente
el mismo para los demás microcontroladores.
Descargar el programa
en el siguiente link: https://www.microchip.com/avr-support/atmel-studio-7
(la parte encerrada de color azul es la recomendada y debe tener conexión a
Internet, Figura 2.a).
En la página de inicio mostrada
en la Figura 2.b, seleccionamos en Tool
seguidamente en Extensions and Updates por si desean agregar algun plugin
Figura 2.b Página de Inicio del software Atmega Studio
Nos aparecerá una ventana Fig.2.b y seleccionamos Available Downloads
|
Comencemos!!
1)
Librerías
de preprocesador
a)
#include <avr/io.h>
La librería avr/io.h asegura
que el preprocesador se encargue de incluir el archivo correcto con las
definiciones necesarias para trabajar con el microcontrolador seleccionado.
b) #include <util/delay.h>
El
preprocesador <util/delay.h>
nos facilita funciones
para bucles de retardo.
c)
F_CPU
es la frecuencia de reloj de la CPU (en Hertz). Al momento de poner
#define F_CPU 20000000UL, que significa que
el microcontrolador trabajará a 20Mhz
2)
Tipos
de datos
Cada
dato utilizado en el programa debe tener su tipo especificado. Esto permite al
compilador conocer el tamaño de dato (número de bytes requerido en la memoria)
y su representación.
A
continuación, adjuntamos la tabla que muestra el rango de valores que los datos
pueden tener cuando se utilizan en su forma básica.
TIPO DE
DATO
|
DESCRIPCIÓN
|
TAMAÑO
(NÚMERO DE BITS)
|
RANGO DE
VALORES
|
char
|
Texto (caracteres)
|
8
|
de 0 a 255
|
int
|
Valores
enteros
|
16
|
de -32768
a 32767
|
float
|
Valores en punto flotante
|
32
|
de ±1.17549435082·10-38 a ±6.80564774407·1038
|
double
|
Valores en
punto flotante de doble precisión
|
32
|
de
±1.17549435082·10-38 a ±6.80564774407·1038
|
Prefijos
para los tipos de datos:
TIPO DE
DATO
|
TIPO DE
DATO CON PREFIJO
|
TAMAÑO
(NÚMERO DE BITS)
|
RANGO DE
VALORES
|
char
|
signed char
|
8
|
de -128 a 128
|
int
|
unsigned
int
|
16
|
de 0 a
65535
|
short int
|
8
|
de 0 a 255
|
|
signed
short int
|
8
|
de -128 a
127
|
|
long int
|
32
|
de 0 a 4294967295
|
|
signed
long int
|
32
|
de
-2147483648 a 2147483647
|
3) Variables
y Constantes
Una variable es un objeto nombrado que reside en la
memoria RAM y puede examinarse y modificarse. Una variable se usa para contener
información crítica para el funcionamiento del sistema integrado. Una constante
es un objeto nombrado que reside en la memoria (generalmente en la ROM) y solo
puede examinarse.
short MiVariable; /* la variable permite el acceso de lectura/escritura*/
const short MiConstante=50; //la
constante permite el acceso de
//
lectura y escritura
#define fifty 50
void main(void){
MiVariable=50; /* acceso
de escritura a la variable */
funcion(MiVariable); /* acceso
de lectura a la variable */
funcion(50); /* "50" es una constante*/
funcion(fifty); /* fifty es también una constante */
}
4)
Condicionales
·
Instrucción
if – else: Existen dos o más expresiones a ser
evaluadas.
if (expression) statement1
else statement2
else statement2
Declaraciones
anidada: Puede usar una
instrucción if dentro de otra instrucción if. Ejemplo:
int power = 10;
float band = 2.0;
float frequency = 146.52;
if (power > 5)
{
if (band == 2.0)
{
if ((frequency > 144) && (frequency < 148))
{
printf("Yes,
it's all true!\n");
}
}
}
5)
Operadores
Hay más de 40 operaciones disponibles en el lenguaje
C, pero se utiliza un máximo de 10-15 de ellas en práctica. Cada operación se
realiza sobre uno o más operandos que pueden ser variables o constantes.
OPERADOR
|
OPERACIÓN
|
+
|
Adición
|
-
|
Resta
|
*
|
Multiplicación
|
/
|
División
|
%
|
Resto de la división
|
OPERADORES DE ASIGNACIÓN
OPERADOR
|
EJEMPLO
|
|
Expresión
|
Equivalente
|
|
+=
|
a += 8
|
a = a + 8
|
-=
|
a -= 8
|
a = a - 8
|
*=
|
a *= 8
|
a = a * 8
|
/=
|
a /= 8
|
a = a / 8
|
%=
|
a %= 8
|
a = a % 8
|
/// les comento que a me cansé, en unos días subo la continuación con unos programas que les romperán el cerebro 👌😂
Comentarios
Publicar un comentario