PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PollSwitch wird nicht zurückgesetzt



pinsel120866
14.01.2008, 17:20
Hallo,

ich habe folgenden Code:


#include "asuro.h"
#define STOP 100

int main(void)
{

while(1)
{

unsigned int lineData[2];
unsigned char running = TRUE;
unsigned char i;
unsigned char taste=0;

Init();
FrontLED(ON);
Sleep(255);
LineData(lineData);

for(i=0;i<10;i++)
{
PollSwitch();
}
t=PollSwitch();

if ((lineData[0] > STOP) && (lineData[1] > STOP) && (t==0))
{
MotorDir(FWD,FWD);
MotorSpeed(140,150);

for(i=0;i<10;i++)
{
PollSwitch();
}

}
else
{
MotorSpeed(0,0);
BackLED(ON,ON);
Sleep(100);
for(i=0; i<210; i++)
{
MotorDir(RWD,RWD);
MotorSpeed(130,130);
Sleep(100);
}
MotorSpeed(0,0);

for(i=0; i<140; i++)
{
MotorDir(FWD,RWD);
MotorSpeed(140,140);
Sleep(100);
}
BackLED(OFF,OFF);
}

Sleep(100);
}
return 0;
}


Mein Asuro verhält sich aber so als wäre ein Taster betätigt worden. Was ist falsch?

sloti
14.01.2008, 17:34
Hi pinsel,

ich denke dein Problem liegt an den Linien werten, da 100 unter normalbedingungen eigentlich nur erreicht wird, wenn du mit ner Lampe draufleuchtest. Hast du dir deine Werte mal angeschaut, denn wenn du die Sensoren nicht getunt hast, dann solltest du eigentlich werte über weißem Papier von 50-70 vielleicht mal 80 erhalten, aber 100 sind da recht abwegig.

mfg
Erik

pinsel120866
14.01.2008, 19:00
Hallo sloti,

kannst du mir sagen, wie ich die Linensensorwerte messen kann?

sloti
14.01.2008, 21:07
Hi Pinsel,

Das ist eigentlich ganz simpel. du musst allerdings die Lib version 2.6 benutzen (glaub ich zumindest kann sein, dass es die Funktion printint schon vorher gab). Ein \t in dem Code bedeutet ein tab zwischen den Werten ein \n bedeutet neue Zeile und ein \r bedeutet zum Zeilenanfang zurück.

#include "asuro.h"


int main(void)
{
unsigned int data[2];

Init();

FrontLED(ON);

while (1)
{
LineData(data);
PrintInt(data[0]);
SerWrite("\t",1);
PrintInt(data[1]);
SerWrite("\n\r",2);
}

return 0;
}

mfg
Erik

Hansi41
14.01.2008, 21:13
Hallo,
ich schätze auch das dies an deinen Linienwerten liegt. Ich hatte selbiges Problem. Versuchs mal mit 40 oder 50.

pinsel120866
15.01.2008, 07:32
Morgen,

danke für die Tipps. Das Messprogramm hat Werte zwischen 28 und 37 (wusste nicht dass es hier soooo dunkel ist :-)) ausgegeben. Damit hat es bei mir mit STOP=27 funktioniert. Die PollSwitch Funktion war's nicht.

sloti
15.01.2008, 13:06
Das Messprogramm hat Werte zwischen 28 und 37 (wusste nicht dass es hier soooo dunkel ist :-)) ausgegeben.

Das ist aber arg wenig. Hast du die Liniensensoren+ LED direkt an die Platine gelötet oder haste die ein wenig abstehen lassen?

mfg
Erik

pinsel120866
15.01.2008, 13:46
Das kommt vermutlich daher, weil mein CD-Spindelgehäuse einiges an Schatten macht. Ausserdem sind meine LEDs nur gesteckt, wegen dem Umbau für die US-Erweiterungsplatine.