Re: hwcom Parameter Kategorie: Programmierung (von Matthias Koch - 22.11.2001 20:36) | |
Als Antwort auf Re: hwcom Parameter von Norbert - 22.11.2001 10:54
| |
> > > Hallo, > > > ich komme mit den Parameteränderungen der hwcom nicht zurecht. > > > Wo trage ich die Funktion ein ? > > > Im Projektmodul ? > > > Und wo trage ich 0x8017 => für 8E1 ein ? > > > > > > Leider ist es mir noch ein Rätsel wie ich 7E1 > > > ermittel und einstellen kann. > > > > > > /****************************************************************************************************/ > > > inline function set_S0CON(int s0con) > > > /****************************************************************************************************/ > > Quelle: MAFOE > > > > hallo norbert, > > > > die inlinefunktion sollte in CControlLibsystem eingetragen werden, da wo alle inlinefunktionen > > definiert werden. > > Also den Ordner CControlLibsystem öffnen und die funktion definieren: (eben nachfolgendes eintippen) > > //----------------------- > > inline funktion set_S0CON(int s0con) // definiere funktion, die das Spezialregister S0CON mit dem > > // wert von s0con setzt > > //---------------------- > > { > > inline vmcodes.VM_STORE_ABSOLUTE_INT;// hole den InlineCode der einen vorzeichenlosen > > // Integerwert (16bit) auf die nachfolgende Adresse ablegt > > inline 0xFFB0; // das ist die Adresse auf die der übergabewert s0con abgelegt wird. Diese Adresse > > // zeigt auf das Register S0CON. Dieses Register steuert u.a. die Daten- > > // übertragung der hwcom. > > } > > eintippen beenden > > > > > > -----------------------wie kommt nun das Datum s0con in das Register S0CON. > > > > thread xyz > > { > > int s0con; definiere die Variable s0con als Integer > > ... > > ... > > ... > > > > s0con= 0x8013;// setze hwcom auf 7E1 > > set_S0CON(s0con);// voraussetzung für diesen Funktionsaufruf ist natürlich, das er > > // im ordner ..libsystems definiert wurde > > ... > > ... > > ... > > // oder ohne die Variable s0con > > ... > > set_S0CON(0x8017);// auf 8E1 > > set_S0CON(0x801F),//auf 8E2 > > ... > > ... > > ... > > } > > > > ------------------------zur Frage, wie kann man den Wert für s0con selber ermitteln > > > > das Spezialfunktionsregister S0CON umfasste 16 Bits. Diese Bits steuern die serielle Datenübertragung. > > In anderen Beiträgen wurden die wesentlichen Funktionen dieser Bits dargelegt. > > Ich bin gern bereit spezielle Anfragen bezüglich dieses Registers zu beantworten, aber alle möglichen > > Konstellationen kann ich nicht in diesem Forum darlegen. Wenn es meine Zeit erlaubt, werde ich einige > > Primitive für s0con demnächst veröffentlichen. > > > > mfg Matthias Koch > > > > Vielen Dank für deine Hilfe........ > nur leider habe ich kein Erfolg. > Die Voreinstellung 8N1 bleibt unverändert. > s0con=0x8013 // 7E1 > system.set_S0CON(s0con); > > andere Werte für s0con die ich probiert habe > führen bestenfalls zum Stillstand der hwcom. > Gru� Norbert Hallo Norbert, das du in der Lage bist , die serielle Schnittstelle zu stoppen ist doch schon ein gutes Zeichen. Ich gehe also davon aus, dass die "inline-function" richtig ist und auch der Funktionsaufruf und die Datenzuweisung. Kommen wir nun zum S0CON Register des C167 oder alias. Dieses Register ist 16 Bit lang. Ich beginne mit Bit 15 und ende mit Bit 0. Den Bit-Namen, der in Assembler benutzt wird lasse ich weg. Ich gehe nur auf die Bedeutung der Bits ein und deren Zu- Stände. BitNr. Bedeutung mögliche Zustände Ergebnis 15 Baudrate Generator Run =1 Generator läuft =0 Generator stoppt 14 Loop Back Mode =1 Loop Back // Connect TxD RxD =0 Normalbetrieb 13 BaudRateSelection =1 Takt um 1/3 reduziert =0 Normalbetrieb 12 ParitySelection =1 Parity=ODD =0 " = EVEN 11 _____________RESERVED____NOT USED______________________________________ 10 | |
Antwort schreiben Antworten: Re: hwcom Parameter (von Matthias Koch - 24.11.2001 12:10) Re: hwcom Parameter (von Matthias Koch - 24.11.2001 15:54) Re: hwcom Parameter (von Norbert - 24.11.2001 19:38) Re: hwcom Parameter (von Norbert - 24.11.2001 22:06) |