Ich habe hier mal für meinen ATmega168 was geschrieben
er soll eig nur warte mit einer Baudrate von 2400 1 stop bit und in 8ter frame an meine rechner senden. Wenn man simuliert geht alle nur aufen chip will es nicht funktionieren.
Code:.include "m168def.inc" .def temp = r16 ; Register für kleinere Arbeiten .def zeichen = r17 ; in diesem Register wird das Zeichen an die ; Ausgabefunktion übergeben .equ UBRR_VAL = 207 ; Stackpointer initialisieren ldi temp,HIGH(RAMEND) out SPH,temp ldi temp,LOW(RAMEND) out SPL,temp sbi PORTD, PD6 sbi DDRD,PD6 ; Baudrate einstellen ldi temp, HIGH(UBRR_VAL) sts UBRR0H, temp ldi temp, LOW(UBRR_VAL) sts UBRR0L, temp ; Frame-Format: 8 Bit ldi temp, (3<<UCSZ00) sts UCSR0C, temp ldi temp, 0x08 sts UCSR0B,temp ; TX aktivieren loop: ldi zeichen, 'T' rcall serout ; Unterprogramm aufrufen ldi zeichen, 'e' rcall serout ; Unterprogramm aufrufen ldi zeichen, 's' rcall serout ; ... ldi zeichen, 't' rcall serout ldi zeichen, '!' rcall serout ldi zeichen, 10 rcall serout ldi zeichen, 13 rcall serout rjmp loop serout: sbi PORTB,PB0 sbi DDRB, PB0 ldi temp,UCSR0A sbrs temp,6 ; Warten bis UDR für das nächste ; Byte bereit ist rjmp serout sts UDR0, zeichen ret ; zurück zum Hauptprogramm
Ps: Der prozessor ist ein einem Asuro drin der mit dem Eval board aufgerüstet wurde.
MFG ALBI







 
			
			 
					
					
					
						 Zitieren
Zitieren /
/


Lesezeichen