Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: parameter des RS-232 zu ändern, baudrate, parität... Kategorie: Programmierung (von Matthias Koch - 9.10.2001 21:05)
Als Antwort auf Re: parameter des RS-232 zu ändern, baudrate, parität... von Martin Binder - 9.10.2001 14:05

> > Hello,
> >
> > Noch eine andere Frage: ist es möglich den Parität des RS-232 zu ändern also die ganzen Parameter des RS-232?
> >
> > Besten Dank für Ihre Hilfe.
>
> Sorry,
> aber das scheint nicht leicht machbar zu sein.
> Einzig eine undokumentierte Möglichkeit die Stopbits zu ändern findest du unter
> "Threads & Funktionen" auf dieser Site. Ist von Mafoe, sollte also  klappen.
>
> Martin.

Nun denn!
Es ist sehr leicht möglich einige grundsätzliche Parameteränderungen der hwcom vor
zunehmen. Ausgehend von der Inline-funktion " set_S0CON(int s0con)" die Mafö eben hier
veröffentlichte, hat man die Möglichkeit,  das SFR-Register S0CON, das die grundlegenden
Funktionen der asyncr. Schnittstelle regelt, zu verändern.
/****************************************************************************************************/
inline function set_S0CON(int s0con)
/****************************************************************************************************/
{
 inline vmcodes.VM_STORE_ABSOLUTE_INT; //  vmcode zum schreiben auf eine Adr.
 inline 0xFFB0;                                              // Adresse
}
                                                                    // Quelle: diese Site, Mafoe

Nun zum SFR S0CON und die Bedeutung der interessanten Bits und bitte keine anderen
Bits verändern.


SOM Mode Control (Bits 0..2)
000=SyncronBetrieb 8 Datenbits
001=Asyncr. Betrieb 8 Datenbit
010=reserve
011=Asyncr.Betrieb 7 Datenbit und Parität
100=Asyncr.Betrieb 9 Datenbit
101=Asyncr.Betrieb 8 Datenbit + WakeUp für z.B Adressenübertragung
110=reserve
111=Asyncr.Betrieb 8 Datenbits und Parität

SOSTP Number of Stop Bits (Bit 3)
0=ein Stop-Bit
1=zwei Stop-Bits

...
einige weiter
Steuerbits...
...
S0ODD Parity Selektion (Bit 12)
0=parität even
1=parität odd
...
...
S0R Baudrate Generator Run Bit (Bit15)
0= Stop Baudrategenerator
1=Run Baudrategenerator

mit der Kenntniss dieser Bits kann man nun einen Intergerwert bit-biegen, der zum
Beispiel: 8 Datenbits, Parität=even, Stopbit=1, erzeugt.

0x8017    => 8E1;
 oder
8 Datenbits, keine Parität, 1 Stopbit
0x8011    => 8N1;

aber Achtung zum Beispiel erzeugt
0x0011=> 8N1, aber der Baudrategenerator ist angehalten, keine serielle Ã?bertragung, wenn sie wollen
probieren sie das mal aus.

viel Erfolg
Matthias Koch




    Antwort schreiben


Antworten: