1 | ; Prozessor : ATmega8
|
2 | ; Takt : 3,6864 MHz
|
3 | ; Sprache : Assembler
|
4 | ; Datum : 26.10.2011
|
5 | ; Version : 1.0
|
6 | ; Autor : PeterNoPlan
|
7 | ;-------------------------------------------------------------------------
|
8 | .include "m8def.inc"
|
9 | ;----------------------------------------------------------------------
|
10 | ;Reset and Interruptvectoren ;VNr. Beschreibung
|
11 | begin:
|
12 | rjmp main ; 1 POWER ON RESET
|
13 | reti ; 2 Int0-Interrupt
|
14 | reti ; 3 Int1-Interrupt
|
15 | reti ; 4 TC2 Compare Match
|
16 | reti ; 5 TC2 Overflow
|
17 | reti ; 6 TC1 Capture
|
18 | reti ; 7 TC1 Compare Match A
|
19 | reti ; 8 TC1 Compare Match B
|
20 | reti ; 9 TC1 Overflow
|
21 | reti ;10 TC0 Overflow
|
22 | reti ;11 SPI, STC Serial Transfer Complete
|
23 | reti ;12 UART Rx Complete
|
24 | reti ;13 UART Data Register Empty
|
25 | reti ;14 UART Tx Complete
|
26 | reti ;15 ADC Conversion Complete
|
27 | reti ;16 EEPROM Ready
|
28 | reti ;17 Analog Comperator
|
29 | reti ;18 TWI (I²C) Serial Interface
|
30 | reti ;19 Strore Program Memory Ready
|
31 | ;------------------------------------------------------------------------
|
32 | ;Start, Power ON, Reset
|
33 | main:
|
34 | ldi r16,high(RAMEND)
|
35 | out SPH,r16
|
36 | ldi r16,low(RAMEND) ;Stack Initialisierung
|
37 | out SPL,r16 ;Init Stackpointer
|
38 |
|
39 | sbi UCSRB,3 ;USR=UCSRB=0x0A TXEN=Bit3 TX aktivieren
|
40 | ldi r16,3686400/(9600*16)-1 ;Baudrate 9600 einstellen
|
41 | out UBRRL,r16
|
42 |
|
43 | ldi r16,0b00000000 ;PortC auf eingang
|
44 | out DDRC,r16
|
45 |
|
46 | rjmp mainloop
|
47 | ;----------------------------------------------------------------------
|
48 | mainloop:
|
49 | ldi r16,0b10000101 ;ADC an, CLK=8MHz/128
|
50 | out ADCSRA,r16
|
51 | sbi ADCSR,ADSC
|
52 | rcall messung1
|
53 | rjmp mainloop
|
54 | messung1:
|
55 | ldi r16,0b01000000
|
56 | out ADMUX,r16
|
57 | sbis ADCSR,ADIF ;Warten bis Wandlung beendet ist
|
58 | rjmp messung1
|
59 | in r17,ADCL ;Die unteren 8 Bit in r17 merken
|
60 | in r18,ADCH
|
61 | messung2:
|
62 | ldi r16,0b01000001
|
63 | out ADMUX,r16
|
64 | sbis ADCSR,ADIF ;Warten bis Wandlung beendet ist
|
65 | rjmp messung2
|
66 | in r19,ADCL ;Die unteren 8 Bit in r17 merken
|
67 | in r20,ADCH
|
68 | ;---------------------------------------------------------------------- Zum senden über die Serielle Schnittstelle
|
69 | testsendenbyte1:
|
70 | sbis UCSRA,UDRE
|
71 | rjmp testsendenbyte1
|
72 | out UDR,r17
|
73 | testsendenbyte2:
|
74 | sbis UCSRA,UDRE
|
75 | rjmp testsendenbyte2
|
76 | out UDR,r18
|
77 | testsendenbyte3:
|
78 | sbis UCSRA,UDRE
|
79 | rjmp testsendenbyte3
|
80 | out UDR,r19
|
81 | testsendenbyte4:
|
82 | sbis UCSRA,UDRE
|
83 | rjmp testsendenbyte4
|
84 | out UDR,r20
|
85 | rjmp mainloop
|