Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

PIT-Timer funktioniert bei Sounds nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
blackdrake



Anmeldungsdatum: 29.05.2007
Beiträge: 11

BeitragVerfasst am: 30.05.2007, 14:29    Titel: PIT-Timer funktioniert bei Sounds nicht Antworten mit Zitat

Hallo.

Ich habe mich ein wenig mit den PIT-Timern beschäftigt, weil SLEEP mit durch Tastendruck abgebrochen werden kann und keine Millisekunden zählen kann, FOR..NEXT CPU-Geschwindigkeits-Abhängig ist und TIMER nur bis 0.56 Millisekunden zählen kann und bei Mitternacht das Programm durch herunterspringen auf 0 zum Absturz bringt.

Ich habe einen PIT-Timer in ein Spiel eingebaut, das davor FOR..NEXT nutzte. Das Spiel stürzte darauf ständig ab. Nun habe ich den Grund dafür gefunden: Es war die PLAY-Prozedur, die Töne wiedergibt. Ich habe nun ein Testprogramm zusammengestickt, das den Fehler genau rekonstruiert.

PS: Hier habe ich die PIT-ASM-Variante genommen, bei Basic-16Bit und Basic-8Bit kommt es auch zum Absturz.

Hier die komplette BAS-Datei:

Code:
DECLARE SUB MdelayASM (Ziel&, asm$)

Millisek% = 1

'8253-Timer 16-Bit-Zielwert:
'Pro Millisekunde werden 1193,18 Tics gez„hlt (65536 / 54,92549 )
ziel16& = 65535 - (Millisek% * 1193.18)

'- WICHTIG BEI ZAEHLER 2: Lautsprecher ueber Port 61h, Bit1 aktivieren ------
OUT (&H61), INP(&H61) OR 1

i = 0
CLS

CALL MdelayASM(ziel16&, asm$)
DEF SEG = VARSEG(asm$)      'Das Speicher-Segment von asm$ festlegen
Offset% = SADD(asm$)        'den Speicher-Offset vom asm$ speichern

DO

 CALL ABSOLUTE(Offset%)     'Delay erzeugen (ASM-Routine aufrufen)

i = i + 1

IF i MOD 1000 = 0 THEN
  PRINT i
  PLAY "mb l32 eeeeddddcccc"   'Diese Zeile bringt das Programm zum Absturz!!!
END IF

LOOP UNTIL INKEY$ = "x"

DEF SEG                     'Standart Segment wiederherstellen

SUB MdelayASM (Ziel&, asm$)

Lo% = Ziel& MOD 256            'LowByte aus Ziel& ermitteln
Hi% = Ziel& \ 256              'HighByte von Ziel& ermitteln
Ziel$ = CHR$(Lo%) + CHR$(Hi%)  'zu einem String zusammensetzen
                               '(INTEL-Schreibweise: LowByte links)

' ------ Created with Absolute Assembly 2.1 by Petter Holmberg, -97. ------- '
asm$ = ""
asm$ = asm$ + CHR$(&HE4) + CHR$(&H61)  ' IN AL,61       ;Port 61h lesen
asm$ = asm$ + CHR$(&HC) + CHR$(&H1)    ' OR AL,01       ;Bit1 setzen (Laustspr. an)
asm$ = asm$ + CHR$(&HE6) + CHR$(&H61)  ' OUT 61,AL      ;und nach Port 61h ausgeben
asm$ = asm$ + CHR$(&HB0) + CHR$(&HB4)  ' MOV AL,B4      ;AL mit 180 (B4h) laden
asm$ = asm$ + CHR$(&HE6) + CHR$(&H43)  ' OUT 43,AL      ;und auf Port 43h ausgeben
asm$ = asm$ + CHR$(&HB0) + CHR$(&HFF)  ' MOV AL,FF      ;AL mit 255 laden (FFh)
asm$ = asm$ + CHR$(&HE6) + CHR$(&H42)  ' OUT 42,AL      ;und auf Port 42h ausgeben (LowByte)
asm$ = asm$ + CHR$(&HE6) + CHR$(&H42)  ' OUT 42,AL      ;und auf Port 42h ausgeben (HighByte)
asm$ = asm$ + CHR$(&HE6) + CHR$(&H42)  ' OUT 42,AL      ;nochmal f?r schnelle Prozessoren
asm$ = asm$ + CHR$(&HB0) + CHR$(&H80)  ' Pit: MOV AL,80 ;Marke "Pit";AL mit 128 (80h) laden
asm$ = asm$ + CHR$(&HE6) + CHR$(&H43)  ' OUT 43,AL      ;und auf Port 43h ausgeben (CounterLatch)
asm$ = asm$ + CHR$(&HE4) + CHR$(&H42)  ' IN AL,42       ;Byte von Port 42h nach AL lesen (LowByte)
asm$ = asm$ + CHR$(&H88) + CHR$(&HC4)  ' MOV AH,AL      ;und nach AH schieben
asm$ = asm$ + CHR$(&HE4) + CHR$(&H42)  ' IN AL,42       ;Byte von Port 42h nach AL lesen (HighByte)
asm$ = asm$ + CHR$(&H86) + CHR$(&HE0)  ' XCHG AH,AL     ;AH/AL tauschen, AX hat den 16-Bit Wert
asm$ = asm$ + CHR$(&H3D) + Ziel$       ' CMP AX,(Ziel)  ;AX mit Zielwert vergleichen
asm$ = asm$ + CHR$(&H77) + CHR$(&HEF)  ' JA Pit         ;wenn groesser (Ziel noch nicht erreicht) nach Pit springen
asm$ = asm$ + CHR$(&HCB)               ' RETF           ;sonst zurueck nach Basic
' ------ Created with Absolute Assembly 2.1 by Petter Holmberg, -97. ------- '
END SUB


Weiß irgendwer Rat?

Gruß
blackdrake
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.05.2007, 15:05    Titel: Antworten mit Zitat

Versuche mal diese PITcal-Routine:
Code:

'Vor dem Programmstart:
DIM SHARED PIT(1) AS LONG
T& = 0: V = 5
FOR W = 1 TO V
T& = T& + PITCal
NEXT
PIT(0) = T& / V

FUNCTION PITCal&
   P& = 0: DEF SEG = 0: X% = (PEEK(&H46C) + 1) AND 255
   WHILE X% <> (PEEK(&H46C) AND 255): WEND
   WHILE X% = (PEEK(&H46C) AND 255)
      P& = P& + 33
      FOR T% = 1 TO 19: WAIT (64), 128, 128: WAIT (64), 128: NEXT
   WEND
   PITCal& = P& * 11.02
END FUNCTION




SUB Warte (Seconds#) 'Dieses hier aufrufen, mit einem sekundenwert. 0.5 ist dann eine halbe sekunde.
    D& = FIX(Seconds# * PIT(0))
    FOR T& = 0 TO D&: WAIT 64, 128: WAIT 64, 128, 128: NEXT
END SUB

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
blackdrake



Anmeldungsdatum: 29.05.2007
Beiträge: 11

BeitragVerfasst am: 30.05.2007, 15:39    Titel: Antworten mit Zitat

Hallo Jojo

Vielen Dank für die Routine! Damit funktioniert es lächeln

Gruß
blackdrake
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.05.2007, 16:10    Titel: Antworten mit Zitat

kein problem zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 30.05.2007, 17:43    Titel: Antworten mit Zitat

Hallo,

ich hätte da auch noch einen Vorschlag. Würde mich interessieren, ob das bei Dir funktioniert.

Code:
OUT 67, 36                 'Nur hoeherwertiges Byte auslesen
OUT 64, 0                  'PIT initialiesieren

DO
 wzeit% = 1000             'Wartezeit in Millisekunden
 GOSUB warten
 PRINT "Tick"
LOOP

warten:
nwz% = wzeit% * 4.661      'Zaehler laeuft mit 4661 Hz
tgesamt% = 0
ialt% = INP(64)

DO
 i% = INP(64)
 dt% = ialt% - i%
 ialt% = i%
 IF dt% < 0 THEN dt% = dt% + 256
 tgesamt% = tgesamt% + dt%
LOOP WHILE tgesamt% < nwz%

RETURN


Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
blackdrake



Anmeldungsdatum: 29.05.2007
Beiträge: 11

BeitragVerfasst am: 31.05.2007, 01:40    Titel: Antworten mit Zitat

Hallo.

Die zweite Variante funktioniert leider in dem Zusammenhang nicht. Aber danke für den Beitrag.

Gruß
blackdrake
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 31.05.2007, 18:59    Titel: Antworten mit Zitat

Skilltronic hat Folgendes geschrieben:
Hallo,

ich hätte da auch noch einen Vorschlag. Würde mich interessieren, ob das bei Dir funktioniert.

Code:
OUT 67, 36                 'Nur hoeherwertiges Byte auslesen
OUT 64, 0                  'PIT initialiesieren

DO
 wzeit% = 1000             'Wartezeit in Millisekunden
 GOSUB warten
 PRINT "Tick"
LOOP

warten:
nwz% = wzeit% * 4.661      'Zaehler laeuft mit 4661 Hz
tgesamt% = 0
ialt% = INP(64)

DO
 i% = INP(64)
 dt% = ialt% - i%
 ialt% = i%
 IF dt% < 0 THEN dt% = dt% + 256
 tgesamt% = tgesamt% + dt%
LOOP WHILE tgesamt% < nwz%

RETURN


Gruß
Skilltronic

[100%-offtopic]
@skilltronics: GOSUB...
war das jetzt quick n dirty oder machst du in "normalen" programmen auch goto/gosub? *ytwinky hol*
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 31.05.2007, 19:11    Titel: Antworten mit Zitat

Alternativ könnte man es ja auch so umschreiben...

Code:

Declare Sub warten
dim key as string

Dim shared wzeit%

OUT 67, 36                 'Nur hoeherwertiges Byte auslesen
OUT 64, 0                  'PIT initialiesieren

DO
 key=inkey$
 wzeit% = 100             'Wartezeit in Millisekunden
 warten
 ?"Tick"
LOOP until key=chr$(27)

Sub warten
nwz% = wzeit% * 4.661      'Zaehler laeuft mit 4661 Hz
tgesamt% = 0
ialt% = INP(64)

DO
    i% = INP(64)
    dt% = ialt% - i%
    ialt% = i%
    IF dt% < 0 THEN dt% = dt% + 256
    tgesamt% = tgesamt% + dt%
LOOP WHILE tgesamt% < nwz%

    tick=tick+1
End Sub

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 31.05.2007, 20:57    Titel: Antworten mit Zitat

kleiner_hacker hat Folgendes geschrieben:

[100%-offtopic]
@skilltronics: GOSUB...
war das jetzt quick n dirty oder machst du in "normalen" programmen auch goto/gosub? *ytwinky hol*


Ich wusste, das sowas kommt. Ich hatte es sogar schon umgeschrieben und wollte meinen Beitrag entsprechend editieren, hab' es mir dann aber doch verkniffen, weil ich dachte, dass ja jeder hier versteht, dass es nicht um einen Schönschreibwettbewerb geht, sondern um das Auslesen des PIT bei gleichzeitigem Gebrauch von PLAY. Und obwohl ich nicht weiss, was Dich das interessiert - ja, ich arbeite gern mit lokalen Subs, vor allem bei Progrmmen, die weniger als 20 Zeilen haben und auch GOTO wird von mir nicht prinzipiell verschmäht. Sind ja schliesslich meine Programme.

Viel mehr würde mich aber interessieren, warum bei Jojos Version die PLAY-Anweisung funktioniert, bei blackdrakes und meiner aber nicht. Würde mich freuen, wenn das jemand aufklären könnte. Das es wohl daran liegt, das der PIT auch für die Takterzeugung der Töne zuständig ist und sich da irgendwie selbst in die Quere kommt, denke ich verstanden zu haben. Mir geht es ums Detail.

Ach, und @Eternal_pain: Das tick = tick + 1 ist unnötig, weiter oben steht ja PRINT "Tick" und nicht PRINT tick. Das soll einem nur Zeigen, das was passiert.

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 31.05.2007, 21:13    Titel: Antworten mit Zitat

kann es vlt daran liegen, dass deine INP benutzt? inp(64) ist ja nahe am pc-speaker output dran...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 31.05.2007, 21:19    Titel: Antworten mit Zitat

dast tick=tick+1 hab ich vergessen rauszunehmen als ich damit rumprobiert habe lächeln
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 31.05.2007, 22:37    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
kann es vlt daran liegen, dass deine INP benutzt? inp(64) ist ja nahe am pc-speaker output dran...


Kannst Du mir auch erklären, wo der Unterschied zwischen WAIT und INP() liegt bzw. was an dem einen "näher" an der Rechner-Lautsprecherausgabe dran ist als beim anderen? Was mich wundert ist, dass das Problem mit PLAY auch dann auftritt, wenn ich den 2. PIT mit INP(&h48) benutze oder per Konfigurationsbyte den Zähler 0 wähle. Tonerzeugung soll angeblich über Zähler 2 laufen, in meinem Beispiel stelle ich per Steuerbyte Zähler 0 ein und trotzdem spinnt es im Zusammenhang mit PLAY.

In der Routine von blackdrake wird hier

Code:
asm$ = asm$ + CHR$(&HB0) + CHR$(&HB4)  ' MOV AL,B4      ;AL mit 180 (B4h) laden
asm$ = asm$ + CHR$(&HE6) + CHR$(&H43)  ' OUT 43,AL      ;und auf Port 43h ausgeben


doch im Prinzip das Gleiche gemacht, wie bei meinem OUT 67, 36 (Bit 3 und 6 gesetzt) ,nur wird hier statt mit 36 eben mit 180 (Bit 3, 5, 6 und 8 gesetzt) bei PIT 1 der Zähler 2 gewählt und beide Zählerbytes ausgelesen. PLAY kann doch nicht alle Kanäle des PIT lahmlegen, bei Deinem Beispiel geht es ja auch. Hast Du die PIT-Routine denn selbst geschrieben und wenn nicht, wo hast Du die her und steht da Näheres dazu?

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
blackdrake



Anmeldungsdatum: 29.05.2007
Beiträge: 11

BeitragVerfasst am: 01.06.2007, 13:58    Titel: Antworten mit Zitat

Hallo.

Zitat:
Tonerzeugung soll angeblich über Zähler 2 laufen


Hat mein ersteres, nicht mit PLAY funktionierendes, Beispiel nicht auch den 2. PIT benutzt?

Code:
'- WICHTIG BEI ZAEHLER 2: Lautsprecher ueber Port 61h, Bit1 aktivieren ------
OUT (&H61), INP(&H61) OR 1


Gruß
blackdrake
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 01.06.2007, 21:42    Titel: Antworten mit Zitat

blackdrake hat Folgendes geschrieben:
Hat mein ersteres, nicht mit PLAY funktionierendes, Beispiel nicht auch den 2. PIT benutzt?

Code:
'- WICHTIG BEI ZAEHLER 2: Lautsprecher ueber Port 61h, Bit1 aktivieren ------
OUT (&H61), INP(&H61) OR 1


Also es gibt zwei PITs mit je drei Zählern, in Deinem Beispiel wird - soweit ich das verstehe und wie oben beschrieben - Zähler 2 (Zählweise 0-2, also der dritte Zähler) vom 1. PIT benutzt. Was das mit dem Lautsprecher aktivieren soll, verstehe ich nicht.

Aber ich habe jetzt eine Einstellung gefunden, bei der die Warteschleife korrekt läuft und PLAY gleichzeitig im Hintergrund spielt:

Code:
DECLARE SUB warten (wzeit%)

CLS

OUT 67, 100                 'Zaehler 1, nur hoeherwertiges Byte auslesen
OUT 65, 0


PLAY "MB cdefl2ggl4aaaal2g"

DO
 warten 1000                '1000 Millisekunden warten
 PRINT "Tick"
LOOP WHILE INKEY$ = ""


SUB warten (wzeit%)

nwz% = wzeit% * 4.661      'Zaehler laeuft mit 4661 Hz
tgesamt% = 0
ialt% = INP(65)

DO
 i% = INP(65)
 dt% = ialt% - i%
 ialt% = i%
 IF dt% < 0 THEN dt% = dt% + 256
 tgesamt% = tgesamt% + dt%
LOOP WHILE tgesamt% < nwz%

END SUB


Das ist mit Zähler 1 von PIT 1. Diese Einstellung hatte ich bisher nicht probiert, weil ich mal gelesen hatte, dass dieser Zähler für den Speicher-Refresh zuständig ist und man damit einen Absturz provozieren kann, aber es funktioniert bei mir tadellos.

Übrigens habe ich fast alles was ich über den PIT weiss, von diesen beiden Seiten:

http://www.sharpmz.org/mz-700/8253ovview.htm

http://ivs.cs.uni-magdeburg.de/bs/lehre/sose99/bs1/aufgaben/aufgabe3/timer.shtml

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Steini63



Anmeldungsdatum: 11.11.2004
Beiträge: 28
Wohnort: 30926 Seelze

BeitragVerfasst am: 02.06.2007, 11:16    Titel: Antworten mit Zitat

Hallo Leute,

den Code, den blackdrake benutzt hat, stammt von mir ; PITDELAY.BAS aus www.franksteinberg.de/SOURCE/TIMING.ZIP. In der ZIP sind übrigens auch noch einige Dokus und andere Beispiele drin. Dass es zu Problemen kommt, wenn der "missbrauchte" Zähler1 wieder seine eigentliche Aufgabe übernehmen soll, nämlich Töne erzeugen, ist zwangsläufig.

Zitat:
'- WICHTIG BEI ZAEHLER 2: Lautsprecher ueber Port 61h, Bit1 aktivieren ------
OUT (&H61), INP(&H61) OR 1

Wenn dieses Bit nicht gesetzt wird, wird Zähler2 einfach nicht aktualisiert bzw. ist nicht auslesbar.

Zum Thema Zähler1:
So wie ich das verstanden habe, ist nicht klar mit welchem Wert der Timer zählt. Bei Zähler0 ist es immer der volle Umfang (65535 bis 0). Bei Zähler2 gibt man den Startwert selber vor. Zähler1 ist mit irgendeinem Zählerstand initialisiert. Nach Ablauf diese Zählerstandes wird jeweils ein Speicherrefresh ausgelöst.

Warum kommt es bei Skilltronic nicht zum Absturz? Weiß ich auch nicht. Aber ich hebe ein paar Vermutungen:
- Moderne RAM-Speicher brauchen das garnicht mehr oder der Refresh wird anders erzeugt.
- Windows emuliert den PIT nur und der Refresh wird garnicht beeinflusst.

Vielleicht lohnt es, den 2. PIT zu bemühen. Ich habe das damals nicht gemacht, weil ich auf einem DOS-Palmtop programmiert habe und der hatte keinen.
_________________
Viele Grüße Steini
http://www.FrankSteinberg.de +++++++ Planung ist das Ersetzen des Zufalls durch den Irrtum +++++++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 02.06.2007, 11:40    Titel: Antworten mit Zitat

Hallo

Ich vermute auch, dass es sich um ein Problem mit der Emulation durch Windows handelt. Unter DOS lässt sich z.B. auch der Startwert und damit das Teilerverhältnis des Zählers setzen und damit die Geschwindigkeit von TIMER einstellen. So kann man z.B. den Takt von 54ms auf 1ms heruntersetzen. Unter Windows geht das nicht. Ausserdem schlägt der mit TIMER ausgelesene Wert unter DOS immer schön beim Überlauf des Zählers um, unter Windows scheint das nichts mehr miteinander zu tun zu haben.

Das habe ich durch Ausprobieren herausgefunden, was die Hintergründe angeht, stehe ich aber noch ziemlich im Nebel. Mit dem 2. PIT habe ich auch herumprobiert, allerdings mit sehr seltsamen Ergebnissen. Die Einstellung PIT 1 und Zähler 1 ist wie gesagt die einzige, mit der bei mir PLAY und PIT-Abfrage gleichzeitig funktioniert.

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz