Hallo zusammen,
ich habe erst vorkurzem mit der Assembler Programmierung angefangen, habe auch schon einige kleinere Programme (Lauflicht etc.) in Assembler als Hausaufgabe für die Uni gemacht.
Ich wollte jetzt mein RN-Control (ATmega32) mit dem PC reden lassen, und zwar über USART. Ich habe diesen Code dazu aus einem Buch, ich
verstehe den Code, doch leider macht er nicht das was er soll.Ich nutze als Programm auf dem PC HTerm, und dies zeigt mir an das egal was ich dem uC senden lasse, immer ZWEIMAL 0x00 am PC ankommt. Ich finde den Fehler leider nicht wirklich, und wäre froh über ein wenig Hilfe.

Schonmal im voraus danke für eure Mühe.

NemesisoD

Code:
		.INCLUDE "m32def.inc"
		
		.EQU F_CPU = 16000000
		
		.EQU BAUD = 9600

		.CSEG
		.ORG 0x00
		rjmp Reset						;	Sprung nach dem Reset
		.ORG 0x029
Reset:	
		;Initialisiere den Stack
		;-----------------------
		ldi r16,LOW(RAMEND)	
		out SPL,r16
		ldi	r17,HIGH(RAMEND)
		out SPH,r17
		;-----------------------
		
		ldi r17,0xFF
		out DDRC,r17

		ldi r17,0xFE
		out PORTC,r17

		;Initialisiere den USART
		;-----------------------
		ldi r16,LOW(F_CPU/(16*BAUD)-1)	;	Berechnung des Teilers
		out UBRRL,r16
		ldi r17,HIGH(F_CPU/(16*BAUD)-1)	;	Berechnung des Teilers
		andi r16,0b01111111				;	URSEL = 0
		out UBRRH,r16
		sbi UCSRB,RXEN					;	Empfänger aktivieren
		sbi UCSRB,TXEN					;	Sender aktivieren
		ldi r16,(1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0); URSEL=1
		out UCSRC,r16					;	async, ohne Parität. 1 Stopbit, 8 Datenbit
		in r17,UDR
		;-----------------------

		sbi UCSRB,RXCIE
		sei
		ldi r18,'>'
		rcall send

Main:
		rjmp Main

send:
		sbis UCSRA,UDRE
		rjmp send
		out UDR,r18
		ret