viernes, 20 de agosto de 2021

Ejercicio numero 4 Secuencia en el puerto B que se detiene al final

 Con este codigo vamos a probar algunas otras instrucciones esta ves seran DEC y BRNE

DEC:  Decrementa un registro en una unidad ( resta 1 al contenido del registro)

BRNE: Si la bandera Z del registro SREG es cero (0), salta a la dirección especificada por operando1

Ahora vamos a dar un salto condicional, veamos:


Sencillo no? dec le resta uno a reg2 esto afecta la bandera z, cuando mientras no se active sigue llendo  a LOOP, a pero cuando llega a cero, ya no hace salto, y se va a STOP. 

Veamos la simulación:



Ingenieria inversa de productos electronicos


Ingenieria Inversa de Produ... by Mariano Rocha

Ejercicio numero 3, secuencia en el puerto B con retorno por el carry.

 En este ejercicios seguiremos ampliando el uso de instrucciones para hacer ejercicios de practica y conocer el funcionamiento de estas, vamos a hacer una simple secuencia en el puerto B:

Ahora ya estamos dando uso a la instrucción ROL.

ROL: Rota los bits de reg1 una posición hacia la izquierda, incluyendo acarreo. En el bit 0 se cargará lo que tengamos en C. En C se cargará el bit 7.

Los AVR usan un registro que cumple la misma función del registro STATUS de los PIC su nombre es SREG, las banderas afectadas son: 

H: Se activa si hay arrastre en el tercer bit del resultado.
S: Se activa si N o V están activos ( solo uno de los dos)
V: Se activa si se produce desbordamiento en el complemento a dos
N: Se activa si el resultado de la operación es negativo ( MSB=1)
Z: Se activa si el resultado de la operación es cero(0)
C: Se activa si el valor absoluto de Operando2 es mayor que el del Operando1

Simulación.
En la siguiente imagen veremos lo que sucede en la simulación.




Ejercicio numero 2: Led Blinking en ASM con el ATTINY2313

 Este es el tercer ejercicio, a estas alturas ya deberiamos haber investigado como funcionan los puertos en este microcontrolador, si ya sabes como es su control, entonces ya nos gustaria hacer el famoso prende y apaga con el fin de valorar si es verdad que el micro lleva una frecuencia y esta bien programado, esta es la prueba definitiva, con esto nos damos cuenta que todo deberia estar en orden.

Ahí vamos!!

Codigo:





Tenemos el uso de nuevas instrucciones, para activar y desactivar un pin del micro SBI y CBI, la primera lo coloca en 1 y la segunda lo coloca en cero.
También tenemos rcall es una llamada a subrutina y ret para retornar, igual que un PIC.
Hay una subrutina de retardos la cual es necesaria para poder hacer que el led encienda y apague.

Simulación:




Ejercicio numero 1, led on con ATTINY2313

 Las instrucciones de esta gama de microcontroladores son de una magnitud y una cantidad que el solo hecho de empezar a memorizarlas y entender su funcionamiento es un desafío en si mismo, sin embargo el deseo de entender como funcionan las cosas por dentro nos llevan a explorar todas las posibilidades que existen.

En este primer ejercicio dejare un código el cual podrás compilar usando Microchip Studio, que en el fondo es la misma herramienta de Atmel, solo cambia el nombre.

En el siguiente link de Microchip selecciona cual quieres descargar, recomiendo la ultima:

https://www.microchip.com/mplab/avr-support/avr-and-sam-downloads-archive

Código Fuente explicado.

Nota: Al crear un proyecto usando Microchip Studio para ASM y al seleccionar el micro este queda configurado en el proyecto, ya no debes definirlo mas en tu código, si lo haces te dará error.

Resumen de directivas:
.CSEG  Es una orden que le indica al compilador que trabajaremos en la memoria de programa
.ORG    Esta es una orden que le dice a partir de que posición de memoria se posicionara el código.


LDI carga R16 con la posición final de RAM y con OUT la almacena en el SPL el cual es el byte bajo del apuntador de la PILA para las instrucciones

Recuerden esta instrucción LDI esta puede cargar una constante en un registro, y la funcion OUT es la que envía datos a los dispositivos de salida como los puertos, tanto el registro de confinguraciones DDRB como el del PORTB que envía los datos hacia afuera.

Pruebas en Proteus.





Ejercicios básicos de programacion en ASM de los microcontroladores ATTINY2313 y otros modelos.

 Un saludo a mis seguidores.

Quiero invitarlos a acompañarme en las practicas personales que realizare con el fin de conocer la arquitectura de los micros Microchip AVR esta ves el ATTINY2313 el cual para ser tan potente se encuentra a muy buenos precios en el mercado internacional, con el fin de aprovechar sus características y conocimientos adquiridos de su arquitectura pasar al uso de otros micros mas potentes de la misma familia, no limitándonos al ASM si no aprovechando todas las posibilidades que hoy día se nos da, sin dejar de conocer lo mas posible su funcionamiento interno a fin de sacarle el mayor rendimiento a cada dispositivo.

NOTA IMPORTANTE:

No publicare teoría alguna, toda la teoría quedara en manos de las hojas de datos, tutoriales de YouTube y libros comprados o descargados de la red, tal ves alguna referencia a ellos en algún que otro ejercicio.

Tipos de ejercicios.

Los ejercicios que se realizaran serán del mismo tipo de ejercicios que se usaron hace mucho tiempo con los microcontroladores PIC ya que esa es mi especialidad, estaré buscando el acomodo para una rápida transición entre lenguajes a fin de aprovechar los conocimientos ya adquiridos con otras marcas de microcontroladores, si Ud. ha programado microcontroladores lo mas seguro es que sabrá como funcionan estos ejercicios.

Herramientas necesarias para llevar a acabo los ejercicios:

Microchip Studio para ATMEL.

Proteus para simular.

Adicionalmente: Programador de cualquier tipo, poseer un micro para hacer pruebas.

Conocimientos previos: Debe saber electrónica, en este curso debes haber programado exitosamente microcontroladores sin ningún tipo de plataforma de desarrollo rapido (a la antigua), montarlos en placas, tener experiencia en ASM o estar aprendiendo.


Dejo una imagen de referencia de este microcontrolador:




Ahora con esta imagen podrán ver su distribución de pines.


Y por ultimo descarga la hoja de datos: