Hirdetés

Új hozzászólás Aktív témák

  • gaben

    aktív tag

    Sziasztok!
    Van egy kis problémám C-ben. Van egy eljásárom fordul(...) néven. A probléma az ,hogy mikor az eljárás lefut, akkor a "bal" paraméter értéke 0, a main()-ben amikor beállítom az értéke 1-re, utána pedig mikor kiíratom ,akkor megvan az 1. De amikor az eljárás hívódik ott 0 érékkel kapja meg ezt a paramétert. Miért? Nem értem...Így az if(...) ágba sem lép bele.
    Bemásolok egy kódrészletet(cska a lényeg):

    #include <math.h>
    #include <stdio.h>

    int bal=0;
    int jobb=0;
    int fordulasVolt=0;

    void balBeAllit(int x){
    bal=x;

    }

    void fordul(int fordulasVolt,int jobb,int bal,DeviceTag kerek2, DeviceTag kerek1){

    printf("\nFORDULASBA LEPETT A VEZERLES");
    double start2=kerek2Start(kerek2);
    printf("\nKerek2 start erteke: %g", start2);

    printf("\nA BAL erteke: %d",bal); //bal értéke miért 0?
    if(bal==1 && (servo_get_position(kerek2) >=start2-fordul90)) {
    printf("A feltételben benen vagyok");
    servo_set_position(kerek1,INFINITY);
    servo_set_position(kerek2,-INFINITY);
    fordulasVolt=1; //beállítása a változónak
    balBeAllit(0); //bal értékének nullázása
    }

    else
    fordulasVolt=0;

    }

    int main(){
    while(1){
    if((gpsEllenoriz(gps).Z>=1.4 && gpsEllenoriz(gps).Z<=1.45 ) && (gpsEllenoriz(gps).X>=-9.0 && gpsEllenoriz(gps).X<=-8.9)){
    balBeAllit(1);
    printf("\nBal erteke gps-nel: %d",bal); //itt bal értéke 1
    fordul(fordulasVolt,bal,jobb,kerek2,kerek1); //eljárás hívása

    printf("\nBal erteke gps-nel: %d",bal);

    }
    }

    return 0;
    }

    Köszönöm a segítséget.

Új hozzászólás Aktív témák