Hallo zusammen,

ich habe die Tatsache dass wir uns in der Schule in Informatik mit Assembler beschäftigen zum Anlass genommen, mir mal AVR-Assembler anzuschaun.
Ist ja nicht sonderlich schwer, nur würde es mich jetzt interessieren ob ich für neu angelegte Dateien nicht gleich eine Vorlage vom AVR-Studio laden lassen kann... ist immer so umständlich den ganzen Sims wieder abzutippen oder aus den anderen Dateien zu laden...

Genauer gesagt geht es dabei um folgendes:
Code:
;.include "m8def.inc"
;.include "m32def.inc"
 
.org 0x000
       rjmp Main
;.org INT0addr                 ; External Interrupt0 Vector Address
;		rjmp INT0_interrupt
;.org INT1addr                 ; External Interrupt1 Vector Address
;		rjmp INT1_interrupt
;.org OC2addr                  ; Output Compare2 Interrupt Vector Address
;		rjmp OC2_interrupt
;.org OVF2addr                 ; Overflow2 Interrupt Vector Address
;		rjmp OVF2_interrupt
;.org ICP1addr                 ; Input Capture1 Interrupt Vector Address
;		rjmp ICP1_interrupt
;.org OC1Aaddr                 ; Output Compare1A Interrupt Vector Address
;		rjmp OC1A_interrupt
;.org OC1Baddr                 ; Output Compare1B Interrupt Vector Address
;		rjmp OC1B_interrupt
;.org OVF1addr                 ; Overflow1 Interrupt Vector Address
;		rjmp OVF1_interrupt
;.org OVF0addr                 ; Overflow0 Interrupt Vector Address
;		rjmp OVF0_interrupt
;.org SPIaddr                  ; SPI Interrupt Vector Address
;		rjmp SPI_interrupt
;.org URXCaddr                 ; USART Receive Complete Interrupt Vector Address
;		rjmp URXC_interrupt
;.org UDREaddr                 ; USART Data Register Empty Interrupt Vector Address
;		rjmp UDRE_interrupt
;.org UTXCaddr                 ; USART Transmit Complete Interrupt Vector Address
;		rjmp UTXC_interrupt
;.org ADCCaddr                 ; ADC Interrupt Vector Address
;		rjmp ADCC_interrupt
;.org ERDYaddr                 ; EEPROM Interrupt Vector Address
;		rjmp ERDY_interrupt
;.org ACIaddr                  ; Analog Comparator Interrupt Vector Address
;		rjmp ACI_interrupt
;.org TWIaddr                  ; Irq. vector address for Two-Wire Interface
;		rjmp TWI_interrupt
;.org SPMaddr                  ; SPM complete Interrupt Vector Address
;		rjmp SPM_interrupt
;.org SPMRaddr                 ; SPM complete Interrupt Vector Address
;		rjmp SPMR_interrupt
 
.org INT_VECTORS_SIZE
Main:                        ; hier beginnt das Hauptprogramm
	.def tmp = R16
		ldi tmp, HIGH(RAMEND)            ; HIGH-Byte der obersten RAM-Adresse
		out SPH, tmp
		ldi tmp, LOW(RAMEND)             ; LOW-Byte der obersten RAM-Adresse
		out SPL, tmp
		clr tmp
Wer sich mit Assembler auskennt, dem fällt vlt. auf dass das ganze relativ modular geschrieben ist, also bloß die Kommentare für die benötigten Sprungbefehle raus und schon kann man den Interrupt verwenden...

vlt. drunter im Hauptprogramm dann noch kommentiert die Anweisungen zur Aktivierung der Interrupts oder so

LG Roland