Hallo,
ich bins mal wieder :)
Ich hab heute Abend bisschen mit den Tutorials weiter gemacht und auf
Breadboard die Schaltung aus dem UART Tutorial aufgebaut. Den ersten
Teil mit dem Empfangen von "Test" ging ja super aber der 2te Teil bei
dem ich man an PORT D eine LED aus und an schalten kann komm ich einfach
nicht mehr weiter.
1 | .include "m8def.inc"
|
2 |
|
3 | .def temp = r16
|
4 | .def zeichen = r17
|
5 |
|
6 | .equ F_CPU = 4000000
|
7 | .equ BAUD = 9600
|
8 |
|
9 | .equ UBRR_VAL = ((F_CPU+BAUD*8)/(BAUD*16)-1)
|
10 | .equ BAUD_REAL = (F_CPU/(16*(UBRR_VAL+1)))
|
11 | .equ BAUD_ERROR = ((BAUD_REAL*1000)/BAUD-1000)
|
12 |
|
13 | .if ((BAUD_ERROR>10) || (BAUD_ERROR<-10))
|
14 | . error "Systematischer Fehler der Baudrate grösser 1 Prozent und damit zu hoch!"
|
15 | .endif
|
16 |
|
17 | ; Steckpointer
|
18 | ldi temp, LOW(RAMEND)
|
19 | out SPL, temp
|
20 | ldi temp, HIGH(RAMEND)
|
21 | out SPH, temp
|
22 |
|
23 | ; PORT D = Ausgang
|
24 | ldi temp, 0xFF
|
25 | out DDRD, temp
|
26 |
|
27 | ; Baudrate
|
28 | ldi temp, HIGH(UBRR_VAL)
|
29 | out UBRRH, temp
|
30 | ldi temp, LOW(UBRR_VAL)
|
31 | out UBRRL, temp
|
32 |
|
33 | ; Frame-Format 8-Bit
|
34 | ldi temp, (1<<URSEL)|(3<<UCSZ0)
|
35 | out UCSRC, temp
|
36 |
|
37 | sbi UCSRB, RXEN
|
38 |
|
39 | loop:
|
40 | sbis UCSRA, RXC
|
41 | rjmp loop
|
42 | in temp, UDR
|
43 | out PORTD, temp
|
44 | rjmp loop
|
Ich denke der Code an sich stimmt... aber ich hab keine Ahnung wie ich
mit Hyperterminal an den ATmega8 senden kann? und was ich überhaupt
senden muss damit sich da was tut :(
Ich hab die LED an PD2 mit 10k Widerstand gegen 5V geschaltet die
leuchtet nun auch schön nur aus bekomm ich sie nicht :(
Ich hoffe ihr könnt mir da bisschen weiter helfen.
MFG Daniel L.