09.04.2007
Morgens
Jetzt möchte ich mal ausprobieren wie man Variablen zwischen zwei Cog’s hin und herschiebt. Sagen wir mal ich lade eine Variable im Hauptprogramm mit dem Wert 2 und lasse diesen auf der 7-Segment Anzeige darstellen. Dann starte ich einen weiteren Cog, übergebe ihm die Variable. Dieser addiert zur 2 eine 6 und heraus kommt 8. Diese 8 soll der zweite Cog an den ersten übergeben der den Wert wieder darstellen lässt.
Ja Scheiße nät !! Ist gar nicht so einfach. Die Zahl 2 an den zweiten Cog zu übergeben ist erstmal einfach. Mit COGNEW (addieren(zahl),@stack) übergibt man die 2. Aber selbst wenn die Addieren Routine einen Rückgabewert bereitstellt, wie soll dieser in der Hauptroutine ausgewertet werden. Das Ergebnis der Addition lässt sich über den zweiten Cog auf dem Display darstellen, nur nicht im ersten Cog. Wahrscheinlich muss man Zahlen über den Hauptspeicher austauschen. Ich weiß aber noch nicht wie das geht.
17:00
Die Tastatur..hmmm? Weißt du was ich habe doch noch nicht die Pins 35 und 36 also die Ports P26 und P27 mit dem PS/2-Port verbunden. So kann die Tastatur ja auch nicht laufen. Zwischen die Ports des Propeller und dem PS/2 Port kommen noch 100 Ohm Widerstände. Die 10 Kohm Widerstände gegen Plus hatte ich schon verbaut. Dann die keyboard.spin geladen und .. wieder nix. Mit dem Oszilloskop kann man aber wunderbar sehen wie bei jedem Tastendruck ca. 10 kurze Impulse (bei jeder Taste andere Impulsformen) an den Propeller gesendet werden. Das sind eben die Keycodes in serieller Form.
17:45
Warum tut sich nix? Jetzt habe ich es raus bekommen. Keyboard.spin ist nur ein Treiber. Das Programm tut von sich aus nichts. Ich muss von meinem Hauptprogramm die keyboard.spin unter dem OBJ Block mit keyb : “keyboard“ einbinden. Dann wird der Tastaturtreiber im ersten PUB Block mit keyb.start (26,27). 26 ist der Daten PIN und 27 der Clock PIN am Propeller Chip.
Nun kann man mit keyb.gotkey (true/false) warten bis eine Taste gedrückt wurde. Mit key:=keyb.getkey oder key:=keyb.key kann man den Tastencode holen. Geht wunderbar. Und dabei fällt mir jetzt auch ein, warum wahrscheinlich der Composit Videoausgang nicht rennen will. Weil ich den Treiber nicht gestartet habe (Scheiße nät). Sofort probieren. Das wäre ja zu scharf, wenn der laufen würde.
18:40
Leider ist die Videoausgabe wieder fehlgeschlagen.