PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tasten programm



Martinius11
05.11.2009, 21:04
kann mir bitte jemand ein programm für eine einzelne taste des Asuros
schreiben z. b. K4

Danke

Ollowain
05.11.2009, 22:13
du schon wieder? ;-)

zeig doch mal was du schon hast.
lg Ollo

Martinius11
05.11.2009, 22:32
#include "asuro.h"

int main(void)
{
unsigned char (32);
Init();
(32)=PollSwitch();
if((32)>0)
{MotorDir(FWD,FWD);
MotorSpeed(150,150);
}
else
{StatusLED(YELLOW);}



while(1);
return 0;
}

Ollowain
06.11.2009, 09:40
und was genau willst du damit erreichen?

so wie ich das sehe hast du eine variable 32 definiert? wieso dieser name? wenn schon wäre wohl eine variable tasterzustand angebracht.

Martinius11
06.11.2009, 09:58
ich vesteh nicht was du meinst könntest du bitte mal ein kompletes beispiel
programm schreiben .Ich wills doch bloss verstehen.

Ollowain
06.11.2009, 12:22
Hier mal was kleines. Allerdings noch ohne überprüfung der Werte.


#include "asuro.h"

int main(void) {
unsigned char tasterzustand;
Init();
tasterzustand=PollSwitch();
while (1) {

if (tasterzustand > 7) // Hier macht er es nur wenn Taster K1 bis K3 gedrückt werden und zwar in beliebiger Kombination, d.h. auch alle zusammen. (Siehe Tabelle in deinem letzten Thread. einfach addieren)
{
.... // was auch immer
}

else if (tasterzustand > 0 && tasterzustand <= 7) // analog zu oben nur hier K4 bis K6
{
.... // was auch immer
}

else // Hier ist keiner gedrückt (tasterzustand == 0)
{
.... // was auch immer
{
}
return 0;
}
(ungetestet)

jetz probier mal ein bisschen rum. Die anleitung ist doch in dieser Hinsicht sehr ausführlich. Ein bisschen überlegen sollte man natürlich auch...


// edit: vielleicht kann ein mod oder admin die beiden Threads zum gleichen Thema zusammenfügen.

Martinius11
06.11.2009, 12:38
er sagt mir beim maken noch immer in der letzten zeile eine input fehler
und muss ich eigentlich für tastenstatus was einfügen ?

Martinius11
06.11.2009, 12:50
hab den fehler gefunden du httest eine klammer falsch gesetzt ,aber ich bin noch nicht ganz zu friden dein programm funktioniert nur wenn man die taste
von anfangan drückt ich will aber das die funktion immer ausgeführt wird wenn die taste gesrückt wird was müste ich dan noch verändern ?

Ollowain
06.11.2009, 13:08
Hab in der Hektik sogar noch einen entscheidenen Fehler gemacht, was auch der grund des problems ist.
die Zeile
tasterzustand=PollSwitch();
muss natürlich in (](*,) ](*,) ](*,) ) die while damit er jedes mal die Werte ausliest.


jetz müsste es aber klappen ....

Martinius11
06.11.2009, 13:14
also ich habs nicht wirklich verstanden wo hin ich allse setzen sol hier ist mal das programm


#include "asuro.h"

int main(void) {
unsigned char t;
Init();
t=PollSwitch();
while (1) {
unsigned char t;
if (t > 7) // Hier macht er es nur wenn Taster K1 bis K3 gedrückt werden und zwar in beliebiger Kombination, d.h. auch alle zusammen. (Siehe Tabelle in deinem letzten Thread. einfach addieren)
{
StatusLED(RED); // was auch immer
}

else if (t > 0 && t <= 7) // analog zu oben nur hier K4 bis K6
{
StatusLED(GREEN); // was auch immer
}

else // Hier ist keiner gedrückt (tasterzustand == 0)
{
StatusLED(YELLOW); // was auch immer
}

}
return 0;
}

Ollowain
06.11.2009, 13:19
#include "asuro.h"

int main(void) {
unsigned char t;
Init();

while (1) {

t=PollSwitch(); // <= Hier wird jedes mal der Wert der Taster in die Variable t gespeichert

if (t > 7) // Hier macht er es nur wenn Taster K1 bis K3 gedrückt werden und zwar in beliebiger Kombination, d.h. auch alle zusammen. (Siehe Tabelle in deinem letzten Thread. einfach addieren)
{
StatusLED(RED);
}

else if (t > 0 && t <= 7) // analog zu oben nur hier K4 bis K6
{
StatusLED(GREEN);
}

else // Hier ist keiner gedrückt (tasterzustand == 0)
{
StatusLED(YELLOW);
}

}
return 0;
}

Martinius11
06.11.2009, 13:23
danke funktioniert klasse =D> =D> =D> =D> =D> =D>