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 - ]

28.06.2006, 20:55 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Der hatte nur eine Laser, Sprengstoff darf man in Deutschland
nicht herstellen und auch nicht besitzen.


Aber eine tödliche Laserwaffe?!

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

[ - Antworten - Zitieren - Direktlink - ]

29.06.2006, 18:04 Uhr

MaikG
Posts: 5172
Nutzer
@Noimg Das Programm geht nur mit dem Joyport, beim Mausport bekomme
ich nur die Meldung das die Pots schon benutzt werden.

@Holger jepp, | war dann order und nicht AND, der absturz kam
allerdings weil MB die potgo.resource Automatisch schliessen
wollte.
Laser gibts schon in hohen Wattagen, mit 30mW kannst du schon
jemanden erblinden lassen.

[ - Antworten - Zitieren - Direktlink - ]

29.06.2006, 19:13 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Holger:
Zitat:
Original von MaikG:
Der hatte nur eine Laser, Sprengstoff darf man in Deutschland
nicht herstellen und auch nicht besitzen.


Aber eine tödliche Laserwaffe?!


Alles eine Frage des richtigen "Scheins". Für Sprengstoff lautet die Zauberformel "T2-Schein" (Mengenbegrenzung), für Laser mit Personengefährdung "Gewerbeamt, Umweltamt, TÜV und Berufsgenossenschaft" (ohne Leistungsbegrenzung) :D

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

29.06.2006, 20:16 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von whose:
Alles eine Frage des richtigen "Scheins". Für Sprengstoff lautet die Zauberformel "T2-Schein" (Mengenbegrenzung), für Laser mit Personengefährdung "Gewerbeamt, Umweltamt, TÜV und Berufsgenossenschaft" (ohne Leistungsbegrenzung) :D


Und Plasmakanonen? :nuke:

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

[ - Antworten - Zitieren - Direktlink - ]

29.06.2006, 20:43 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Holger:
Und Plasmakanonen? :nuke:


Hm, ich weis ja nicht für Personen bei MaikG einsteigen wollen, aber bei diesem Waffenarsenal kann das schnell zu einem Kleinkrieg ausarten. I-) Aber das dürfte dann auch abschreckend sein. Wie damals im kalten Krieg. Und alles durch einen Amiga gesteuert... Äh, hm... I-) :lach: :nuke:
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

29.06.2006, 21:22 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Holger:
Zitat:
Original von whose:
Alles eine Frage des richtigen "Scheins". Für Sprengstoff lautet die Zauberformel "T2-Schein" (Mengenbegrenzung), für Laser mit Personengefährdung "Gewerbeamt, Umweltamt, TÜV und Berufsgenossenschaft" (ohne Leistungsbegrenzung) :D


Und Plasmakanonen? :nuke:


Ich schätze, da langt eine Professur an einer Fakultät für Nuklearphysik :D

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

29.06.2006, 23:43 Uhr

MaikG
Posts: 5172
Nutzer
>Für Sprengstoff lautet die Zauberformel "T2-Schein" (Mengenbegrenzung),

Eine Vorstrafe und den bekommt man nicht oder?
Und ich denke auch mit den schein dürfte man es nicht unbedingt
zur Einbrecherabwehr einbuddeln.

>für Laser mit Personengefährdung "Gewerbeamt, Umweltamt, TÜV und
>Berufsgenossenschaft" (ohne Leistungsbegrenzung)

Der Hinweiss mit Gewerbeamt steht bei ELV, in den Ebay Auktionen
steht davon nichts...

[ - Antworten - Zitieren - Direktlink - ]

30.06.2006, 00:23 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von MaikG:
>Für Sprengstoff lautet die Zauberformel "T2-Schein" (Mengenbegrenzung),

Eine Vorstrafe und den bekommt man nicht oder?
Und ich denke auch mit den schein dürfte man es nicht unbedingt
zur Einbrecherabwehr einbuddeln.


Naja, ich meinte ja auch nur, daß es (wie immer in Deutschland) nur eine Frage des richtigen Scheins ist, ob man etwas Bestimmtes machen darf oder nicht.

Den Schein zu bekommen ist (wie immer in Deutschland) eine ganz andere Sache...

Zitat:
>für Laser mit Personengefährdung "Gewerbeamt, Umweltamt, TÜV und
>Berufsgenossenschaft" (ohne Leistungsbegrenzung)

