Für dieses Forum muß Javascript im Browser aktiviert werden!
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> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Holger, > > > Kann leider nicht sagen wie genau sich einzelne Empfänger > > verhalten. Vermute das die Kanäle Zeitversetzt ausgegeben > > werden, der Impuls so ab 2,5 Volt bis UB sowie ca. 1,5ms > > Länge liegen werden. > > Ich werde das im Sommer einmal mit ein paar Empfängern testen. > Soviel ich weiß, liegt die Impulsdauer bei 0,5 bis 2,5ms. Dieser > wird normal ca. alle 20ms gesendet. Das würde dafür sprechen, > daß die Impulse an den Kanälen Zeitversetzt ausgegeben werden. > Es kannaber auch sein, daß sich hier PPM- und PCM-Empfänger verschieden > verhalten. > > > Habe mir überlegt am besten wäre schon eine Interruptroutine: > > wenn die erste Flanke erfasst wurde, wird eine Zählschleife > > gestartet die läuft bis die fallende Falnke festgestellt > > wurde und aus dem Wert wird ein z.B.: 8 Bit Wert gebildet > > und an die aufrufende Routine zurückgeliefert. > > So werden die vollen 8 Bit ausgeschöpft, egal wie lang der > > Impuls war ( 1-4ms). Das müsste eigentlich gehen, hoffe ich. > > Das würde gehen. Man kann die Interruptsensiblen Ports so konfigurieren, > daß sie auf beide Flanken reagieren. > Dazu könnte man einen Timer (z.B. T3) hochauflösend laufen lassen. > Man würde dann den Zählerstand bei jeweils beiden Flanken erfassen > und voneinaner subtrahieren. > Die Werte sollte man im internen RAM zwischenspeichern. Hier gibt es zwei > Bereiche in denen noch Platz wäre. (z.B. der bitadressierbare Bereich) > > Allerdings könnte man so nur max. 4 Känäle erfassen. > Mit ein wenig Hardware, mit der man dir Eingänge multiplext, gingen auch mehr. > > > Die HW-Verknüpfung mit der Int-Leitung sagt mir nicht so zu. > > > Diese Lösung wäre aber nicht wild. > Man würde alle Eingänge, z.B. P1L.0 - .7, oder-verküpfen und zu einem > Interruptsensiblen Port, z.B. P1H.0, führen. > Die Interruptroutine muß dann nur herausfinden, an welchem Port von P1L > die Flanke auftritt. Das wäre auch nicht kompliziert. > Als Hardware bräuchte man nur ein OR-Gatter mit 8 Eingängen und an den Ports > von P1L Pull-Widerstände. > > > Noch ne andere Frage: > > Gibt es eine Möglichkeit ASM-Code ohne Hardware zu testen. > > Sowas wie der Simulator der CC1 in etwa. > > Für den C164 soviel ich weiß nicht. > Zumindest nicht in Tasking. > > Bei der CC2 muß man leider auch alles, was hardwarenah programmiert ist, > direkt in der CC2 testen. (Ports, Busse etc.) > Jedoch ist dies nicht weiter schlimm. ASM-Routinen sind relativ schnell > geladen. Das C2-Programm dazu muß beim Testen schließlich nicht immer > neu geladen werden, wenn man dafür sorgt, daß die Einsprungadresse(n) > während des Testens gleich bleibt/bleiben. > > > Damit lassen sich zwar auch nicht alle Möglichkeiten > > ausschließen bzw. erschlagen aber man kann bei dem > > Basiccode schon mal sehen ob es überhaupt rund läuft. > > Kann ich mir die CC2 durch Assembler zerschießen oder das > > OS aushebel. Bei der CC1 geht das z.B.: durch RTI anstatt > > RTS. Da kommt die CC1 angeblich ins Schleudern, bis zum > > Reset. > > Das OS zerschießen kann man mit ASM-Routinen nicht. > (Dazu müsste man schon schreibend oder löschend auf Segment 0 zugreifen. > Beides geht aber nicht so ohne weiteres.) > Allerdings kann man schon die VM zum Aussetzen bringen. > Anders als bei der CC1 wird dies aber normalerweise abgefangen > und dargestellt. (Bis OSOPT_V2 als Fehlermeldung am internen LCD, > ab OSOPT V3.0 als Blinkcode an der Host-LED.) > > MfG André H.