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).

Cuadro de texto: Figura 2a. Página de descarga de ATMEGA STUDIO



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
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

Entradas populares