; ; ******************************************** ; * [Hier kommt der Projekttitel hin] * ; * [Mehr Informationen ueber die Version] * ; * (C)20xx by [Copyright Information hier] * ; ******************************************** ; ; Headerdatei fuer den AVR-Typ .NOLIST .INCLUDE "tn13def.inc" ; Header fuer den ATTINY13 .LIST ; ; ============================================ ; H A R D W A R E I N F O R M A T I O N E N ; ============================================ ; ; [Hier alles ueber die Hardware einfuegen] ; ; ============================================ ; P O R T S U N D P I N S ; ============================================ ; ; [Namen fuer die Hardware Ports und Pins hier] ; Format: .EQU ControlportOut = PORTA ; .EQU ControlportIn = PINA ; .EQU LedOutputPin = PORTA2 ; ; ============================================ ; E I N S T E L L K O N S T A N T E N ; ============================================ ; ; [Alle Konstanten, die vom Anwender sinnvoll ; geaendert werden koennen, sollten hierher] ; Format: .EQU const = $ABCD ; ; ============================================ ; A B G E L E I T E T E K O N S T A N T E N ; ============================================ ; ; [Alle Konstanten, die vom Anwender nicht ; geaendert werden sollten oder die aus anderen ; Konstanten berechnet werden, sollten hierher] ; Format: .EQU const = $ABCD ; ; ============================================ ; R E G I S T E R - D E F I N I T I O N E N ; ============================================ ; ; [Alle Registerbenennungen und eine kurze ; Charakterisierung ihres Zweckes sollten hier ; definiert werden] ; Format: .DEF rmp = R16 .DEF rmp = R16 ; Vielzweckregister ausserhalb Interrupt ; ; ============================================ ; S R A M - A D R E S S E N ; ============================================ ; .DSEG .ORG SRAM_START ; Format: Label: .BYTE N ; Reserviere N Bytes ab Label: ; ; ============================================ ; R E S E T - U N D I N T - V E K T O R E N ; ============================================ ; .CSEG .ORG $0000 rjmp Main ; Reset Vektor reti ; Int vector 1 reti ; Int vector 2 reti ; Int vector 3 reti ; Int vector 4 reti ; Int vector 5 reti ; Int vector 6 reti ; Int vector 7 reti ; Int vector 8 reti ; Int vector 9 ; [usw. bis Anzahl der Vektoren des AVR-Typs erreicht] ; ; [Anmerkung: Bei AVR mit sehr grossem Flash sind ; pro Vektor zwei Worte erforderlich! Also JMP ; statt RJMP und RETI/NOP statt nur RETI!] ; ; ============================================ ; I N T E R R U P T - S E R V I C E ; ============================================ ; ; [Hier alle Interrupt-Service-Routinen platzieren] ; ; ============================================ ; H A U P T P R O G R A M M I N I T ; ============================================ ; Main: ; Init Stapel ldi rmp, LOW(RAMEND) ; Init LSB Stapelzeiger out SPL,rmp ; [Bei mehr als 256 Byte SRAM auch HIGH(RAMEND) in ; den MSB des Stapelzeigers, SPH, schreiben] ; Init Port B ldi rmp,0 ; Richtung des Port B out DDRB,rmp ; [Alle anderen Inittierungen hier (Register, SRAM, ; Timer, ADC, USART] ldi rmp,1<