- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: Assembler Anfänger mit USART Problem

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.11.2006
    Ort
    NRW
    Alter
    38
    Beiträge
    54

    Assembler Anfänger mit USART Problem

    Anzeige

    Powerstation Test
    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

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Kleiner Tip, schaue Dir mal das laden der Baudratenregister an.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    15.11.2006
    Ort
    NRW
    Alter
    38
    Beiträge
    54
    Gut, man sollte schon richtig abschreiben können.

    Wie peinlich

    THX

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests