-         
Ergebnis 1 bis 10 von 10

Thema: RS232

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Beiträge
    184

    RS232

    Anzeige

    Hi,
    ich hab versucht mit Hilfe der RS232 Schnittstelle mir Zahlen von meinem Mega32 auf den Rechner zu schicken.

    Verwendet wurde:
    Mega32
    HyperTerminal
    Verbindungskabel an COM1 (von Robotik Hardware)
    Programmierung wie im ISM empfolen.

    Hat jemand erfahrung oder Beispiel Code?
    Ich kann auch meinen verwendeten Code hier einfügen, wenn mir einer sagt wie man das mit dem Fensterchen hingriegt.[/code]

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Beiträge
    184
    Hi,

    hab mitlerweile "GCC (Tastatur-Echo)" ausprobiert. geht auch nicht.

    Einstellung Hyperterminal:

    com1
    Bits pro Sekunde 9600
    Datenbits 8
    Parität keine
    Stoppbits 1
    Flusssteuerung Hardware

    Kabelverbindung müsste stimmen ca. 100mal überprüft

    kennt jemand noch Fehlerquellen?

    freue mich über alles was mir weiterhelfen könnte.

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Flußsteuerung: none

    probier' mal
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    26.08.2006
    Beiträge
    84
    Nurn Schuß ins Blaue:
    probier mal ohne Flußsteuerung (im Hyperterminal auf "keine").

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    56
    Beiträge
    534
    so gehts mit dem Debuggen:

    Code:
    //-------------------------------------------------------
    int uart_putchar(char c)
    {
      if (c == '\n')
        uart_putchar('\r');
      loop_until_bit_is_set(UCSRA, UDRE);
      
      UDR = c;
      
      return 0;
    }
    
    
    int main(void)
    {
    	fdevopen(uart_putchar, NULL, 0); // 4 debugging -> use printf :-)
    
    	UCSRA  = 0x00; // Control und Status Register
    	UCSRB |= (1 << TXEN) // TXEN=TX an
    	UCSRC |= (1 << USBS) | (3 << UCSZ0);  // asyncron 8N1->Handbuch
    	UBRRH  = 0;
    	UBRRL  = 51; // 103 für 9600 || 51 für 19200 || 25 für 38400 || 16 für 57,6k || 12 für 76,8 || 8 für 115,2 - alles bezogen auf 16 MHz
    
    
    	// und dann der Test 
    
    	printf("hallo pc");
    
    	// oder so:
    
    	UDR = 'x';
    
    	return(0);
    }
    Das müßte so tun
    Ich kann mir keine Signatur leisten - bin selbständig!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Beiträge
    184
    Hi,
    mit Flusssteuerung "keine" geht es auch nicht

    Code:
    #include <avr/io.h> 
    
    
    #define F_CPU 16000000 
     
    #define USART_BAUD_RATE 	9600 
    #define USART_BAUD_SELECT 	(F_CPU/(USART_BAUD_RATE*16L)-1) 
    
    //-----------------------------------------------------
    int main(void)
    {
    	char bZeichen;
    	
    	UCSRB = (1 << RXEN) | (1 << TXEN); 
    	UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0); 
    	UBRRL = (unsigned char) USART_BAUD_SELECT; 
    	
    	while (1) 
    	{ 
    		while ( !(UCSRA & (1 << RXC)) ) 
    		{;}
    		bZeichen = UDR; 
    		
    		while (!(UCSRA & (1 << UDRE)))  
    		{;} 
    		UDR = bZeichen; 
    	}
    	return 0;
    }
    was mach ich falsch?

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Jetzt gibt's noch zwei Dinge:
    Den Rs232-Stecker am Board umdrehen (Rx/TX vertauschen)
    Oder es is was mit den Fuses ( -> externer quartz ?)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Beiträge
    184
    DDDDDat geeeehhht!!!!!!!!!!

    Erst einmal danke ich allen die mir Weiterhelfen wollten/konnten.

    Es muss wohl eine Verbindung aus Flusssteuerung "keine" und RX/TX verdreht gewesen sein. (hab alle möglichen varianten zig mal ausprobiert.)

    Flusssteuerung muss (bei mir zumindest) "keine" sein.

    Danke zusammen.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Nur mal so nachgefragt...

    Machst du Pegelanpassung RS232 <-> UART? Falls nicht...
    Disclaimer: none. Sue me.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Beiträge
    184
    Hi,
    Pegelanpassung kein Problem. Max232


    Hab da mal ne andere Frage.
    Wenn ich Funktionen aus einem Projekt in einem anderen nutzen möchte wie mach ich das mit AVR Studio am einfachsten.
    Mit Add excisting File erscheint zwar das SourceFile ist aber Durchgestrichen, auch nach erneutem Debuggen.

    Was mach ich falsch bzw gibt es eine bessere Lösung?

Berechtigungen

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