victorduenasg

ATmega16 – ADC

El uso del ADC en un uC es esencial cuando existe la necesidad de digitalizar señales analógicas como por ejemplo valores de temperatura, presión, humedad, movimiento, etc. En el caso de nuestro uC cuenta con 8 entradas ADC multiplexadas, es decir que solo trabaja una entrada a la vez, el resultado de la conversión del …

ATmega16 – ADC Read More »

ATmega16 – Timer 2

Este timer tiene la característica de sincronizarse con un cristal externo de 32KHz, para esto tenemos que habilitar nuestro timer en modo asíncrono, esto es muy importante ya que con este cristal se puede obtener la medida de tiempo de un segundo o hasta incluso casi 16 segundos sin tener que forzar los timers del …

ATmega16 – Timer 2 Read More »

ATmega16 – Timer 1

Este timer tiene la particularidad de poder generar dos señales digitales y tener 15 modos de generación de onda con alta resolución, también cuenta con un capturador de entrada que puede ser usado como contador de eventos externos de alta resolución. Características del Timer 1: Timer de 16 bits. Dos unidades de comparación para generar …

ATmega16 – Timer 1 Read More »

ATmega16 – Timer 0

Con un timer podemos realizar aplicaciones como el control de velocidad de un motor, el manejo de un teclado, un barrido de 7 segmentos, obtención de muestras mediante el ADC, etc. El funcionamiento general de un timer consiste en guardar en un registro especial de almacenamiento un valor máximo al que llegará un contador, cuando …

ATmega16 – Timer 0 Read More »

ATmega16 – Interrupciones

Existe dos formas de procesar datos ingresados hacia el uC, uno es por consulta, que como se vio en el post de GPIO el uC siempre está realizando la lectura de los pines y actualiza la acción de cada pin. Esto tiene una seria desventaja, por ejemplo, supongamos que el uC está realizando la actualización …

ATmega16 – Interrupciones Read More »

ATmega16 – GPIO

GPIO: General Purpose Input Output, Entradas y Salidas de Propósito General, estos son los pines del uC que se usan para detectar o generar cambios lógicos. Algo que se encuentra presente en muchos circuitos son elementos electrónicos de características mecánicas, un un claro ejemplo son los pulsadores, la desventaja de estos elementos mecánicos es su …

ATmega16 – GPIO Read More »

ATmega16 – Tablas

El manejo de tablas es de gran ayuda cuando se tiene gran cantidad de datos almacenados y necesitamos recuperarlos de una ubicación específica rápidamente. Ejemplo: El valor se ingresa en el registro R16 y nos devuelve el resultado en R16. Simulación: En la simulación podemos ver que cuando ingresamos el valor binario 12 nos devuelve …

ATmega16 – Tablas Read More »

ATmega16 – Procedimientos

Un procedimiento es una secuencia de instrucciones que se quieren ejecutar en determinado momento para después seguir con el programa principal, por ejemplo si queremos convertir un número hexadecimal al BCD y este procedimiento se llevará a cabo en el programa principal tres veces, no vamos a tener que copiar el mismo código cada vez …

ATmega16 – Procedimientos Read More »

ATmega16 – SRAM

En la programación con lenguaje ensamblador es necesario conocer cómo está conformada la memoria SRAM ya que colocaremos de manera manual los datos con los que estemos trabajando. En lenguaje ensamblador usaremos los 32 registros de trabajo y los registros de entrada/salida. Cuando se programa en C el compilador se encarga de reconocer cada tipo …

ATmega16 – SRAM Read More »

Atmega16 – Introducción

En este tutorial de como utilizar el microcontrolador ATmega16 voy a utilizar el lenguaje ensamblador (assembler) ya que considero a este como el más óptimo para aprender a programarlos, además ayuda a entender con mayor facilidad sus recursos. También utilizaré el lenguaje C debido a que la gran cantidad de ejemplos referenciales que podemos encontrar …

Atmega16 – Introducción Read More »