- LiTime Speicher und Akkus         
Ergebnis 1 bis 5 von 5

Thema: Kann mir den Code jm. erklären??

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Beiträge
    10

    Kann mir den Code jm. erklären??

    Anzeige

    Praxistest und DIY Projekte
    Hallo!
    Im Tut der Nibobee(http://download.nicai-systems.com/ni...e_20091123.pdf)
    gibt es das Programm PINGPONG das mich als Einsteiger sehr überfordert!
    Kann mir den Code jm. erklären??

    DANKEE!!!!!!!!!!!!

    Code:
    #include <nibobee/iodefs.h>
    #include <nibobee/led.h>
    #include <nibobee/sens.h>
    #include <nibobee/delay.h>
    
    enum {
    STATE_IDLE = 0,
    STATE_PULL0 = 1,
    STATE_PULL1 = 2,
    STATE_KICK = 3,
    STATE_PUSH = 4
    };
    uint8_t calculate_state(uint8_t state, int8_t sensor) {
    switch (state) {
    case STATE_PUSH:
    case STATE_IDLE:
    if (sensor==-1) {
    return STATE_PULL0;
    } else if (sensor==+1) {
    return STATE_PUSH;
    }
    return STATE_IDLE;
    case STATE_PULL0:
    if (sensor==-1) {
    return STATE_PULL1;
    } else if (sensor==+1) {
    return STATE_PUSH;
    }
    return STATE_IDLE;
    case STATE_PULL1:
    if (sensor==-1) {
    return STATE_PULL1;
    }
    return STATE_KICK;
    case STATE_KICK:
    return STATE_IDLE;
    
    }
    return state;
    }
    int main() {
    led_init();
    sens_init();
    uint8_t ball_pos = 3;
    int8_t direction = -1;
    uint8_t state_l = STATE_IDLE;
    uint8_t state_r = STATE_IDLE;
    while(1==1) {
    delay(100);
    state_l = calculate_state(state_l, sens_getLeft());
    if( ((state_l==STATE_PUSH) && (ball_pos==1)) ||
    ((state_l==STATE_KICK) && (ball_pos==0)) ) {
    direction = +1;
    }
    state_r = calculate_state(state_r, sens_getRight());
    if( ((state_r==STATE_PUSH) && (ball_pos==2)) ||
    ((state_r==STATE_KICK) && (ball_pos==3)) ) {
    direction = -1;
    }
    if(direction==+1) {
    if(ball_pos<3) {
    ball_pos++;
    } else {
    direction=0;
    }
    }
    if(direction==-1) {
    if(ball_pos>0) {
    ball_pos--;
    } else {
    direction=0;
    }
    }
    led_set(LED_L_YE, ball_pos==0);
    led_set(LED_L_RD, ball_pos==1);
    led_set(LED_R_RD, ball_pos==2);
    led_set(LED_R_YE, ball_pos==3);
    }
    return 0;
    }
    (Code auch auf der Seite 27 des Nibobee tutorials!(http://download.nicai-systems.com/ni...e_20091123.pdf)


    Ich hab den Thread-Titel geändert und dir zwei Code-Tags aus meiner privaten Schatulle spendiert. (PicNick, Mod)

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    29
    Beiträge
    656
    Ich glaube niemand hat Lust und Zeit dir das Programm zu erklären, wie wäre es, wenn du erst mal vorne anfängst und dann, wenn du so weit bist, versuchst, das Programm selbst zu verstehen?
    Zu einzelnen Punkten im Programm könntest du dann Fragen stellen.
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Beiträge
    10
    schau dir mal das tut an ich habe das von vorne gemacht und plötzlich kommt da son monster programm wie soll man das verstehen

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Nürnberg
    Alter
    40
    Beiträge
    51
    Hi!
    Also ich habe mal einen Blick in das erste PDF geworfen.
    Ab Abschnitt 7 ("Ein erstes Testprogramm") erhält man Programmbeispiele mit anschliessender, ausführlicher Erklärung. Darin werden langfristig alle Befehle behandelt wie du sie in deinem Quellcode wiederfindest.
    Wenn du alle Beispiele durch hast dürftest du deinen geposteten Quellcode ganz sicher verstehen.

    Gruß,
    und noch viel Erfolg!

    PS: Bitte lies dir die Forenregeln durch. Du kannst mit deutlich mehr Reaktionen rechnen wenn du dich danach richtest.
    z.B. sind Titel wie "HILFE!" keine ordentlichen Titel und viele Leute öffnen diese Themen erst garnicht.
    Quellcode wird in eine Box platziert usw...

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2010
    Beiträge
    10
    oh tut mir leid..

    könntest du dir mal bitte alles überfliegen bis zum Ping Pong Programm, dann wirst du sehen was ich meine..

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus