amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > 2.+3.Joystikknopf Signale [ - Suche - Neue Beiträge - Registrieren - Login - ]

1 -2- 3 4 5 6 [ - Beitrag schreiben - ]

16.06.2006, 10:24 Uhr

MaikG
Posts: 5172
Nutzer
>Ist es nicht. Glaub es einfach, bislang hat noch niemand einen
>JoystickPort auf Ausgang geschaltet, um ihn zu lesen. Wenn es mit
>Deiner Hardwarebastelei nicht funktioniert, ist Deine Hardware
>fehlerhaft.

Was kann man bei einen paar Optokopplern falsch machen?
Alle Eingänge sind gleich ausgelegt und 5 gehen davon ohne Spezielle
maßnamen.

>Probier es einfach mal mit einem richtigen Joystick.

Ist Logischerweise damit das selbe, ich hab das sogar zuerst
mit dem Joystik probiert.


Aus einer Amiga-Hardware-Reference:

>These lines can also be used for button inputs. A button is a normally
>open switch that shorts to ground. The Amiga must provide a pull-up
>resistance on the sense pin. To do this, set the proper pin to output,
>and drive the line high (set both OUT... and DAT... to 1). Reading
>POTGOR will produce a 0 if the button is pressed, a 1 if it is not.


Das habe ich übrigens mehrfach im Internet gefunden...


>Ich vermute mal das dann der Hack sogar schwerer ist als der
>offizielle Weg. So kann man gerade 7 Buttons auf den CD32-Knochen
>recht einfach auswerten. :P

Eigentlich ist das nicht wirklich schwerer. Hab über die Lowlevel
gelesen das es bei 040/060 zu Problemen kommen kann.

>Es gibt einen Grund, warum meine Partition mit allen
>Entwicklungssachen und Sourcen in den unteren 4 GB der Platte
>liegt und FFS ist...

Nur kapieren das die wenigsten und wenns Probleme gibt ist das
geschei groß und es wird auf dem Amiga geschimpft, wobei der dafür
nichts kann.

[ - Antworten - Zitieren - Direktlink - ]

16.06.2006, 13:02 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von MaikG:
Nur kapieren das die wenigsten und wenns Probleme gibt ist das
geschei groß und es wird auf dem Amiga geschimpft, wobei der dafür
nichts kann.


Nur ist es nunmal so das der Amiga heutzutage meistens Hoffnungslos frisiert ist. Also, er war damals nicht für das ausgelegt was hier heute damit machen. Da wird gepatcht was das Zeug hält und hier und da noch eine Hardwareplatine dazugehängt(und das teilweise wirklich so extrem).

Wenn ich hier meinen großen Basteltower anseh, dann ist das fast schon peinlich ihn offen zu zeigen. Jeder der einen A1200T hat, der kann davon ein Lied singen, wenn der Teil mit allem möglichen aufgerüstet ist, vorallem mit Chipadapter auf dem Mainboard. Und wehe, so ein Teil verliert den Kontakt...

Sowas wie ein Peg oder AOne ist da schon wesentlich weniger verbastelt, aber auch für viele kein Amiga. Unter anderem auch, weil wohl solche direkten Hardwarehacks nicht laufen, um mal wieder etwas OnTopic zu werden. :D
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

16.06.2006, 15:52 Uhr

MaikG
Posts: 5172
Nutzer
>Wenn ich hier meinen großen Basteltower anseh, dann ist das fast
>schon peinlich ihn offen zu zeigen. Jeder der einen A1200T hat,
>der kann davon ein Lied singen, wenn der Teil mit allem möglichen
>aufgerüstet ist, vorallem mit Chipadapter auf dem Mainboard. Und
>wehe, so ein Teil verliert den Kontakt...

Der A1200 war nicht dafür gedacht, aber wenn man da nix falsches
reinsteckt ist er 100% Stabiel.

Ich hab auch ein Scandoubler und ein IDEFix Express drauf.
Aber irgendwann werde ich auch auf A4000 umsteigen, dann
hat der PPCSCSI-Zorro Wahnsinn mal ein Ende.

[ - Antworten - Zitieren - Direktlink - ]

16.06.2006, 17:37 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von MaikG:

Ist Logischerweise damit das selbe, ich hab das sogar zuerst
mit dem Joystik probiert.


Aus einer Amiga-Hardware-Reference:

>These lines can also be used for button inputs. A button is a normally
>open switch that shorts to ground. The Amiga must provide a pull-up
>resistance on the sense pin. To do this, set the proper pin to output,
>and drive the line high (set both OUT... and DAT... to 1). Reading
>POTGOR will produce a 0 if the button is pressed, a 1 if it is not.


Das habe ich übrigens mehrfach im Internet gefunden...


Interessanterweise sind die POTGOx-Pins die der Paddle-Eingänge... da wundert es mich nicht, daß die erst einmal "beschickt" werden müssen, um ein Ergebnis liefern zu können. Die hießen schon beim C64 so und hatten die gleiche Eigenschaft (was nicht verwundert, da die C64-CIAs und die des Amigas sehr eng verwandt sind).

Allerdings haben diese Pins relativ wenig mit einem normalen, digitalen Joystick zu tun. Holger bezog sich, wenn ich mich nicht sehr irre, auf die rein digitalen Joystick-Eingänge, die erfordern keine besonderen Maßnahmen zur Abfrage und können auch nicht auf Ausgang geschaltet werden (ganz andere Baustelle im CIA).

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

16.06.2006, 17:45 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Ralf27:
Nur ist es nunmal so das der Amiga heutzutage meistens Hoffnungslos frisiert ist. Also, er war damals nicht für das ausgelegt was hier heute damit machen. Da wird gepatcht was das Zeug hält und hier und da noch eine Hardwareplatine dazugehängt(und das teilweise wirklich so extrem).

Wenn ich hier meinen großen Basteltower anseh, dann ist das fast schon peinlich ihn offen zu zeigen. Jeder der einen A1200T hat, der kann davon ein Lied singen, wenn der Teil mit allem möglichen aufgerüstet ist, vorallem mit Chipadapter auf dem Mainboard. Und wehe, so ein Teil verliert den Kontakt...


Hm, das ist normalerweise mehr eine Frage der Sorgfalt, mit der der Kram montiert wird. Mein 1200er im RBM-Tower hat auch mehrere Chipadapter, die nun seit über 5 Jahren. Die Büchse ist so stabil, wie man es von der Ausstattung erwarten kann (soll heißen: Er läuft stabil, nur die kleineren Nickeligkeiten von z.B. IDEFix Express tun der Freude manchmal einen winzigen Abbruch, allerdings ohne Datenverlust o.Ä.)

Zitat:
Sowas wie ein Peg oder AOne ist da schon wesentlich weniger verbastelt, aber auch für viele kein Amiga. Unter anderem auch, weil wohl solche direkten Hardwarehacks nicht laufen, um mal wieder etwas OnTopic zu werden. :D

Sagen wir: Diese spezifischen Hacks laufen darauf nicht. Register poken wien Gaskranker wäre auch bei diesen Maschinen nicht so das Problem... nur können die Auswirkungen u.U. deutlich fataler ausfallen :D

Chip-Adapter gestalten sich bei dieser Hardware etwas komplizierter, unmöglich wären sie aber (technisch gesehen) nicht.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

16.06.2006, 18:18 Uhr

MaikG
Posts: 5172
Nutzer
>Allerdings haben diese Pins relativ wenig mit einem normalen,
>digitalen Joystick zu tun. Holger bezog sich, wenn ich mich nicht
>sehr irre, auf die rein digitalen Joystick-Eingänge, die erfordern
>keine besonderen Maßnahmen zur Abfrage und können auch nicht auf
>Ausgang geschaltet werden (ganz andere Baustelle im CIA).


Naja, oben im Thementitel steht aber schon das ich Joystikknopf
2 und 3 benötige. Die anderen hatte ich ja schon, da war das abfragen
ja nicht "schwierig".

[ - Antworten - Zitieren - Direktlink - ]

17.06.2006, 00:08 Uhr

MaikG
Posts: 5172
Nutzer
Etwas doof ist die lowlevel.library ja schon, den 2. und 3. Knopf
bekommt man nur bei Autosense.
Bei gamepad bekommt man nur den 2.Knopf, bei Joystik bekommt
man nur den 1. Feuerknopf.

[ - Antworten - Zitieren - Direktlink - ]

17.06.2006, 02:01 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von MaikG:
>Allerdings haben diese Pins relativ wenig mit einem normalen,
>digitalen Joystick zu tun. Holger bezog sich, wenn ich mich nicht
>sehr irre, auf die rein digitalen Joystick-Eingänge, die erfordern
>keine besonderen Maßnahmen zur Abfrage und können auch nicht auf
>Ausgang geschaltet werden (ganz andere Baustelle im CIA).

Naja, oben im Thementitel steht aber schon das ich Joystikknopf
2 und 3 benötige. Die anderen hatte ich ja schon, da war das abfragen
ja nicht "schwierig".


Hm, ich seh schon, ich müßte wohl mal meine alten Amiga-Zeitschriften wieder hervorkramen bzw. die alten Bücher... ganz sicher bin ich mir nämlich nicht, was die rechte Maustaste (2. Joystick-Knopf) angeht. Meine Erinnerung flüstert da leise was von, daß die rechte Maustaste einen eigenen Pin hat. Bei der Mittleren (3. Knopf) bin ich mir gar nicht sicher, das könnte durchaus einer der Paddle-Eingänge sein.

Ich schlag das morgen nochmal nach.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

17.06.2006, 18:29 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Naja, oben im Thementitel steht aber schon das ich Joystikknopf
2 und 3 benötige. Die anderen hatte ich ja schon, da war das abfragen
ja nicht "schwierig".


Ob das "nicht schwierig" war, kann ich nicht beurteilen. Ich habe nur folgenden Satz gelesen.

Zitat:
Original von MaikG:
Feuer2 und 3 ist Logisch, weil Intuition müsste dazu dem Joyport
auf Ausgang schalten. Standardmäßig ist er auf Eingang, ...


und den kann man so einfach nicht verstehen. Wenn Du erwartest, daß intuition eine IDCMP-Message mit den Knöpfen verschickt, wie es ja auch für die Mausknöpfe geschieht, solltest Du auch erwarten, daß intuition das richtige tut.

Außerdem steht da "Joyport" und nicht "Potentiometerzähler" o.ä.

Und Du schriebst:
Zitat:
Original von MaikG:
Weil die Joystiknöpfe nach GND geschaltet werden. Dazu muss aber erst Spannung an den Pins liegen, was durch das auf "Ausgang" Schalten passiert.
Man könnte warscheinlich auch +5Volt so reinschicken, ...

auch hier keine Chance, den Zusammenhang zu erkennen. Warum man das vor jedem Lesevorgang machen sollte, erklärt sich daraus genauso wenig.
Und die Idee, +5V reinzujagen, gefällt mir auch weiterhin nicht...

Zitat:
Original von whose:
Allerdings haben diese Pins relativ wenig mit einem normalen, digitalen Joystick zu tun. Holger bezog sich, wenn ich mich nicht sehr irre, auf die rein digitalen Joystick-Eingänge, die erfordern keine besonderen Maßnahmen zur Abfrage und können auch nicht auf Ausgang geschaltet werden (ganz andere Baustelle im CIA).

Wenn Du den linken Mausknopf, bzw. ersten Joystickknopf meinst, die kann man sehr wohl auf Ausgang schalten. Allerdings heißt Ausgang auch wirklich Ausgang und nicht Eingang. ;)

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

17.06.2006, 18:31 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Etwas doof ist die lowlevel.library ja schon, den 2. und 3. Knopf
bekommt man nur bei Autosense.
Bei gamepad bekommt man nur den 2.Knopf, bei Joystik bekommt
man nur den 1. Feuerknopf.


Stell den Port auf <Maus>.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

17.06.2006, 23:31 Uhr

