1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Serielle Schnittstelle

  • ssst
  • 20. Oktober 2007 um 15:59
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • ssst
    Punkte
    40
    Beiträge
    6
    • 20. Oktober 2007 um 15:59
    • #1

    Hallo, meine serielle Schnittstelle wird mit den Parametern (2400Baud, 7Datenbits, 2Stoppbits und ungerader Parität) programmiert

    Wenn ich jetzt z.B. 3Fh (0011.1111) verschicken will, wie geht das mit nur 7 Datenbits? Wenn es 8 Datenbits wären, dann würde meine Lösung s aussehen:

    1Startbit(negative flanke, wegen negativer Logik), die 8 Datenbits, 2Stoppbits, 1 positives Paritätsbit( da alles ja ungerade werden soll) . fertig!

    Wie kann ich mir das aber mit 7 Datenbits vorstllen? da bleibt ja imemr 1 übrig???????

    Bitte helft mir, ich bin total verweifelt!

  • Kampi
    Punkte
    7.828
    Beiträge
    1.468
    • 20. Oktober 2007 um 22:22
    • #2

    dann muszt du eben mit einem buffer arbeiten. nehmen wir an du willst bytes verschicken:
    du verschickst die ersten 7 bit, speicherst sie in einen buffer, schickst beim zweiten mal das verbleibende bit (vom ersten byte) + 6 bit des 2ten bytes. beim empfaenger shiftest du das zuvor empfangene im buffer rueber, maskierst das noch verbleibende bit (das du soeben empfangen hast) aus und veroderst mit den 7 bits im buffer. fertig ist dein byte. die neu empfangenen bits kommen wieder in den buffer uswusf. du muszt halt darauf achten dass du beim ersten mal um 1 shiften muszt, beim 2ten mal um 2 und so weiter.

  • ssst
    Punkte
    40
    Beiträge
    6
    • 20. Oktober 2007 um 23:21
    • #3

    Boar, komplizierter gehts wohl nicht^^
    aber danke, ich hatte gehofft es geht einfacher, weil man vllt erst die untersten bits einliest und dann die obersten. Aber da bei den obersten bits eben immer eine 0 steht an 8. Stelle, würde man das ganze trotzdem als die Abgeschickte Zahl sehen. Weist du was ich meine?

    0111.1111 = 111.1111 ?

    Aber auch danke für deine Hilfe, werds versuchen auch so zu lösen!

  • duracell
    Punkte
    220
    Beiträge
    40
    • 23. Oktober 2007 um 01:16
    • #4

    Üblicherweise verwendest du für character-oriented transmission immer 8-bit für die länge der daten, eben um 1 byte auf einmal versenden zu können. die idee mit dem buffer ist zwar möglich, aber wie du selbst sagst, ziemlich aufwendig. andere längen (!=8) werden für bit-oriented transmission verwendet. warum setzt deinen data frame nicht einfach auf 8-bit für daten?

  • ssst
    Punkte
    40
    Beiträge
    6
    • 23. Oktober 2007 um 23:29
    • #5

    war ne Klausuraufgabe von meinem Freund ;)

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum