-
        

Ergebnis 1 bis 3 von 3

Thema: verzweiflung mit UART

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380

    verzweiflung mit UART

    Anzeige

    ich glaub meine controller verarschen mich oder ich seh den wald vor lauter bäumen nicht

    Code:
    	DDRD |= (1<<TRANSMITTER) | (1<<TRIGGER_PIN);
    	UBRRH = 0;   //> ...
    	UBRRL = 10;  //> 1/10 MBaud @ 16Mhz
    	UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); 
     	UCSRC = (1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1); //> 8N2
    	while(1){
    		PORTD |= (1<<PD4);
    		while(!(UCSRA & (1<<UDRE)));
    		UDR = R_OPERATING;
    		while(!(UCSRA & (1<<TXC)));
    		PORTD &= ~(1<<PD4);
    	}
    der code wird identisch auf einem M32 und einem M128 aufgespielt (M128 == Embedit128Modul) der M32 braucht 30 mal länger als der M128 um das byte über die UART zu schieben (mit oszi gemessen) was mach ich falsch, hab ich was vergessen oder pübersehen ? bitte helft mir

    PS: die Frequenz selber konnt ich nicht am Quarz überprüfen, aber die pausezeiten zwischen 2 bytes sind identisch mit rund 250nS (entspricht einer vergleichsoperation, wie im while)

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Erster Blick:
    Der M32 ignoriert die Anzahl Stop-Bits, wie ist das auf dem M128 ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    Der M32 ignoriert die Anzahl Stop-Bits, wie ist das auf dem M128 ?
    versteh ich nicht die aussage ...

    problem gefunden ... beim M32 fehlt das URSEL Bit (Bit7) statt in UCSRC zu schreiben hab ich in UBBRH geschrieben ... hat SEHR lange gebraucht bis es mir aufgefallen war, irgendwie hatte beim M32 in der initialisierung gehfehlt und dnan hab ich fälschlicherweise aus dem M128 datenblatt abgelesen dass ich es 0 setzen soll ... schon iwie bekloppt solche kleinigkeiten .. der tag ist gerettet aber es funktioniert dennoch nicht so ganz wie ich will aber das liegt am rest des aufbau vermutlich ^^

Berechtigungen

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