NoImag
Posts: 1050
Nutzer
Laut Amiga Intern sind bei Port 0 und 1 die Pins 9 und 5 jeweils für die rechte und die mittlere Maustaste zuständig. Diese Pins werden auch für das linke und rechte Poti eines Paddles benutzt. Sie können als analoger Eingang oder als digitaler Ein- oder Ausgang verwendet werden. Zur Verwendung als digitaler Eingang (d.h. zum Abfragen der 2. und 3. Maustaste) ist keine spezielle Maßnahme notwendig. Wenn dagegen OUTxx auf 1 gesetzt wird, dann ist der entsprechende Pin auf Ausgang geschaltet und DATxx wird am entsprechenden Pin ausgegeben. Unterschiede zwischen Port 0 und 1 gibt es laut Amiga Intern in dieser Hinsicht nicht.

Im Hardware-Manual von Commodore steht allerdings, dass man OUTxx auf Ausgang setzen muss, um den entsprechenden Pin als digitalen Eingang benutzen zu können. Da wurde bei der deutschen Übersetzung wohl etwas geschlampt.

Tschüß



[ Dieser Beitrag wurde von NoImag am 17.06.2006 um 23:58 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.06.2006, 01:44 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Holger:
Zitat:
Original von whose:
Allerdings haben diese Pins relativ wenig mit einem normalen, digitalen Joystick zu tun. Holger bezog sich, wenn ich mich nicht sehr irre, auf die rein digitalen Joystick-Eingänge, die erfordern keine besonderen Maßnahmen zur Abfrage und können auch nicht auf Ausgang geschaltet werden (ganz andere Baustelle im CIA).

Wenn Du den linken Mausknopf, bzw. ersten Joystickknopf meinst, die kann man sehr wohl auf Ausgang schalten. Allerdings heißt Ausgang auch wirklich Ausgang und nicht Eingang. ;)

hmm, Ausgang hieße für mich, daß man den Pin auf 5V "Ausgang" schalten könnte, und genau das wäre mir ziemlich neu. Daß die Paddle-Pins auf Referenzspannung geschaltet werden können ist mir bekannt, und Maiks Problem bei Knopf 2 und 3. Aber Knopf 1? Kenne ich nicht, seit 64er Zeiten nicht. Parallel- bzw. Userport-Pins auf Ausgang schalten, ok, aber Joyport? Ich schlag das nochmal nach.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

18.06.2006, 10:33 Uhr

MaikG
Posts: 5172
Nutzer
>auch hier keine Chance, den Zusammenhang zu erkennen. Warum man das
>vor jedem Lesevorgang machen sollte, erklärt sich daraus genauso
>wenig.

Weil es in der Amiga Hardware Reference steht und es auch nur
so funktioniert.

>Und die Idee, +5V reinzujagen, gefällt mir auch weiterhin nicht...

Ich meinte mit einem Wiederstand.




>Stell den Port auf <Maus>.

Dann spinnen die Links, Rechts, Vor, Rück werte.

[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 10:31 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Weil es in der Amiga Hardware Reference steht und es auch nur
so funktioniert.

In der Hardware Reference steht mit Sicherheit nicht, daß sich der Input/Ouput Status des Chips selbsttätig zurückschalten würde.

Aber es gibt doch einen Grund... Deine Codezeile
Zitat:
POKEB &hDFF034, (PEEKB(&hDFF016) OR 240)
ist, abgesehen vom haarsträubenden byte-Zugriff auf ein word-Register, nett gedacht, die or-Verknüpfung bringt aber gar nichts.

Weil die beiden Register nicht symmetrisch sind, die Datenbits reflektieren beim Lesen den Status 'Knopf gedrückt', nicht, ob die Pins auf High gesetzt werden sollen. Und die Bits für den Input/Output-Status sind beim Lesen immer null. Ein so gelesenes word wieder in das potgo-Register reinzuschreiben, macht keinen Sinn.

Und da trotzdem Deine Maus noch funktioniert hat (nehme ich mal an), wird intuition wohl das Register wieder überschreiben. Und da, wie gesagt, die Tatsache, daß Du die Pins auf Ausgang geschaltet hast, nicht aus dem Register ausgelesen werden kann, wird intuition Deine Änderung dabei rückgängig machen.

Ein praktisches Beispiel, warum man im Multitasking niemals die hardware direkt ansprechen sollte.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 11:40 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von whose:
Hm, das ist normalerweise mehr eine Frage der Sorgfalt, mit der der Kram montiert wird. Mein 1200er im RBM-Tower hat auch mehrere Chipadapter, die nun seit über 5 Jahren. Die Büchse ist so stabil, wie man es von der Ausstattung erwarten kann (soll heißen: Er läuft stabil, nur die kleineren Nickeligkeiten von z.B. IDEFix Express tun der Freude manchmal einen winzigen Abbruch, allerdings ohne Datenverlust o.Ä.)


Das mit den Chipadaptern ist so eine Sache. Hab hier eine IDEFIX. Die wurde bei meinem Kaufrechner vom Ebay einfach draufgesteckt und fertig. Ist mir natürlich abgefallen und das Ding wollte einfach nicht drauf bleiben. Nun, was kann man da am besten machen? Richtig, Kleben. So, das Teil läuft jetzt] erst richtig stabil. Ich will nur hoffen das der Kleber das andauernde Warm/Kalt auch lang genug durchhält, denn der ist schon einige Jahre drin.

