expo atmega 328p

2
Dentro de lo que maneja el ATmega 328P, existe diversos registros que nos permiten manipularlo a nuestra conveniencia, por lo que es muy importante de tener en cuenta. Sin embargo, la cantidad de estos registros es un tanto grande, por lo que les presentare registros que son más utilizados y más usuales de encontrar en una programación. Empezamos con los registros generales, que, como su nombre lo indica, se pueden encontrar siendo utilizados a lo largo de los procesos que se lleven a cabo del microcontrolador. Una característica de estos, es que son registros de Entrada y Salida. El primer registro se llama SREG, el cual es un registro que muestra el estado de las operaciones lógicas y aritméticas realizadas en el módulo ALU. Por la característica antes mencionada, es muy utilizada en los programas en ensamblador, esto lo podemos relacionar con los registros que encontrábamos en el programador Ensamblador: AL, BL, DL, etc. Este lenguaje trata más a fondo la utilidad de este registro, sin embargo en un lenguaje de alto nivel no lo hace, tan solo hace de un solo bit, el i. El registro siguiente es el MCUCR, el cual, ya en la práctica, tan solo se utilizara el bit PUD. Más que cualquier cosa, todos los bits interactúan entre si y tienen una meta en común, la habilitación e inhabilitación del bit PUD y su accionar. El funcionamiento de tan nombrado bit, es el de activar o desactivar los pull-ups de todos los pines de los puertos del microcontrolador sin importar los valores que tenga los registros DDRx y PORTx, recordemos que estos registros ya

Upload: alfonso-castillo

Post on 24-Apr-2015

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Expo ATmega 328P

Dentro de lo que maneja el ATmega 328P, existe diversos registros que nos permiten manipularlo a nuestra conveniencia, por lo que es muy importante de tener en cuenta. Sin embargo, la cantidad de estos registros es un tanto grande, por lo que les presentare registros que son más utilizados y más usuales de encontrar en una programación.

Empezamos con los registros generales, que, como su nombre lo indica, se pueden encontrar siendo utilizados a lo largo de los procesos que se lleven a cabo del microcontrolador. Una característica de estos, es que son registros de Entrada y Salida.

El primer registro se llama SREG, el cual es un registro que muestra el estado de las operaciones lógicas y aritméticas realizadas en el módulo ALU. Por la característica antes mencionada, es muy utilizada en los programas en ensamblador, esto lo podemos relacionar con los registros que encontrábamos en el programador Ensamblador: AL, BL, DL, etc. Este lenguaje trata más a fondo la utilidad de este registro, sin embargo en un lenguaje de alto nivel no lo hace, tan solo hace de un solo bit, el i.

El registro siguiente es el MCUCR, el cual, ya en la práctica, tan solo se utilizara el bit PUD. Más que cualquier cosa, todos los bits interactúan entre si y tienen una meta en común, la habilitación e inhabilitación del bit PUD y su accionar. El funcionamiento de tan nombrado bit, es el de activar o desactivar los pull-ups de todos los pines de los puertos del microcontrolador sin importar los valores que tenga los registros DDRx y PORTx, recordemos que estos registros ya

Page 2: Expo ATmega 328P

se habían visto en clase y que manejan los puertos y sus direcciones.

El siguiente registro general se llama MCUSR, el cual es el registro que lleva en cuenta cual es el estado del microcontrolador. Los bits que se presentan son flags, los cuales permiten una identificación pronta de las causas de un reset presente en microcontrolador. Pero hay algo que es necesario tomar en cuenta, el programa que esté utilizando este registro debe leerlo tan pronto como sea posible y volverlos a su estado original, regularmente a cero, esto para evitar cruce de estado.

Los siguientes paquetes de registros pertenecen a la clasificación de timers, los cuales tiene la capacidad de trabaja en paralelo con el procesador, encargándose de temporizaciones y conteos, haciendo que el procesador se preocupe por otras cosas. Estos paquetes, o mejor dicho módulos, son seccionados en tres y hasta cuatro de estos, pero regularmente se encuentra desde el timer0 al timer2. Todos los timers, tienen la capacidad de trabajar bajo el modo de PWM, esto anteriormente visto en clase, pero desgraciadamente algunos timers mejor que otros. Por lo que el Timer0 está encargado de temporizar y contar, el Timer1 función con PWM, y Timer2 capaz de trabajar con relojes externos.

A pesar de tener tantas diferencias, todos los módulos contienen los mismos registros, con la dichosa diferencia de su numeración. Por lo que hace apto que se pueda explicar en conjunto genéricamente.