weisserAdler
05.06.2007, 15:43
Hallo zusammen, vor einigen Tagen habe ich meinen Asuro fertig gelötet, Alle Tests liefen einwandfrei.
Mein ersten Programm die Lichter blinken zu lassen läuft auch :D aber nun heng ich sei dgestern mittag an der PollSwitch funktion.
hier mal mein Programm:
#include "asuro.h"
int main()
{
Init();
int ps;
int ps1;
int ps2;
int i;
ps = PollSwitch();
ps1 = PollSwitch();
ps2 = PollSwitch();
for (i=1;i<=200;i++) {
Sleep(255); }
for (;;) {
if ((ps == ps1) && (ps == ps2) && (ps1 == ps2) > 0 ) {
StatusLED(RED);
MotorDir(FREE,FREE);
for (i=1;i<=350;i++) {
Sleep(255);}
SerWrite("Stop\n\r",20);
MotorDir(RWD,RWD);
MotorSpeed(200,200);
for (i=1;i<=300;i++) {
Sleep(255);}
SerWrite("zurück\n\r",20);
MotorDir(RWD,FWD);
MotorSpeed(150,150);
for (i=1;i<=120;i++) {
Sleep(255);}
SerWrite("drehen\n\r",20);
}
else if ((ps == ps1) && (ps == ps2) && (ps1 == ps2) == 0 ){
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(200,200);
SerWrite("Jetzt gehts los\n\r",20);
}
}
}
ich schalte ihn ein und er tut nix anderes als das er stoppt, rückwärts fährt, dreht und von vorne. das zeigt er mir auch im hyper terminal durch SerWrtie.
er fährt nicht einmal vorwärts. im forum habe ich schon gelesen das es wohl am kondensator liegt das de rnoch geladen sei. da witzige ist wenn ich die einzelnen Taster abfrage und bei druck jeweils nur mit einer LED belege funktioniert alles wunderbar, ich drück den taster, die LED geht an und danach wieder aus. wieso geht das hier nicht? ;(
habe mir die Werte der Taster ausgeben lassen und sie zeigen folgendes an:
1,2,4,8,16,32
summe = 63
das stimmt sobald ich alle auf einmal drücke zeigt er auch 63 an und alle 20sek. vlt mal ein 64.
kann mir irgendjemand helfen?
mfg Adler
Mein ersten Programm die Lichter blinken zu lassen läuft auch :D aber nun heng ich sei dgestern mittag an der PollSwitch funktion.
hier mal mein Programm:
#include "asuro.h"
int main()
{
Init();
int ps;
int ps1;
int ps2;
int i;
ps = PollSwitch();
ps1 = PollSwitch();
ps2 = PollSwitch();
for (i=1;i<=200;i++) {
Sleep(255); }
for (;;) {
if ((ps == ps1) && (ps == ps2) && (ps1 == ps2) > 0 ) {
StatusLED(RED);
MotorDir(FREE,FREE);
for (i=1;i<=350;i++) {
Sleep(255);}
SerWrite("Stop\n\r",20);
MotorDir(RWD,RWD);
MotorSpeed(200,200);
for (i=1;i<=300;i++) {
Sleep(255);}
SerWrite("zurück\n\r",20);
MotorDir(RWD,FWD);
MotorSpeed(150,150);
for (i=1;i<=120;i++) {
Sleep(255);}
SerWrite("drehen\n\r",20);
}
else if ((ps == ps1) && (ps == ps2) && (ps1 == ps2) == 0 ){
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(200,200);
SerWrite("Jetzt gehts los\n\r",20);
}
}
}
ich schalte ihn ein und er tut nix anderes als das er stoppt, rückwärts fährt, dreht und von vorne. das zeigt er mir auch im hyper terminal durch SerWrtie.
er fährt nicht einmal vorwärts. im forum habe ich schon gelesen das es wohl am kondensator liegt das de rnoch geladen sei. da witzige ist wenn ich die einzelnen Taster abfrage und bei druck jeweils nur mit einer LED belege funktioniert alles wunderbar, ich drück den taster, die LED geht an und danach wieder aus. wieso geht das hier nicht? ;(
habe mir die Werte der Taster ausgeben lassen und sie zeigen folgendes an:
1,2,4,8,16,32
summe = 63
das stimmt sobald ich alle auf einmal drücke zeigt er auch 63 an und alle 20sek. vlt mal ein 64.
kann mir irgendjemand helfen?
mfg Adler