Zja, die PCler stecken ihren Rechner zusammen und wir kleben ihn zusammen. Ist fast so wie die Ost-Rennpappe(einfach kleben und gut) und die West-Stahlschwerfahrzeuge (kleben is net. :) ) Aber heute wird die Autos teilweise auch schon geklebt, da die Technik immer besser wird. Vielleicht ist unser Amiga, bzw. die Ostrennpappe doch modern. :)
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 11:54 Uhr

MaikG
Posts: 5172
Nutzer
>In der Hardware Reference steht mit Sicherheit nicht, daß sich der
>Input/Ouput Status des Chips selbsttätig zurückschalten würde.

Da steht das man vor jedem Lesen die Bits setzen muss.

> Zitat:
> POKEB &hDFF034, (PEEKB(&hDFF016) OR 240)
>ist, abgesehen vom haarsträubenden byte-Zugriff auf ein
>word-Register, nett gedacht, die or-Verknüpfung bringt aber gar
>nichts.

Ich weiss das es ein Word-Register ist aber warum soll man davon
nicht nur den ersten Teil lesen?


>Weil die beiden Register nicht symmetrisch sind, die Datenbits
>reflektieren beim Lesen den Status 'Knopf gedrückt', nicht, ob die
>Pins auf High gesetzt werden sollen. Und die Bits für den
>Input/Output-Status sind beim Lesen immer null. Ein so gelesenes
>word wieder in das potgo-Register reinzuschreiben, macht keinen
>Sinn.

Die Zeile liesst erst, &b1111xxxx wird gesetzt xxxx bleibt wie vorher

was Problemlos Funktioniert, wenn die Zeile sinnlos ist, würde
es ja ohne auch Funktionieren, was nicht der fall ist.
Unke nicht immer, probier es selbst aus.


[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 13:45 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Ich weiss das es ein Word-Register ist aber warum soll man davon
nicht nur den ersten Teil lesen?

Weil rein theoretisch unbenutzte Bits in einem neueren Chipsatz eine Bedeutung bekommen könnten, und wenn Du in das obere byte schreibst, Du auch den unteren Teil des Registers überschreibst.
Rein praktisch wird's zwar keine neueren Chipsets mehr geben, trotzdem gewöhnst Du Dir etwas an, das Dir bei anderen Registern, bei denen die unteren Bits eine Bedeutung haben, bzw. nicht zufällig bei 0 nichts tun, auf die Füße fallen wird.
Zitat:
Original von MaikG:
Die Zeile liesst erst, &b1111xxxx wird gesetzt xxxx bleibt wie vorher

was Problemlos Funktioniert, wenn die Zeile sinnlos ist, würde
es ja ohne auch Funktionieren, was nicht der fall ist.
Unke nicht immer, probier es selbst aus.


Lesen und verstehen:

Du glaubst, daß Du &bxyxyxyxy liest, wobei x der alte Input/Output Status und y der alter High-Low Status wäre. In Wirklichkeit liest Du aber &b0z0z0z0z, wobei z der Status der Buttons ist: 1-nicht gedrückt, 0-gedrückt. Nach der Oder-Verknüpung hast Du immer noch &b11110z0z. Du setzt also für die Mausbuttons den Status auf <INPUT> und wenn er auf Output wäre, würdest Du die Pins auf low legen, wenn der jeweilige Buttons gedrückt wäre. Was aber hier keine Rolle spielt, weil Du sie eh auf <INPUT> gesetzt hast. Mit der Oder-Verknüpfung setzt Du die richtigen Werte für den Joystick-Port, es bleiben aber die falschen für den Maus-Port.

Deine Maus funktioniert nur deshalb immer noch, weil der Wert vom input.device wieder überschrieben wird. Probiers doch selber aus: was erhälst Du beim Lesen, &bxyxy1111, sprich den korrekten zu schreibende Wert für den Mausport, damit intuition den mittleren und rechten Mausknopf abfragen kann oder doch was anderes.

Oder umgekehrt, laß die Oder-Verknüpfung weg. Schreib einfach:

POKEW &hDFF034, 240<<8
c&=PEEKW(&hDFF016)
LOCATE 8,2:PRINT "Feuer2"; (c& >> 14) AND 1
LOCATE 9,2:PRINT "Feuer3"; (c& >> 12) AND 1

funktioniert genauso, oder?

Du kannst den alten Input/Output Status nicht wiederherstellen, weil Du ihn nicht lesen kannst.

Kannst Du gerne überprüfen:
POKEW &hDFF034, &b00000000<<8
PRINT BIN$(PEEKW(&hDFF016)>>8)
POKEW &hDFF034, &b11111111<<8
PRINT BIN$(PEEKW(&hDFF016)>>8)
POKEW &hDFF034, &b10101010<<8
PRINT BIN$(PEEKW(&hDFF016)>>8)

Verblüffend, oder?

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 16:42 Uhr

Ralf27
Posts: 2779
Nutzer
[quote]
Original von Holger:
Zitat:
POKEW &hDFF034, &b00000000<<8

Eben hast du mich vom Hocker gerissen, das kannst du mir glauben!
:lach:

Mir geht es weniger um die Register, sondern mehr um die Binäre Darstellung im MaxonBasic-Code! Das seh ich heute zum ersten mal und ich mußte es gleich testen. Es geht wirklich! Heureka, MBasic hat ja immer wieder neue Überraschungen parat! I-) :D

Also, Hexdezimal geht (&h18), Binär (&b11000), Okt (&o30) und Dezimal(24), logisch.

Hey, ich glaub das ist nirgends dokumentiert, bzw. hab ich das nirgends gefunden und mir ist nie in den Sinn gekommen das mal so zu testen!

Danke!
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 23:41 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von whose:
hmm, Ausgang hieße für mich, daß man den Pin auf 5V "Ausgang" schalten könnte, und genau das wäre mir ziemlich neu.


Im Hardware-Manual steht:
The joystick fire buttons can also be configured as outputs. CIAADDRA ($BFE201) contains a mask that corresponds one-to-one with the data read register, CIAAPRA ($BFE001). Setting a 1 in the direction position makes the corresponding bit an output.

Oder habe ich da was falsch verstanden?

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 23:49 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von NoImag:
Zitat:
Original von whose:
hmm, Ausgang hieße für mich, daß man den Pin auf 5V "Ausgang" schalten könnte, und genau das wäre mir ziemlich neu.


Im Hardware-Manual steht:
The joystick fire buttons can also be configured as outputs. CIAADDRA ($BFE201) contains a mask that corresponds one-to-one with the data read register, CIAAPRA ($BFE001). Setting a 1 in the direction position makes the corresponding bit an output.

Oder habe ich da was falsch verstanden?


Offensichtlich nicht... und ich habe wieder was dazu gelernt. Die Amiga-CIAs haben doch noch einiges mehr auf Lager als die 6526 des 64ers. Ich frag mich nur, warum das in meinem "Amiga Intern" nirgends erwähnt wird... gabs da evtl. mehrere korrigierte Auflagen?

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

19.06.2006, 23:55 Uhr

MaikG
Posts: 5172
Nutzer
>Lesen und verstehen:
>
>Du glaubst, daß Du &bxyxyxyxy liest, wobei x der alte Input/Output Status und y der alter High-Low Status wäre. In Wirklichkeit liest Du aber >&b0z0z0z0z, wobei z der Status der Buttons ist: 1-nicht gedrückt, 0-gedrückt. Nach der Oder-Verknüpung hast Du immer noch &b11110z0z. Du >setzt also für die Mausbuttons den Status auf <INPUT> und wenn er auf Output wäre, würdest Du die Pins auf low legen, wenn der jeweilige Buttons >gedrückt wäre. Was aber hier keine Rolle spielt, weil Du sie eh auf <INPUT> gesetzt hast. Mit der Oder-Verknüpfung setzt Du die richtigen Werte >für den Joystick-Port, es bleiben aber die falschen für den Maus-Port.

Verstehe, mehr oder weniger. Ich ging davon aus das ein Word aus 2 Bytes besteht und PokeB nur 1111111100000000 ändert, also
die einsen. Ist tatsächlich nicht so.
Aber auch mit der Umstellung auf Word muss das immer wieder vor dem Lesen geschrieben werden.

>Deine Maus funktioniert nur deshalb immer noch, weil der Wert vom input.device wieder überschrieben wird. Probiers doch selber aus: was erhälst >Du beim Lesen, &bxyxy1111, sprich den korrekten zu schreibende Wert für den Mausport, damit intuition den mittleren und rechten Mausknopf >abfragen kann oder doch was anderes.

Wenn das input.device da rumspielt kann ich die 3 Maustasten dann überhaupt nocht als Ausgang nutzen?

>Hey, ich glaub das ist nirgends dokumentiert, bzw. hab ich das nirgends gefunden und mir ist nie in den Sinn >gekommen das mal so zu testen!

Dokumentation/Concepts
Dokumentation/Tutorial

Hast du wohl auch nicht mitinstalliert

[ - Antworten - Zitieren - Direktlink - ]

20.06.2006, 00:02 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von MaikG:

Dokumentation/Concepts
Dokumentation/Tutorial

Hast du wohl auch nicht mitinstalliert


Zu den Tutorial:
Das ist ja schlimmer wie wilder C-Code. Hab ich mir damals angesehn. Es hat mich geschockt und hab es gleich gelöscht.

Zu den Concepts:
Nun, ich mag und kann kein Englisch. Insofern ist das für mich weniger verständlich.

Ich könnte das ja auch mal durch Babelfish durchjagen, aber dann würde das ganze vermutlich auch etwas aus dem Kontext gerissen. Bzw. ob ich das dann auch noch verstehn würde, das bezweifle ich auch etwas.

:(
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

20.06.2006, 12:49 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von whose:
Offensichtlich nicht... und ich habe wieder was dazu gelernt. Die Amiga-CIAs haben doch noch einiges mehr auf Lager als die 6526 des 64ers. Ich frag mich nur, warum das in meinem "Amiga Intern" nirgends erwähnt wird... gabs da evtl. mehrere korrigierte Auflagen?


Glaube ich nicht. Da gab's das Buch "Amiga Profi KnowHow", das quasi der Nachfolger war. Enthält den Hardware-Teil und die OS-Funktionsreferenz (nicht die Tutorials) für den A3000 aktualisiert (inkl. 68030-Beschreibung). Die OS-Tutorials mußten einem ARexx-Kapitel weichen, das nicht nur die Sprache, sondern auch die Bibliotheken und Kommunikation mit Anwendungen beschreibt.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

20.06.2006, 13:02 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Aber auch mit der Umstellung auf Word muss das immer wieder vor dem Lesen geschrieben werden.

Ja, weil intuition (resp. input.device) den Wert immer wieder überschreibt. Und wie gesagt, Dein Umschalten der Pins kann von intuition nicht registriert werden, weil diese Eigenschaft write-only ist. Deshalb wird es jedesmal zurückgesetzt, es sei denn, Du verklickerst dem input.device, daß an dem Port jetzt ein Maus-artiges Gerät hängt.

Das gleiche gilt für Deinen Schreibzugriff auch, Du kannst den vom input.device gesetzten Status nicht lesen. Ich vermute mal, daß das System die Operation in einem interrupt durchführt, deswegen hat es bislang auch keine (kaum) Konflikte gegeben.

Theoretisch könnte trotzdem ein solcher Zugriff vom input.device genau zwischen Deinem Schreib- und Lesezugriff erfolgen, dann würdest Du u.U. in diesem Moment ein falsches Bit lesen.
Zitat:
Wenn das input.device da rumspielt kann ich die 3 Maustasten dann überhaupt nocht als Ausgang nutzen?
Nicht solange das input-device da mitmischt. Ich hab jetzt natürlich keine Dokumentation zur Hand, aber pauschal würde ich sagen, daß es da zwei Möglichkeiten gibt, a) dem input.device mit einem entsprechenden Request zum Einstellen der Arbeit (an dem Port zumindest) bewegen b) über eine entsprechende Resource.

Wahrscheinlich hat das input.device aber die Resource eh gelockt. Dann wäre die korrekte Abfolge "input.device zum Freigeben bewegen", "Resource locken", "hardware ansprechen".

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

20.06.2006, 23:56 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von whose:
Offensichtlich nicht... und ich habe wieder was dazu gelernt. Die Amiga-CIAs haben doch noch einiges mehr auf Lager als die 6526 des 64ers. Ich frag mich nur, warum das in meinem "Amiga Intern" nirgends erwähnt wird... gabs da evtl. mehrere korrigierte Auflagen?


In der 3. Auflage von 1988 findest du es auf Seite 23. Außerdem wird es in der Tabelle auf Seite 80 und auf Seite 82 kurz erwähnt.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

21.06.2006, 10:55 Uhr

MaikG
Posts: 5172
Nutzer
>Wahrscheinlich hat das input.device aber die Resource eh gelockt.
>Dann wäre die korrekte Abfolge "input.device zum Freigeben bewegen",
>"Resource locken", "hardware ansprechen".

Das klingt sehr kompliziert. Ich könnte auch Forbit und Permit
nehmen. Aber zwischendurch brauche ich das Input device. Und
der Ausgang sollte nie ungewollte auf High liegen.

[ - Antworten - Zitieren - Direktlink - ]

21.06.2006, 11:09 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Das klingt sehr kompliziert. Ich könnte auch Forbit und Permit
nehmen. Aber zwischendurch brauche ich das Input device. Und
der Ausgang sollte nie ungewollte auf High liegen.

Diese beiden helfen Dir nicht, wenn das System die Abfrage innerhalb eines interrupts durchführt. Und die interrupts auch noch auszuschalten, v.a. über einen längeren Zeitraum, ist keine gute Idee. Außerdem ist das nicht einfacher, als zur Initialisierungszeit ein paar Systemaufrufe zu machen und dann Ruhe zu haben.

Allerdings müßte ich auch erstmal ein paar Sachen nachschlagen, bevor ich Dir da ein Beispiel geben kann.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

21.06.2006, 18:12 Uhr

MaikG
Posts: 5172
Nutzer
Ich wollte das heute ja mal so probieren, aber ich weiss nicht
wie ich das mache:

xxxx1010xxxxxxxx

x soll bleiben wie es war
1 und null soll geschriben werden.
Ich meine das 1 verändert wird macht man mit OR, aber die nullen
stehen dabei ja für nicht verändern.

[ - Antworten - Zitieren - Direktlink - ]

22.06.2006, 13:40 Uhr

Ralf27
Posts: 2779
Nutzer
@MaikG:

Jetzt aus reinem Interesse herraus: Was hast du denn vor?
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

22.06.2006, 13:41 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Ich wollte das heute ja mal so probieren, aber ich weiss nicht
wie ich das mache:

xxxx1010xxxxxxxx

x soll bleiben wie es war


Generell gibt es dafür AND

Also X = (X AND &b1111 0000 11111111) OR &b0000 1010 00000000

Aber wenn es immer noch um den POTGO geht, bringt das ja nichts, weil Du den alten Status nicht lesen kannst.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]


1 -2- 3 4 5 6 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > 2.+3.Joystikknopf Signale [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.