Lauflicht mit Attiny13        

von Wolfgang Voß                  
Elektronik-Labor   Projekte   AVR 




Ich hatte noch ein paar Bauteile und wollte mir eine Krippenbeleuchtung bauen. Zu diesem Zweck habe ich einen Attiny13, ein paar Widerstände und LED's und 10 Wrapekontakte aus meiner Krustelkiste. Nun habe ich zwar keine Krippenbeleuchtung, aber ein Lauflicht mit 8 LED.



Wie aus der Schaltung zu sehen ist habe ich 4 Widerstände, 220 Ohm als Vorwiderstände für die LED verwendet, und 1 Widerstand mit einem Wert von 10 kOhm in der Resetschaltung verwendet. Damit der Attiny13 auch Inline programmiert werden kann, habe ich auf meinem Steckbrett noch 2x5 Wrapekontakte gesteckt. Programmiert habe die Schaltung mit einem USB Programmer für Atmel.

Verwendete Software:

Betriebssystem Ubuntu 11.10
Geany als Benutzeroberfläche
AVRA als Assembler
AVRDUDE zum programmieren des Controllers.

Kompileraufruf: avra -l "%e".lst --max_errors 1000 "%f"
Programmeraufruf: avrdude -P /dev/ttyUSB0 -p t13 -c usbasp -U flash:w:"%e".hex

„%e“= Programmname ohne Erweiterung
„%f“= Programmname mit Erweiterung




USB-Programmer


Download: 0113Lauflicht.zip

.nolist
; Einbinden der Attiny13 Lib (Pfad den eigenen Ansprüchen anpassen)
.include "/usr/share/avra/tn13def.inc"
.list

.def Delay1=r16
.def Delay2=r17
.def Delay3=r18
.def LED=r19 ; Led Register
.def PB4=r20 ; Port Register

.org 0x000 ; kommt ganz an den Anfang des Speichers
rjmp start ; Interruptvektoren überspringen
.nolist ; und zum Hauptprogramm
; rjmp EXT_INT0 ; IRQ0 Handler
reti
; rjmp EXT_INT1 ; IRQ1 Handler
reti
; rjmp TIM2_COMP
reti
; rjmp TIM2_OVF
reti
; rjmp TIM1_CAPT ; Timer1 Capture Handler
reti
; rjmp TIM1_COMPA ; Timer1 CompareA Handler
reti
; rjmp TIM1_COMPB ; Timer1 CompareB Handler
reti
; rjmp TIM1_OVF ; Timer1 Overflow Handler
reti
; rjmp TIM0_OVF ; Timer0 Overflow Handler
reti
; rjmp SPI_STC ; SPI Transfer Complete Handler
reti
; rjmp USART_RXC ; USART RX Complete Handler
reti
; rjmp USART_DRE ; UDR Empty Handler
reti
; rjmp USART_TXC ; USART TX Complete Handler
reti
; rjmp ADC ; ADC Conversion Complete Interrupthandler
reti
; rjmp EE_RDY ; EEPROM Ready Handler
reti
; rjmp ANA_COMP ; Analog Comparator Handler
reti
; rjmp TWSI ; Two-wire Serial Interface Handler
reti
; rjmp SPM_RDY ; Store Program Memory Ready Handler
.list

; hier beginnt das Hauptprogramm
.org 0x012 ; Starte nach den Interrupts
start: ldi r16,0b00011111 ; DatenrichtungPB0-PB4 Ausgang
out ddrb,r16

loop: ldi LED,0b00011110 ; LED 1
rcall Ausgabe
ldi LED,0b00000001 ; Led 2
rcall Ausgabe
ldi LED,0b00011101 ; Led 3
rcall Ausgabe
ldi LED,0b00000010 ; Led 4
rcall Ausgabe
ldi LED,0b00011011 ; Led 5
rcall Ausgabe
ldi LED,0b00000100 ; Led 6
rcall Ausgabe
ldi LED,0b00010111 ; Led 7
rcall Ausgabe
ldi LED,0b00001000 ; Led 8
rcall Ausgabe
rjmp loop ; und zurück in die Endlosschleife

; Warte eine kleine Weile

Pause: ldi Delay1,2
W0: ldi Delay2,100
W1: ldi Delay3,250
W2: dec Delay3
brne W2
dec Delay2
brne W1
dec Delay1
brne W0
ret

Ausgabe:out portb,LED ; Inhalt von LED auf Port B ausgeben
rjmp Pause ; und eine Weile warten


Siehe auch:
Lernpaket Mikrocontroller: http://www.elo-web.de/elektronik-lernpakete/mikrocontroller/lernpaket-mikrocontroller
Verwendung von AVRDUDE: AVRdude.html


Elektronik-Labor   Projekte   AVR