Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > Hallo Forum > > > > > > > > Würde gerne über die serielle Schnittstelle ein 8-Datenbit Protokol einlesen bei welchem ein logisch=1 > > > > des Parity-Bit jeweils das "Startbyte" signalisiert. Gefolgt von einer variablen Anzahl von "Datenbytes" > > > > signalisiert mit Parity Bit=>logisch=0. (Sonst ist alles "normal", Startbit=>logisch=0, Stopbit=>logisch=1) > > > > Sprich ich möchte das Parity Bit nur lesen um bestimmen zu können wann ich ein "Startbyte" rein- > > > > kriege und wann ein "Datenbyte", sonst nichts. > > > > > > > > Bin über folgende Zeile von "PeterS" zu einem anderen Thema im Forum gestolpert die mir da Hoffnung > > > > machen aber da jetzt in den Registern des Prozessors rumzuspielen schaffe ich (wenn überhaupt) nur > > > > mit Hilfe (mein letzter Assemblercode war am Z-80 :-))) ) > > > > > > > > Zitat PeterS > > > > >>....Du kannst aber über DirAcc_Write() das UCSRB Register schreiben, und dort den 9-Bit > > > > >>Mode setzen. Für den Fall wo das 9. Bit immer Null ist, wie Du es wahrscheinlich brauchst, > > > > >>sollte das gehen.... > > > > > > > > Meine Fragen sind also: > > > > - Sieht irgendjemand eine Möglichkeit das hinzukriegen bzw hat es schon jemand hingekriegt? > > > > - Kennt sich jemand auf Assembler Ebene bzw. UART-Ebene so gut aus mir hier weiterzuhelfen? > > > > - Ist es überhaupt möglich mit dieser Hardware? > > > > > > > > Vielen Dank auf jeden Fall für eure Zeit und Hilfe > > > > Peter > > > > > > Sorry, aber der Ringbuffer ist auf 8-Bit ausgelegt, so daß wenn Daten im Interrupt > > > hereinkommen, auch nur die acht Bits Platz haben. > > > > > > Gruss Peter > > > > Vielen Dank für deine Antwort Peter! Dann wird das über die serielle Schnittstelle also nichts. > > > > Dann muß ich das wohl anders lösen. Nur mal so ein erster spontaner Gedanke: > > Was hältst du davon einen digitalen Input zu verwenden und selbst zu maskieren? > > Sind die Dinger schnell genug für 4800 baud? > > Stelle mir das so vor bei jedem empfangenen Startbit einen Interrupt auszulösen der die Synchronisierung > > sicherstellt indem Er das Byte zu Ende liest, in einen Buffer schreibt und wieder in meine > > Endlosschleife zurückspringt. ... und beim nächsen Startbit das selbe Spiel. > > Hab ich hier einen Denkfehler oder könnte das so gehen? > > Falls Du alle Bits per Hand zusammenbauen willst, dann lass es lieber sein, selbst in reinem > Assembler hast Du so sehr wenig Chancen die erforderliche Genauigkeit hinzubekommen. > Du mußt auf alle Fälle den USART benutzen. > > Die einzige Chance die ich sehe, ist die Schnittstelle auf 9-Bit umzustellen, und dann > per Hand zu pollen. Außer den 8-Bit kann man mit DirAcc_Read() das 9. Bit aus dem > Register lesen. Es bleibt dann in der Schleife wenig Zeit was anderes zu machen. > > Gruss Peter > > > > > Schöne Grüße > > (auch) Peter > >