;-------------------------------------------------------------------------- ; Title : Assembler Grundgerüst für myAVR-Board ;-------------------------------------------------------------------------- ; Funktion : ... ; Schaltung : ... ;-------------------------------------------------------------------------- ; Prozessor : ATmega8 ; Takt : 3,6864 MHz ; Sprache : Assembler ; Datum : ... ; Version : ... ; Autor : ... ;-------------------------------------------------------------------------- .include "AVR.H" .equ temp, 0x10 .equ temp2, 0x11 .equ XL, 0x1a .equ XH, 0x1b .equ YL, 0x1c .equ YH, 0x1d .equ ZL, 0x1e .equ ZH, 0x1f ;--------------------------------------------------------------------------- ; Reset and Interrupt vector Beschreibung begin: rjmp main ;POWER ON RESET reti ;Int0-Interrupt reti ;Int1-Interrupt reti ;TC2 Compare Match reti ;TC2 Overflow rjmp onTC1 ;TC1 Capture reti ;TC1 Compare Match A reti ;TC1 Compare Match B reti ;TC1 Overflow reti ;TC0 Overflow reti ;SPI, STC Serial Transfer Complete reti ;UART Rx Complete reti ;UART Data Register Empty reti ;UART Tx complete reti ;ADC Conversion Complete reti ;EEPROM Ready reti ;Analog Comparator reti ;TWI (I²C) Serial Interface reti ;Store Program Memory Redy ;--------------------------------------------------------------------------- ; Start, Power ON, Reset main: ldi r16, lo8(RAMEND) out SPL, r16 ldi r16, hi8(RAMEND) out SPH, r16 cli rcall LCD_init rcall LCD_clear rcall Sensor rcall begruessung rcall timer mainloop: clr XL clr XH sei loop: tst XL brne m00 tst XH brne m00 rjmp loop ;--------------------------------------------------------------------------- m00: cli mov temp,XL mov temp2,XH rcall ausgabe clr XL clr XH sei rjmp loop ;--------------------------------------------------------------------------- ausgabe: rcall LCD_line2 rcall LCD_data mov temp,temp2 rcall LCD_data ret ;--------------------------------------------------------------------------- begruessung: push r16 rcall LCD_line1 rcall wait rcall LCD_home ldi r16,'E' rcall LCD_data ldi r16,'R' rcall LCD_data ldi r16,'K' rcall LCD_data ldi r16,'A' rcall LCD_data ldi r16,'N' rcall LCD_data ldi r16,'N' rcall LCD_data ldi r16,'T' rcall LCD_data ldi r16,'E' rcall LCD_data ldi r16,' ' rcall LCD_data ldi r16,'F' rcall LCD_data ldi r16,'A' rcall LCD_data ldi r16,'R' rcall LCD_data ldi r16,'B' rcall LCD_data ldi r16,'E' rcall LCD_data ldi r16,':' rcall LCD_data rcall LCD_line2 pop r16 ret ;--------------------------------------------------------------------------- onTC1: ;push temp ;push temp2 in temp,ICR1L in temp2,ICR1H mov ZL,temp ;ZL mit temp(ICR1L) laden mov ZH,temp2 ;ZH mit temp2(ICR1H) laden sub temp,YL ;temp(ICR1L) minus YL(zuerst 0 dann letzter Messwert) sbc temp2,YH ;temp2(ICR1H) minus YH(zuerst 0 dann letzter Messwert) mov YL,ZL ;YL mit ZL(temp(ICR1L)) laden mov YH,ZH ;YH mit ZH(temp2(ICR1H)) laden mov XL,temp mov XH,temp2 ;pop temp ;pop temp2 reti ;--------------------------------------------------------------------------- .include "Farben.s" .include "Warteschleifen.s" .include "Display.s" .include "test2.s"