Der Hinweiss mit Gewerbeamt steht bei ELV, in den Ebay Auktionen
steht davon nichts...


Muß es ja auch nicht. Da ist man als "Anwender" in einer Holschuld... man muß sich sachkundig machen, ob und unter welchen Auflagen eine solche Anlage betrieben werden darf.

Wie so häufig gibt es da eine gewisse "Verkehrung der Welten". In Sachen Laser (und anderen Dingen, u.A. Sprengstoffe) ist verboten, was nicht ausdrücklich erlaubt ist.

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

30.06.2006, 09:58 Uhr

MaikG
Posts: 5172
Nutzer
>Wie so häufig gibt es da eine gewisse "Verkehrung der Welten". In
>Sachen Laser (und anderen Dingen, u.A. Sprengstoffe) ist verboten,
>was nicht ausdrücklich erlaubt ist.


Ich kann mir ja so eine Kinderpistole holen, die mit den Plastikbällen,
die sollen gut zwirbeln und wenn man davon eine Menge abschiesst...

Aber zurück zum Thema, keiner eine Ahnung wie man die Maustasten
nun als Ausgang nutzt? Ich meine es gibt auch spiele mit 2 Joystiks,
die müssen das input.device ja auch irgendwie zum schweigen bringen.

[ - Antworten - Zitieren - Direktlink - ]

30.06.2006, 12:46 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von MaikG:
Aber zurück zum Thema, keiner eine Ahnung wie man die Maustasten
nun als Ausgang nutzt? Ich meine es gibt auch spiele mit 2 Joystiks,
die müssen das input.device ja auch irgendwie zum schweigen bringen.


Warum verwendest du nicht einfach Port 1 für die Ausgänge und Port 0 für die Eingänge? Weil das OS annimmt, dass an Port 0 eine Maus hängt, ist es doch kein Problem Port 0 für die Eingänge zu verwenden.

Zur Verwendung von 2 Joysticks: Wenn ich mich richtig erinnere (habe die Dokumentation hier nicht zur Hand), dann kannst du problemlos Port 0 auf "Joystick" stellen (gameport.device). Das hat aber mit deinem Problem nichts zu tun.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

30.06.2006, 12:54 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von NoImag:
Zur Verwendung von 2 Joysticks: Wenn ich mich richtig erinnere (habe die Dokumentation hier nicht zur Hand), dann kannst du problemlos Port 0 auf "Joystick" stellen (gameport.device). Das hat aber mit deinem Problem nichts zu tun.


Ich weiß auch, daß man dem input.device sagen konnte, daß die primäre Maus am anderen Port hängt. Da gab es auch schon zu a500-Zeiten tools für, damit man auch weiterarbeiten konnte, wenn der port kaputt war. Und ich denke mal, wenn man den port redefinieren kann, kann man die Maus auch komplett abmelden, um die resource frei zu bekommen.

Nur nach dem wie darfst Du mich jetzt nicht fragen, habe keine Dokumentation hier und glaube auch nicht, daß ich heute die Zeit dafür finden werde...

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

[ - Antworten - Zitieren - Direktlink - ]

30.06.2006, 15:09 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Holger:
Zitat:
Original von NoImag:
Zur Verwendung von 2 Joysticks: Wenn ich mich richtig erinnere (habe die Dokumentation hier nicht zur Hand), dann kannst du problemlos Port 0 auf "Joystick" stellen (gameport.device). Das hat aber mit deinem Problem nichts zu tun.


Ich weiß auch, daß man dem input.device sagen konnte, daß die primäre Maus am anderen Port hängt. Da gab es auch schon zu a500-Zeiten tools für, damit man auch weiterarbeiten konnte, wenn der port kaputt war. Und ich denke mal, wenn man den port redefinieren kann, kann man die Maus auch komplett abmelden, um die resource frei zu bekommen.


Das erstere geht (im Groben, aus dem Gedächtnis, ich hoffe, es ist einigermaßen korrekt) wohl so:

code:
BYTE port = 1;

InputIO->io_Data = &port;
InputIO->io_Flags = IOF_QUICK;
InputIO->io_Length = 1;
InputIO->io_Command = IND_SETMPORT;
BeginIO((struct IORequest *)InputIO); /* sry für den Cast */

if(InputIO->io_Error)
    printf("SETMPORT Fehler: %dn", InputIO->io_Error);


Das zweitere dürfte wohl schon mit dem gameport.device machbar sein, indem man für den Mausport (Port 0) GPCT_NOCONTROLLER setzt (mittels GPD_SETCTYPE). Soweit ich gerade aus dem Gedächtnis sagen kann (habe nie groß was mit dem gameport.device gemacht), sollte man GPD_ASKCTYPE (richtig?) vorher senden, um den Typ des bisher "angemeldeten" Controllers zu bekommen (und später wieder darauf zurücksetzen zu können). Das Ganze muß wohl auch in einem Forbid()/Permit()-Paar ablaufen.

Genaueres kann ich aber auch erst später sagen, habe das RKM nicht zur Hand. Ich weiß also nicht, ob der Port dann tatsächlich "frei" gemacht wird oder nicht (aber die Wahrscheinlichkeit ist hoch).

Nachtrag: Mir fällt gerade ein, daß das input.device da ja noch mitmischt... muß man das dann "austricksen"? (sprich: Mausport auf Port 1 setzen, Port 0 auf NOCONTROLLER, Port 0 allokieren, input.device "veralbern" und Mausport wieder auf Port 0 zurücksetzen (der dann ja "belegt" ist), und dann das gleiche Spiel mit Port 1. Was aber, wenn das input.device das "Zurücksetzen" auf Port 0 nicht zuläßt (weil bereits "belegt")?). Das weiß ich nun gerade nicht :(

Grüße

--
---

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


[ Dieser Beitrag wurde von whose am 30.06.2006 um 15:14 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

30.06.2006, 18:16 Uhr

MaikG
Posts: 5172
Nutzer
>Warum verwendest du nicht einfach Port 1 für die Ausgänge und
>Port 0 für die Eingänge? Weil das OS annimmt, dass an Port 0
>eine Maus hängt, ist es doch kein Problem Port 0 für die Eingänge
>zu verwenden.

Ja, weil die Hardware schon gebaut ist und mit Plastikkleber
vergossen. Rein theoretisch wäre das möglich, müsste nur aufpassen
das die Maus nirgend drüber ist sonst gild der Sensor als "klick".

BTW. wie schnell können die Ports eigentlich Daten verarbeiten?
Hab mir mal nochmal das Thema Multiplexer vorgenommen, um mehr
Signale verarbeiten zu können könnte ich die Sensorik nacheinander
übermitteln, weiss aber nicht was die MUX für ein MHZ/KHZ/HZ minimum
haben.

[ - Antworten - Zitieren - Direktlink - ]

01.07.2006, 00:38 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Holger:
Ich weiß auch, daß man dem input.device sagen konnte, daß die primäre Maus am anderen Port hängt. Da gab es auch schon zu a500-Zeiten tools für, damit man auch weiterarbeiten konnte, wenn der port kaputt war.


Richtig, dafür hat das input.device extra eine Funktion.

Zitat:
Und ich denke mal, wenn man den port redefinieren kann, kann man die Maus auch komplett abmelden, um die resource frei zu bekommen.

Und gerade dazu habe ich in den RKRMs, Autodocs und Amiga Intern 1+2 nichts gefunden. Wie ich weiter oben geschrieben habe, steht im Amiga Intern 2, dass es nicht geht.

PS: Da kommt mir die Idee, dass man versuchen könnte, den Mausporttyp auf GPCT_NOCONTROLLER zu setzen. Vielleicht hat dies den Effekt, dass das input.device den Mausport frei gibt.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

01.07.2006, 00:48 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von whose:
Zitat:
Original von Holger:
Ich weiß auch, daß man dem input.device sagen konnte, daß die primäre Maus am anderen Port hängt. Da gab es auch schon zu a500-Zeiten tools für, damit man auch weiterarbeiten konnte, wenn der port kaputt war. Und ich denke mal, wenn man den port redefinieren kann, kann man die Maus auch komplett abmelden, um die resource frei zu bekommen.


Das zweitere dürfte wohl schon mit dem gameport.device machbar sein, indem man für den Mausport (Port 0) GPCT_NOCONTROLLER setzt (mittels GPD_SETCTYPE). Soweit ich gerade aus dem Gedächtnis sagen kann (habe nie groß was mit dem gameport.device gemacht), sollte man GPD_ASKCTYPE (richtig?) vorher senden, um den Typ des bisher "angemeldeten" Controllers zu bekommen (und später wieder darauf zurücksetzen zu können). Das Ganze muß wohl auch in einem Forbid()/Permit()-Paar ablaufen.


Leider nicht. :( Man darf nur dann selbst den Typ ändern, wenn er auf GPCT_NOCONTROLLER steht. Den Rest hast du aber richtig in Erinnerung.

Zitat:
Nachtrag: Mir fällt gerade ein, daß das input.device da ja noch mitmischt... muß man das dann "austricksen"? (sprich: Mausport auf Port 1 setzen, Port 0 auf NOCONTROLLER, Port 0 allokieren, input.device "veralbern" und Mausport wieder auf Port 0 zurücksetzen (der dann ja "belegt" ist), und dann das gleiche Spiel mit Port 1. Was aber, wenn das input.device das "Zurücksetzen" auf Port 0 nicht zuläßt (weil bereits "belegt")?). Das weiß ich nun gerade nicht :(

Ob dieser Trick funktionieren würde, weiß ich auch nicht. In den RKRMs und Autodocs wird er nicht beschrieben. Da hilft nur ausprobieren.

Tschüß



[ Dieser Beitrag wurde von NoImag am 01.07.2006 um 00:49 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

01.07.2006, 00:57 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von MaikG:
Ja, weil die Hardware schon gebaut ist und mit Plastikkleber
vergossen. Rein theoretisch wäre das möglich, müsste nur aufpassen
das die Maus nirgend drüber ist sonst gild der Sensor als "klick".


Das habe ich jetzt nicht genau verstanden. Bleibt die Maus angeschlossen?
Ansonsten könntest du den Mausport mit dem input.device auf Port 1 legen. Dann ist Port 0 frei und du kannst ihn als Ausgang nutzen.

Zitat:
BTW. wie schnell können die Ports eigentlich Daten verarbeiten?
Hab mir mal nochmal das Thema Multiplexer vorgenommen, um mehr
Signale verarbeiten zu können könnte ich die Sensorik nacheinander
übermitteln, weiss aber nicht was die MUX für ein MHZ/KHZ/HZ minimum
haben.


Bei den 4 Analog/Digital-Pins kann das Erreichen des Pegels bis zu 300 µs dauern, da Kondensatoren (47 nF) umgeladen werden müssen.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

01.07.2006, 09:45 Uhr

MaikG
Posts: 5172
Nutzer
>Das habe ich jetzt nicht genau verstanden. Bleibt die Maus
>angeschlossen?

Nein, erstmal nicht, da kein Monitor geplant ist reicht die
Tastatur als Eingabegerät.

>Ansonsten könntest du den Mausport mit dem input.device auf Port 1
>legen. Dann ist Port 0 frei und du kannst ihn als Ausgang nutzen.

Das beispiel oben dafür scheint nicht vollständig, keine Librarys
werden geöffnet/benutzt?

>Bei den 4 Analog/Digital-Pins kann das Erreichen des Pegels bis zu
>300 µs dauern, da Kondensatoren (47 nF) umgeladen werden müssen.

Was ist das in KHZ? Und die anderen Pins?

[ - Antworten - Zitieren - Direktlink - ]

02.07.2006, 00:29 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von MaikG:
>Ansonsten könntest du den Mausport mit dem input.device auf Port 1
>legen. Dann ist Port 0 frei und du kannst ihn als Ausgang nutzen.

Das beispiel oben dafür scheint nicht vollständig, keine Librarys
werden geöffnet/benutzt?


Du musst das input.device öffnen mit allem was so dazugehört. Ein Beispiel habe ich gerade nicht zur Hand. Da müsstest du bis Mittwoch warten (da habe ich etwas mehr Zeit).

Zitat:
>Bei den 4 Analog/Digital-Pins kann das Erreichen des Pegels bis zu
>300 µs dauern, da Kondensatoren (47 nF) umgeladen werden müssen.

Was ist das in KHZ? Und die anderen Pins?


Der Kehrwert von 300 µs ist 3,3 kHz.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

05.07.2006, 14:54 Uhr

MaikG
Posts: 5172
Nutzer
>Du musst das input.device öffnen mit allem was so dazugehört.
>Ein Beispiel habe ich gerade nicht zur Hand. Da müsstest du bis
>Mittwoch warten (da habe ich etwas mehr Zeit).

Okay, ist Mittwoch :-)


>Der Kehrwert von 300 µs ist 3,3 kHz.

Sollte gehen, braucht man für die abfrage in dieser geschwindigkeit
viel CPU Power?


[ - Antworten - Zitieren - Direktlink - ]

05.07.2006, 21:43 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von MaikG:
Okay, ist Mittwoch :-)


Sei nicht so ungeduldig. :)

Das Beispiel:
C code:
#include <exec/types.h>
#include <devices/input.h>

#include <clib/exec_protos.h>
#include <clib/alib_protos.h>

#include <stdio.h>


VOID main(VOID)
{
struct IOStdReq  *inputIO;
struct MsgPort   *inputMP;

BYTE port = 1; /* Maus auf den rechten Port setzen */

if (inputMP = CreatePort(NULL,NULL))
    {
    if (inputIO = (struct IOStdReq *)CreateExtIO(inputMP,
                                                 sizeof(struct IOStdReq)))
        {
        if (!OpenDevice("input.device",NULL,
                             (struct IORequest *)inputIO,NULL))
            {
            inputIO->io_Data = &port;
            inputIO->io_Flags = IOF_QUICK;
            inputIO->io_Length = 1;
            inputIO->io_Command = IND_SETMPORT;
            DoIO((struct IORequest *)inputIO);
            if (inputIO->io_Error)
                printf("nSETMPORT failed %dn",inputIO->io_Error);

            /* hier machst du deine Sachen */

            port = 0; /* Wieder auf den linken Port zurücksetzen */
            inputIO->io_Data = &port;
            inputIO->io_Flags = IOF_QUICK;
            inputIO->io_Length = 1;
            inputIO->io_Command = IND_SETMPORT;
            DoIO((struct IORequest *)inputIO);
            if (inputIO->io_Error)
                printf("nSETMPORT failed %dn",inputIO->io_Error);

            CloseDevice((struct IORequest *)inputIO);
            }
        else
            printf("Error: Could not open input.devicen");

        DeleteExtIO((struct IORequest *)inputIO);
        }
    else
        printf("Error: Could not create I/O requestn");

    DeletePort(inputMP);
    }
else
    printf("Error: Could not create message portn");
}


Zitat:
>Der Kehrwert von 300 µs ist 3,3 kHz.

Sollte gehen, braucht man für die abfrage in dieser geschwindigkeit
viel CPU Power?


Keine Ahnung.

Tschüß


[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 11:55 Uhr

MaikG
Posts: 5172
Nutzer
Habs dann mal versucht in Basic umzusetzten:

REM $include exec.bh
REM $include input.bc

LIBRARY OPEN "exec.library"

REM $INCLUDE Blib/ExecSupport.bas

PortN&=1
port& = CreatePort&(NULL&, NULL&)
IF port& THEN
InputIO&=CreateExtIO&(port&,IOStdReq_sizeof%)
IF InputIO& THEN
device& = OpenDevice&(SADD("input.device" + CHR$(0)), NULL&, InputIO&, NULL&)
IF device& THEN
POKEW(InputIO&+IORequestio_Command%), IND_SETMPORT&
POKEL(InputIO&+IOStdReqio_Length%),1&
POKEL(InputIO&+IOStdReqio_Data%), VARPTR(PortN&)
POKEL(InputIO&+IOStdReqio_Flags%), IOF_QUICK&
IF DoIO&(InputIO&) THEN PRINT "Fehler4 DOIO":GOTO 1235
CloseDevice InputIO&
ELSE PRINT "can't open input.device"
END IF
DeleteExtIO InputIO&
ELSE PRINT "cant create IO"
END IF
DeletePort port&
ELSE PRINT "can't open port"
END IF

1235

Dann kommt "can't open input.device", wahrscheinlich ist es hier
mit 26°C zu heiss für sowas...

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 12:29 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von MaikG:
Habs dann mal versucht in Basic umzusetzten:

REM $include exec.bh
REM $include input.bc

LIBRARY OPEN "exec.library"

REM $INCLUDE Blib/ExecSupport.bas

PortN&=1
port& = CreatePort&(NULL&, NULL&)
IF port& THEN
InputIO&=CreateExtIO&(port&,IOStdReq_sizeof%)
IF InputIO& THEN
device& = OpenDevice&(SADD("input.device" + CHR$(0)), NULL&, InputIO&, NULL&)
IF device& THEN
POKEW(InputIO&+IORequestio_Command%), IND_SETMPORT&
POKEL(InputIO&+IOStdReqio_Length%),1&
POKEL(InputIO&+IOStdReqio_Data%), VARPTR(PortN&)
POKEL(InputIO&+IOStdReqio_Flags%), IOF_QUICK&
IF DoIO&(InputIO&) THEN PRINT "Fehler4 DOIO":GOTO 1235
CloseDevice InputIO&
ELSE PRINT "can't open input.device"
END IF
DeleteExtIO InputIO&
ELSE PRINT "cant create IO"
END IF
DeletePort port&
ELSE PRINT "can't open port"
END IF

1235

Dann kommt "can't open input.device", wahrscheinlich ist es hier
mit 26°C zu heiss für sowas...


Nein, Du bist nur dem "Spaßvogel OpenDevice()" aufgesessen. OpenDevice() liefert 0 (den Wert, keinen Zeiger) zurück, wenn alles glett gelaufen ist und einen Fehlerwert, wenn es Probleme gab. Also genau umgekehrt wie bei anderen Open()-Funktionen.

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 12:29 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Dann kommt "can't open input.device", wahrscheinlich ist es hier
mit 26°C zu heiss für sowas...


OpenDevice liefert kein "device" zurück, sondern eine Fehlernummer, d.h. 0 wenn kein Fehler. Guck noch mal genau auf das C-Beispiel. Da steht "if(!OpenDevice(...))"

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

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 12:30 Uhr

Holger
Posts: 8116
Nutzer
Zwei Sekunden zu langsam... :D

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 12:30 Uhr

whose
Posts: 2156
Nutzer
@Holger:

Gutes Timing ;)

Grüße

--
---

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

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 18:03 Uhr

MaikG
Posts: 5172
Nutzer
>Nein, Du bist nur dem "Spaßvogel OpenDevice()" aufgesessen.
>OpenDevice() liefert 0 (den Wert, keinen Zeiger) zurück, wenn alles
>glett gelaufen ist und einen Fehlerwert, wenn es Probleme gab. Also
>genau umgekehrt wie bei anderen Open()-Funktionen.


Läuft jetzt zwar durch, hat aber keinerlei Funktion, Maus geht
weiterhin am Mausport.

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 19:07 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Läuft jetzt zwar durch, hat aber keinerlei Funktion, Maus geht
weiterhin am Mausport.


port ist im C-Programm vom Typ byte, PortN& in Deinem Programm ist vom Typ int (4 bytes). Wenn Du in Basic keine Variablen vom Typ byte definieren kannst (vermute ich mal), dann nimm den vier bytes int, aber entweder initialisiere ihn mit 1<<24 oder benutze VARPTR(PortN&+3), damit der Pointer auf die gewünschte 1 vom Typ byte zeigt.

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

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 19:40 Uhr

Ralf27
Posts: 2779
Nutzer
Zitat:
Original von Holger:
... Typ int (4 bytes).


Also wenn MaikG
code:
DEFINT a-z

genommen hat, dann sind die Integerwerte in 2Bytes codiert. Denn bei 32768 gibt es dann ein überlauf.

EDIT:
Aber ich kenne leider auch keinen Weg einen Typ von 1Byte in MBasic zu benutzen. Denn genau sowas könnte ich bei einigen Anwendungen sehr gut gebrauchen...

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

[ Dieser Beitrag wurde von Ralf27 am 06.07.2006 um 19:41 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 19:45 Uhr

Ralf27
Posts: 2779
Nutzer
Also die folgende Zeile kann ja vermutlich so nicht stimmen...

code:
IF DoIO&(InputIO&) THEN PRINT "Fehler4 DOIO":GOTO 1235


Also wenn ein Fehler passiert, dann wird nix mehr zurück gegeben? Und dieses Goto schmerz mir auch in denn Augen. :D Eigentlich könnte doch dieses Goto komplett verschwinden. Dann werden auch die Resourcen zurückgegeben.
--
http://www.alternativercomputerclub.de.vu

[ - Antworten - Zitieren - Direktlink - ]

06.07.2006, 22:25 Uhr

NoImag
Posts: 1050
Nutzer
Da wäre noch etwas.

code:
POKEL(InputIO&+IOStdReqio_Flags%), IOF_QUICK&


Ich kenne mich in Basic nicht mehr so aus, aber die Flags sind nur 1 Byte groß. Ist es da richtig POKEL zu verwenden? Ist aber auch egal. Wie ich inzwischen gesehen habe, kann die Zeile sowieso raus, weil DoIO() das Flag automatisch setzt.

Tschüß


[ - 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.
.