so, jetzt habe ich ein paar daten zusammen. mit diesem programm aus dem asuro band II habe ich die daten aufgenommen:
so sehen die daten der 22er scheiben aus:Code://* -------- Programm zum Loggen der Odometriedaten ----*/ #include "asuro.h" #include "inka.h" #include <string.h> #include<stdio.h> int main(void) { unsigned int data[200][2]; char c[12]; int i; Init(); WaitforStart(); //motoren vorwärts MotorDir(FWD,FWD); MotorSpeed(160,160); //warten bis motoren drehzahl erreicht haben Msleep (1000); //odo-werte einlesen for (i=0; i<200;i++) { OdometrieData(data[i]); } //motoren stop MotorSpeed(0,0); //formatiert ausgabe odo-werte for (i=0;i<200;i++){ sprintf(c,"%4d\t%4d\n\r",data[i][0],data[i][1]); SerWrite(c,12); } while(1); return 0; }
das ist der letzter code des versuches mit go und turn. Mit der 3fachen ausführung des turn erreiche ich fast 90°, wie ihr sehen könnt, experimentiere ich weiterCode:35 22 25 21 31 26 20 24 19 31 20 32 21 71 28 407 29 617 43 643 313 624 599 501 646 273 644 43 485 28 125 37 33 22 24 23 27 21 20 22 31 27 21 25 27 31 28 32 32 86 111 438 478 628 626 649 635 626 637 490 475 237 135 39 32 28 26 33 27 22 21 23 25 22 21 22 35 29 28 28 39 39 224 222 546 586 631 673 632 648 530 500 194 252 41 38 26 27 30 28 22 21 21 31 26 21 26 30 35 25 58 27 428 35 600 62 632 409 626 637 518 659 198 549 32 351 31 66 24 30 27 29 24 22 31 26 28 21 34 33 172 22 500 31 634 26 647 29 588 39 311 164 39 501 28 641 24 655 26 596 21 470 27 230 24 36 35 32 36 25 244 27 536 21 652 30 653 22 633 29 427 25 48 28 39 38 24 174 23 536 20 643 20 658 25 639 24 564 31 366 38 86 301 34 575 25 669 27 656 21 492 34 82 23 29 31 29 28 22 33 30 102 20 476 28 628 24 623 26 493 36 227 128 39 496 28 642 24 647 26 518 21 167 26 32 23 25 33 25 26 20 38 24 48 20 401 35 625 28 634 46 507 314 280 586 50 638 29 601 31 330 23 34 21 31 24 24 21 23 27 21 24 20 36 25 32 24 71 34 386 48 630 437 685 634 696 597 645 303 503 34 289 30 38 22 31 24 25 18 22 24 24 20 20 23 26 26 22 36 30 250 28 571 39 625 76 417 452 44 641 28 655 31 578 20 400 20 161 22 32 20 31 27 24 26 22 38 24 165 22 547 27 653 24 649 32 455 34 57 212 33 535 24 648 27 646 20 587 27 423 22 160 24 42 30 27 34 29 217 21 561 20 648 24 495 22 93 29 28 27 24 37 24 70 19 447 23 597![]()
Code:#include "asuro.h" #include "inka.h" int i; int main (void) { Init(); WaitforStart(); EncoderInit (); for (i = 0; i < 4; i++) { StatusLED(YELLOW); Go(100,150); StatusLED(GREEN); Msleep(500); Turn(75,150); Turn(75,150); Turn(75,150); StatusLED(RED); Msleep(500); } return 0; }*.lss habe ich leider nicht gefunden, arbeite mit avr-studio: eep, elf, hex, o, o.d, zumindest i projektverzeichnis...Kannst du mal von deinem letzten Programm (von hier) mal die Datei *.lss posten.
Darin ist dann das komplette Programm in Assembler zu finden. Ich will mal sehen, was für eine Mathematik (char, int, float) in der Funktion Turn() und auch Go() vom Compiler eingesetzt werden. Hier scheint es ja irgendwie Unterschiede zu geben.
ansonsten, rote zahnräder habe ich genug, wer möchte ein paar? ein problem wird die lichtschranke...![]()







Zitieren

Lesezeichen