getch function
-
hier mal der gesamte quellcode:
#include <windows.h> #include <iostream.h> #include <fstream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include "qlib.h" int sicherheit (int fahrtrichtung,int fahrtstrecke,int istpositiondek,int istpositionrek) { int sollpositiondek; int sollpositionrek; int dekmax; int x; x=1; sollpositionrek=istpositionrek; sollpositiondek=istpositiondek; if (fahrtrichtung==1) { sollpositiondek=istpositiondek+fahrtstrecke; } if (fahrtrichtung==4) { sollpositiondek=istpositiondek-fahrtstrecke; } if (fahrtrichtung==3) { sollpositionrek=istpositionrek+fahrtstrecke; } if (fahrtrichtung==2) { sollpositionrek=istpositionrek-fahrtstrecke; } dekmax=sollpositionrek*sollpositionrek; //hier wird später eine Formel für die maximalen deklinationsausschlaege eingegeben if (sollpositiondek>=dekmax) { x=0; } return x; } main() { int hauptauswahl; int fahrtrichtung; int fahrtstrecke; int istpositiondek; int istpositionrek; int fokus=1; int nResult; int block; int kanaele0; int kanaeler; int kanaelel; char tastefokus; istpositiondek=20; istpositionrek=5; tastefokus=0; block=3; kanaele0=0; kanaeler=1; kanaelel=4; ULONG handle = QAPIExtOpenCard(PCITTL32,0); if ( handle == 0 ) { printf("Karte nicht gefunden!\r\n"); exit(0); } nResult=QAPIExtSpecial(handle, JOB_PCITTL32_IOMODE0_7,0,0); nResult=QAPIExtSpecial(handle, JOB_PCITTL32_IOMODE8_15,0,0); nResult=QAPIExtSpecial(handle, JOB_PCITTL32_IOMODE16_23,1,0); nResult=QAPIExtSpecial(handle, JOB_PCITTL32_IOMODE24_31,1,0); cout << "Zum Fahren waehle 1. Zum Fokussieren waehle 2."<<'\n'; cin>>hauptauswahl; if (hauptauswahl==1) { cout << "Bitte Fahrtrichtung eingeben: Nach oben 1. Nach links 2. Nach rechts 3. Nach unten 4."<<'\n'; cin>>fahrtrichtung; cout << "Bitte Fahrtstrecke in Bogenminuten eingeben."<<'\n'; cin>>fahrtstrecke; if (sicherheit(fahrtrichtung, fahrtstrecke, istpositiondek, istpositionrek)==0) { cout << "Ziel liegt ausserhalb der Teleskopreichweite." <<'\n'; } } if (hauptauswahl==2) { cout << "Zum Fokussieren bitte die r(echts)- bzw. l(inks)-Taste gedrueckt halten. Um Fokussiermodus zu beenden q druecken."<<'\n'; QAPIExtWriteDO8(handle,block,kanaele0,1); while(fokus==1) { tastefokus = getch(); if (tastefokus=='q') { QAPIExtWriteDO8(handle,block,kanaele0,1); fokus=0; break; } while (tastefokus=='r') { QAPIExtWriteDO8(handle,block,kanaeler,1); tastefokus=getch(); break; } while (tastefokus=='l') { QAPIExtWriteDO8(handle,block,kanaelel,1); tastefokus=getch(); break; } QAPIExtWriteDO8(handle,block,kanaele0,1); } } }der befehl QAPIExtWriteDO8(handle,block,kanaeler,1) legt eine spannung auf einen port einer pci-card.
der befehl QAPIExtWriteDO8(handle,block,kanaele0,1); setzt die spannung wieder auf 0.
ich möchte, dass die spannung nur so lange anliegt, so lange ich auch die taste r druecke.
momentan ist es so, dass ich r druecke, die spannung dann anliegt, diese aber erst wieder weggeht, wenn ich eine andere taste druecke.ciao, ben
-
hä, nimmst du drogen?
die spannung soll da sein, solange du r drückst.
also kann sie doch nur weggehen, wenn du was anderes ausser r drückst.ne das ist zu hoch. vllt ist mein kopp auch net mehr so das wahre^^
-
vielleicht mal kbhit?
-
ich möchte aber nichts anderes drücken, die spannung soll nur da sein wenn r gedrueckt wird
-
dern00b schrieb:
vielleicht mal kbhit?
-
an welcher stelle und wie genau?!
-
schau mal inna hilfe nach was bei kbhit passiert wie man es benutzt tralala.....
also soll nur spannung beim druck auf r sein.
hallo? wenn du r drückst machste einmal spannung und nimmst sie weg!
wo ist das problem?habe auch echt kein bock hier weiter so ein kinderquatsch mit michel zu machen :D, muss hier nebenbei nämlich auch noch programmieren

-
ich weiss schon was die kbhit function macht, weiss aber nicht wie ich das hier umsetzen soll....
-
dann programmier mal.
sry - ich habe jetzt ferierabend und fahre zu meinem haasen - sont hätte ich dir weitergeholfen
-
habe immer noch keine lösung gefunden..
-
macinstyle schrieb:
habe immer noch keine lösung gefunden..
Wenn du Windows hast kannst du die GetAsyncKeyState Funktion dazu benutzen.
mfg.
-
vielen dank...die software wird fuer eine dose programmiert, ich selber bin allerdings macuser
