ejemplo AVR con ASM
2 participantes
Página 1 de 1.
ejemplo AVR con ASM
Mi primer programa para AVR con ensamblador (antes ya había programado un poco pero no cuenta porque ya no me acordaba :p ). Este programita pueden verlo para iniciar su experiencia con estos uC.
El AVR que utilizo es el ATtiny2313. El fichero tn2313def.inc
Para ensamblar uso avra:
Para programar uso avrdude (y pickit2):
Y dado que utilizo el oscilador interno a 8MHz, configuro el AVR con el siguiente valor de los fuses:
El diagrama de conexiones (muy fácil):
Saludos!
El AVR que utilizo es el ATtiny2313. El fichero tn2313def.inc
- Código:
; Author: aztk
; Date: April, 2012
; Name: blink_avr.asm
; uC: ATtiny2313
;
; Prende y apaga un LED con una f de 2Hz
.include "tn2313def.inc"
; LED conectado en PORTB,00
.equ portLED = PORTB
.equ ddrLED = DDRB
.equ pinLED = PORTB0
; Tabla de interrupciones
rjmp inicio ;1 RESET
reti ;2 INT0
reti ;3 INT1
reti ;4 TIMER1 CAPT
reti ;5 TIMER1 COMPA
reti ;6 TIMER1 OVF
reti ;7 TIMER0 OVF
reti ;8 USART0, RX
reti ;9 USART0, UDRE
reti ;10 USART0, TX
reti ;11 ANALOG COMP
reti ;12 PCINT
reti ;13 TIMER1 COMPB
reti ;14 TIMER0 COMPA
reti ;15 TIMER0 COMPB
reti ;16 USI START
reti ;17 USI OVERFLOW
reti ;18 EE READY
reti ;19 WDT OVERFLOW
inicio:
; Set up the stack
ldi r16, LOW(RAMEND)
out SPL, r16
;ldi r16, HIGH(RAMEND)
;out SPH, r16
; Definir I/O
sbi ddrLED, pinLED ; pinLED como salida
; Progrma principal
main:
sbi portLED, pinLED
rcall Delay_1000ms
cbi portLED, pinLED
rcall Delay_1000ms
rjmp main
; END
; SUBRUTINAS
; Generated by delay loop calculator
; at http://www.bretmulvey.com/avrdelay.html
;
; Delay 8 000 000 cycles
; 1000ms at 8.0 MHz
Delay_1000ms:
ldi r18, 41
ldi r19, 150
ldi r20, 128
L1: dec r20
brne L1
dec r19
brne L1
dec r18
brne L1
ret
Para ensamblar uso avra:
- Código:
$ avra blink_avr.asm
Para programar uso avrdude (y pickit2):
- Código:
$avrdude -p t2313 -c pickit2 -e -U flash:w:blink_avr.hex
Y dado que utilizo el oscilador interno a 8MHz, configuro el AVR con el siguiente valor de los fuses:
- Código:
$ avrdude -p t2313 -c pickit2 -U lfuse:w:0xe4:m
El diagrama de conexiones (muy fácil):
Saludos!
aztk- Participante Activo
- Mensajes : 52
Fecha de inscripción : 08/06/2009
Edad : 35
Localización : Tenochtitlan
Re: ejemplo AVR con ASM
Saludos aztk, disculpa la molestia pero estoy haciendome un lio intentando aprender a programar en los micros de atmel, en concreto un at89s52.
tendras algun material donde explique un poco el tema, bancos de memorias (si tiene), cómo leer y escribir en los puertos, usar los timers, configuraciones y demas, como se estructura un programa en ensamblador? cuales son las palabras reservadas, etc, etc, algo introductorio pero explicado. he tomado el datasheet en seco y no me ha quedado claro.
de ante mano gracias por cualquier orientacion que puedan proporcionar. (como ide tengo M-IDE51 para win por el momento, luego veré como hacer todo desde mint)
tendras algun material donde explique un poco el tema, bancos de memorias (si tiene), cómo leer y escribir en los puertos, usar los timers, configuraciones y demas, como se estructura un programa en ensamblador? cuales son las palabras reservadas, etc, etc, algo introductorio pero explicado. he tomado el datasheet en seco y no me ha quedado claro.
de ante mano gracias por cualquier orientacion que puedan proporcionar. (como ide tengo M-IDE51 para win por el momento, luego veré como hacer todo desde mint)
WaRaW- Participante
- Mensajes : 27
Fecha de inscripción : 18/04/2010
Temas similares
» Que les Parece Algunos Ejemplos en ASM...
» Compilador Basic libre para PIC: GCBASIC
» por favor una ayuda con leguaje asembler
» Ejemplo de librería lcd_sdcc_sgr.h
» Ejemplo: led parpadeante por interrupciones en BoostBasic.
» Compilador Basic libre para PIC: GCBASIC
» por favor una ayuda con leguaje asembler
» Ejemplo de librería lcd_sdcc_sgr.h
» Ejemplo: led parpadeante por interrupciones en BoostBasic.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.