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: |