PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro zu langsam?



homergun
18.02.2008, 17:26
Hi,
ich habe folgendes Problem:

i=0;
do {
j=i++;
BackLED(ON,OFF);
for(k=0;k<20;k++)
Sleep(255);
BackLED(OFF,ON);
for(k=0;k<20;k++)
Sleep(255);}
while(j<=20);
Der Programmteil lässt die BackLEDs abwechseld aufblinken. Für den gesamten Durchlauf dürfte Asuro nicht länger als 40 x 354µs x 20 = 0.28s brauchen. Jedoch braucht er dafür stolze 3s. Was ist da falsch?

radbruch
18.02.2008, 17:57
Hallo

Ich vermute, du verwendest die orginale CD-Library mit dem 72kHz-Timer für Sleep(). Dann sind sleep(72) genau 1 ms und die Rechnung sieht so aus:

21(j)*40(k)*255(sleep)/72(ms)=2975ms

Also passen die 3 Sekunden genau. Dein Rechenfehler: 255/72=3541us oder 3,54ms. Außerdem wird j 21x ausgeführt wegen <=

Gruß

mic


#include "asuro.h"

uint8_t i, j, k;

int main(void){
i=0;
do{
j=i++;
BackLED(ON,OFF);
for(k=0;k<20;k++) Sleep(255);
BackLED(OFF,ON);
for(k=0;k<20;k++) Sleep(255);
}while(j<=20);
while(1);
return 0;
}

Soweit ich das überblicke werden die beiden k-Schleifen sogar 22x ausgeführt, denn erst wenn j=21 ist wird die do-while-Schleife verlassen.

homergun
19.02.2008, 23:33
danke an Radbruch, das war wohl der Fehler.
Jetzt habe ich das ein kleines Bisschen geändert und kann endlich ein RC-Servo ansteuern. Das Problem ist jetzt nur noch, dass ich noch nicht weiß wozu mir das nützt.

radbruch
20.02.2008, 00:09
Hallo

Keine Ahnung zu was das nütze ist...

http://i.ytimg.com/vi/39tOx0IxQ40/default.jpg (http://www.youtube.com/watch?v=39tOx0IxQ40) http://i.ytimg.com/vi/wIwsT-f-TYU/2.jpg (http://www.youtube.com/watch?v=wIwsT-f-TYU) http://i.ytimg.com/vi/jfNy6m57-q0/2.jpg (http://www.youtube.com/watch?v=jfNy6m57-q0) http://i.ytimg.com/vi/SZ3aWmsqfFQ/3.jpg (http://www.youtube.com/watch?v=SZ3aWmsqfFQ)

http://www.youtube.com/watch?v=39tOx0IxQ40
http://www.youtube.com/watch?v=wIwsT-f-TYU
http://www.youtube.com/watch?v=jfNy6m57-q0
http://www.youtube.com/watch?v=SZ3aWmsqfFQ

http://i.ytimg.com/vi/j334i_YCwoI/2.jpg (http://www.youtube.com/watch?v=j334i_YCwoI) http://i.ytimg.com/vi/dHDhgpYCXm0/3.jpg (http://www.youtube.com/watch?v=dHDhgpYCXm0) http://i.ytimg.com/vi/jLvOpHuRhxI/3.jpg (http://www.youtube.com/watch?v=jLvOpHuRhxI) ..... *lol*

http://www.youtube.com/watch?v=j334i_YCwoI
http://www.youtube.com/watch?v=dHDhgpYCXm0
http://www.youtube.com/watch?v=jLvOpHuRhxI


Gruß

mic

JensK
20.02.2008, 19:46
mhh find davon nix richtig sinnlos^^ sinnloser ist, das das hier in dem thread drinne steht^^ :)
das erste mit dem servo is evtl das sinnloseste... den dominoaufbarp6 find ich davon aber am besten^^ und den kippenden watschelnden asuro find ich niedlich^^ und der zeichnende is nich sooo mein fall... aber eigentlich haste recht alles recht sinnlos...
öhm welcher user hier im forum war das nochmal :P?

radbruch
20.02.2008, 20:24
Hallo

Servos sind einfach ein geniales Spielzeug. Billig und sehr einfach anzusteuert (nur 1 Pin!) als Antrieb für alles mögliche. Meine ersten Versuche mit dem asuro haben sich mit der Ankunft meines RP6 überschnitten, sonst hätte ich mich wohl intensiver auf eine Anwendung mit dem asuro konzentriert. Mit dem asuro wären wohl die meisten meiner Spielereien auch möglich, aber der RP6 ist einfach die bequemere Bastelplattform.


das erste mit dem servo is evtl das sinnloseste
Schon klar dass das Servo hier zusätzlich als Sensor dient und damit das Anschlagen des Stabes (ein chinesisches Essbesteck) erkannt wird? (Link (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=37927))

Gruß

mic