- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: 3 fach RS232 Umschalter mit PIC aufbauen?

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.10.2004
    Ort
    ferd. Waldmüllerg. 7/2
    Alter
    39
    Beiträge
    456
    Anzeige

    Powerstation Test
    Hm müsste es nicht gehen 3x Software RS232 und dann je nach Auswahl einfach das mapping der Ports zu ändern ?
    Würd auch gehen, mach bräuchte aber überhaupt keine 3 Software-RS232, es genügt 2x RS232. Einer Richtung PC, einer, der auf den ausgewählten Port horcht. Aber wieso einfach, wenn es auch konpliziert geht ?

    Nein, die Beste Lösung ist, wenn man jetzt von dem Mux absicht, das genu 0 Aufwand zu programmieren ist, den PIC einfach eines der drei Barcode-RS232 zu samplen und die eingelesenen Werte direkt auf den Port des PCs zu schreiben (halt, wie Maxigraf vorgeschlagen hat). Und wenn der PIC mit 20MHz hochgetaktet wird, ergibt sich eine Verzögerung von weniger als eine 1µs.
    Der Code würde dann ungefähr so aussehen:

    Code:
    #define _PCTX PORTA,1 ; input
    #define _PCRX PORTA,2 ; output
    #define _CODE1TX PORTB,1 ; input
    #define _CODE1RX PORTB,1 ; output
    
    [......]
    
    mux1:
    	btfss _CODE1TX
    	bcf _PCRX
    	btfsc _CODE1TX
    	bsf _PCRX
    	btfss _PCTX
    	bcf _CODE1RX
    	btfsc _PCTX
    	bcf CODE1TX
    	return
    Ist nicht effektiv, was den Programmspeicher angeht, aber es ist schnell und es erzeugt keine glitches bei den Ausgängen. Im schlimmsten fall dauert es, wenn man jetzt den "call mux1" des Hauptprogrammes nicht miteinberechnet 10 Cycles (mit dem return), das ergibt eine Verschiebung von 2 µs zwischen zwei abtastungen des Ports, d.h. alles < 400KBaud (100K Buffer für das Hauptprogramm) sollte keine Probleme bereiten.

    Ich hoff, ich hab mich net verrechnet
    lg
    Mobius

    €dit: fragt mich bitte net, wieso das zentriert ist, ich hab keinen blassen schimmer, es sollte eigentlich in einem Codeblock eingebettet sein -.-

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Zitat Zitat von Mobius
    Würd auch gehen, mach bräuchte aber überhaupt keine 3 Software-RS232, es genügt 2x RS232. Einer Richtung PC, einer, der auf den ausgewählten Port horcht. Aber wieso einfach, wenn es auch konpliziert geht ;)?
    Ich habe den Fragesteller so verstanden, daß eine RS232-Schnittstelle zu einer von 3 möglichen RS232-Schnittstellen 'durchgeschaltet' werden soll. Das bedeutet: 1 Ausgang und 1 Eingang für die eine SIO und 3 Ausgänge und 3 Eingänge für die anderen SIOs.
    Damit wird Deine Routine 3 mal erforderlich. Vor diesen 3 Routinen müssen zusätzliche Befehle stehen, mit denen verzweigt wird.
    Zwischendurch soll, so ich das richtig verstanden habe, ein Schalter für die Auswahl einer SIO abgefragt werden.
    Zitat Zitat von Mobius
    Ist nicht effektiv, was den Programmspeicher angeht, aber es ist schnell und es erzeugt keine glitches bei den Ausgängen. Im schlimmsten fall dauert es, wenn man jetzt den "call mux1" des Hauptprogrammes nicht miteinberechnet 10 Cycles (mit dem return), das ergibt eine Verschiebung von 2 µs zwischen zwei abtastungen des Ports, d.h. alles < 400KBaud (100K Buffer für das Hauptprogramm) sollte keine Probleme bereiten.
    Und, der PIC soll noch mehr 'Dinge' leisten; es kommen noch weitere Befehle hinzu. Der End-Zustand ist unbekannt.
    Wie groß wird dann die Verzögerung für die Weitergabe der seriellen Bits ?
    Da nicht ständig mit der gleichen Anzahl Befehle zu rechnen ist, wird die Verschiebung auch noch unterschiedlich sein.
    Es ist meiner Meinung nach nur über einen Change-Port-Interrupt lösbar, eine immer gleiche Verzögerung zu erreichen. In der ISR ergibt die Abfrage des 'Auslösers', Verzweigung und Übertragung des Zustands eine (fast) immer gleiche Anzahl Befehle und damit eine (fast) gleiche Verschiebung der seriellen Bits.
    Die Abfrage des Wahlschalters ist vollkommen zeit-unkritisch und kann in der Hauptprogramm-Schleife mit den restlichen 'Tätigkeiten' durchgeführt werden.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    29.06.2007
    Beiträge
    7
    ... mmhh, ich glaube ich nehme doch den 4052 um die Signale umzuschalten und steuer ihn mit dem PIC. Es sei denn jemand hat Lust mir das ohne 4052 zu programmieren. ich kanns jedenfalls nicht (noch nicht)

    Aber wie mache ich die Tastensteuerung?. Hab es schon mal mit Logikbausteinen gemacht (RS-FlipFlop & Oder) aber mit einem Pic noch nicht.
    Möchte, dass immer nur ein Scanner aktiviert ist, sobald ein Taster für einen anderen Scanner betätigt wird sollen die anderen deaktiviert werden.
    und ich brauche zwei ausgangs-pins für die beiden 4052.

    vielen dank für die vielen Antworten
    Marco

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen