-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Bei serieller Übertragung wird aus zahlen über 127 eine 63

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51

    Bei serieller Übertragung wird aus zahlen über 127 eine 63

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,
    ich habe folgendes Problem.
    Wenn ich mit dem ATMega 16 Zahlen über 127 durch die serielle schnittstelle sende kommen auf der pc seite nur 63 an.

    Ich verwende WinAVR in einer aktuellen Version.
    Die Methoden zur Datenübertragung verarbeiten nur char Variablen, so dass ich vorher meine 8bit integer zu chars convertieren muss.Hier tritt das Problem noch nicht auf. Ascii Zeichen werden Problemlos übertragen.

    Die beiden Sende-Methoden:
    Code:
    void USART_transmit (unsigned char c) {
    	while (!(UCSRA & (1<<UDRE))) {} 
    	UDR = c;
    }
    
    void USART_transmit_string (unsigned char *string,unsigned char lenght) {
        while (!(UCSRA & (1<<UDRE))) {}
    	for(int i=0;i<lenght;i++)//while ( *string!=0x00)//while ( *string)
    		USART_transmit (*string++); //geht im string weiter und gibt zeichen für zeichen aus
    }
    kann mir jemand bei dem Problem helfen?
    MFG

    Bomb

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51
    Ich habe jetzt direkt in der UART:Transmit Methode eine 255 übertragen
    also ohne Parameterübergabe. Resultat ist, dass auch eine 63 auf dem pc
    erkannt wird. Eventuell liegt das Problem am C#
    Ist als ob er Daten die ausserhalb des 7-bit ascii bereiches einfach 63
    setzt.
    MFG

    Bomb

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Hi, check einmal die Einstellungen des Terminal: 8N1 is gefragt
    daß ASCII geht, ist logo, is ja alles UNTER 127
    mfg robert

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51
    Danke für die Antwort.
    8bit no Parity und 1 stop ist eingestellt beiderseits.
    Vielleicht isses nochn bug im framework 2.0b.
    Ich versuchs mal mit anderen Terminals. ComTerm hat ne hex Auswertung. vielleicht sieht man das was.
    MFG

    Bomb

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51
    so gewiss ist jetzt dasses nicth am mc und dessen programmierung ligt am pc kommt alles richtig an. d.h. meine funktionen in c# müssen fehlerhaft sein... *grummel*
    MFG

    Bomb

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Hi, der Fehler wäre zu massiv, als daß er ein Bug in irgendeiner Entwicklersaftware/library sein könnte. So leid es mir tut, da musst du was mülliges reingeschrieben oder unterlassen haben.
    viel Glück ! mfg robert

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51
    Das scheint am encoding zu liegen. Man kann für das SerialPort objekt im c# 2005 das Encoding und Decoding einstellen.
    wenn ich statt Ascii auf utf 8 stelle wird nicht 63 angezeigt sondern gar nix. Irgendwo hier musses haken.
    Ich würds gern gar nicth codiert oder decodiert haben. Nur ganz normal als Byte.

    Naja. Wenn ichs raushab dann melde ich mich nochmal.
    MFG

    Bomb

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51
    Hast du ne Ahnung wie man ds Encoding umgehen kann?
    Der haut immer das raus was nicht einem Encoding standard entspricht. bei Unicode z.b. geht die 128 und die 252 aber die 24 nicht.
    bei ascii gibts den oben geschilderten Fehler.

    Man das nervt vielleicht Das ist hoffendlich der letzte Fehler zu meinem Funktionierenden ModBus ....
    MFG

    Bomb

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    09.11.2004
    Ort
    Wernigerode
    Alter
    37
    Beiträge
    51
    Ich habs

    es lag an dieser Zeile. Bwziehungsweise an deren nicht VOrhandeinsein.

    sp.Encoding = System.Text.Encoding.GetEncoding("iso-8859-9");
    MFG

    Bomb

  10. #10
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Wieder mal: kaum macht man es richtig, geht's auch schon, is nich' zu fassen mfg

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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