Erst mal danke für das beseitigen der nervigen spamer!!

und ebenfalls ein riesen großes dankeschön für die zahlreichen beiträge von euch und die angebotene hife =)

Wir haben probleme von dem geposteten Code aus dem anderen. Er Funktioniert nicht bei uns es erscheinen nur viele fehler beim umwandeln in eine hex Datei.

Code:
/*/*Einstellungen um Asuro fit für die Barcode-Funktion zu machen.*/
/*Geschwindigkeit links/rechts definieren=>damit Asuro geradeausfährt*/
#define BC_SPEED 90
/*Hell/Dunkel Schwelle für Odometrie.
Linke Odometrie wird als Referenz verwendet*/
 
#define BC_OLSCHWELLE 600
#define BC_ORSCHWELLE 730
/*Hell/Dunkel Schwelle für Barcode*/
#define BC_LSCHWELLE 45


/*Einstellungen um das Barcode zu ändern.*/
/*ACHTUNG: Bei Veränderungen von BC_STRICH_ANZAHL müssen in der Funktion
2 Anpassungen vorgenommen werden! Näheres siehe in der Funktion!*/
/*Anzahl der Datenbits*/
#define BC_DATENBITS_ANZAHL 3
/*Anzahl der Striche(Startbit+Datenbits+Prüfbit inklusive Stoppbit)*/
#define BC_STRICH_ANZAHL 5
/*Wie oft pro Strich der Helligkeitswert gemessen werden soll
ACHTUNG: dafür muss die Strichbreite angepasst werden*/
#define BC_ABTASTUNGEN_PRO_STRICH 5
/*Um im bin_erg[] eine 1 auszulösen, müssen pro Strich mindestens
BC_ABTASTUNGEN_PRO_STRICH-2 Messwerte 1 sein. */
#define BC_LOGIKSCHWELLE 3
/*Anzahl der Werte im daten[] Array*/
#define BC_MAX_WERTE 55
/*Fehlercodes*/
#define BC_FEHLER_PARITY 255
#define BC_FEHLER_RICHTUNG 254

unsigned char fkt_barcode_lesen(void)
{
    unsigned int ldata[2]={0},odata[2]={0};
    unsigned int led_on[2]={0},led_off[2]={0};
    unsigned int links=0,rechts=0,ges=0;

    unsigned char flag_l=0,flag_r=0,n=0,startbit=0,summe=0,index=0,dez_erg=0,richtung=0;
    unsigned char odo_counter=0,counter_l=0,counter_r=0,speed_l=BC_SPEED,speed_r=BC_SPEED;
    unsigned char daten[BC_MAX_WERTE 55]={0},bin_erg[BC_STRICH_ANZAHL-1]={0};
    MotorDir(FWD,FWD);
    MotorSpeed(BC_SPEED 90,BC_SPEED 90);
    StatusLED(OFF);

    /*Wegstrecke(odocounter) ab Startbit messen*/
    while(odo_counter<BC_MAX_WERTE)
    {

        OdometrieData(odata);
        MotorSpeed(speed_l,speed_r);

        /*Bei jedem Tick daten[] Array auffüllen.*/
        if( (flag_l==0 && odata[0]>BC_OLSCHWELLE 600) ||
            (flag_l==1 && odata[0]<BC_OLSCHWELLE 600) )
        {
            counter_l++;
            FrontLED(ON);
            LineData(ldata);
            led_on[0]=ldata[0];
            led_on[1]=ldata[1];

            FrontLED(OFF);
            LineData(ldata);
            led_off[0]=ldata[0];
            led_off[1]=ldata[1];

            links=led_on[0]-led_off[0];
            rechts=led_on[1]-led_off[1];
            ges=(links+rechts)/2;

            if(ges<BC_LSCHWELLE 45)
            {
                daten[odo_counter]=1;
                if(startbit==0)
                {
                    StatusLED(GREEN);
                    startbit=1;
                }
            }

            if(flag_l==0)
                flag_l=1;

            else
                flag_l=0;


            if(startbit!=0)
            {
                odo_counter++;
            }
        }

        if( (flag_r==0 && odata[1]>BC_ORSCHWELLE 730) ||
            (flag_r==1 && odata[1]<BC_ORSCHWELLE 730) )
        {
            counter_r++;

            if(flag_r==0)
                flag_r=1;

            else
                flag_r=0;
        }

        if(Gettime()%75==0 && (counter_l>3 || counter_r>3) )
        {
            if(counter_l<counter_r)
            {
                speed_l=speed_l+1;
            }
            else if(counter_l>counter_r)
            {
                speed_l=speed_l-1;
            }
            if( (counter_l>35 || counter_r>35) && startbit==0)
                break;
        }


    }

    MotorDir(BREAK,BREAK);
    MotorSpeed(0,0);

    /*Binärzahl aufbauen + Prüfbit*/
     for(n=0;n<BC_MAX_WERTE;n++)
     {

        summe=summe+daten[n];

        /*Wenn BC_STRICH_ANZAHL verändert wird,
        muss hier ein entsprechender Eintrag erfolgen*/
        if((n+1)%BC_ABTASTUNGEN_PRO_STRICH==0)
        {
            if((n+1)==(BC_ABTASTUNGEN_PRO_STRICH*3)
                ||
                (n+1)==(BC_ABTASTUNGEN_PRO_STRICH*5)
                ||
                (n+1)==(BC_ABTASTUNGEN_PRO_STRICH*7)
                ||
                (n+1)==(BC_ABTASTUNGEN_PRO_STRICH*9))
            {
                if(summe>=BC_LOGIKSCHWELLE)
                    bin_erg[index]=1;
                else
                    bin_erg[index]=0;

                index++;

            }

        summe=0;
        }

     }

    /*Richtung erkennen*/
    /*Wenn BC_STRICH_ANZAHL verändert wird,
    muss hier der Faktor angepasst werden.*/
     summe=0;
     for(n=(BC_ABTASTUNGEN_PRO_STRICH*9);n<(BC_ABTASTUNGEN_PRO_STRICH*11);n++)
     {
         summe=summe+daten[n];
     }
     if(summe>=(BC_ABTASTUNGEN_PRO_STRICH*2-BC_LOGIKSCHWELLE 3))
        richtung=1;


    /*Binärzahl umwandeln in Dezimalzahl oder Fehlercode zurückgeben*/

    /*alles OK => Dezimalzahl zurückgeben*/
    if((bin_erg[0]+bin_erg[1]+bin_erg[2])%2!=bin_erg[3] && richtung==1)
        dez_erg=4*bin_erg[0]+2*bin_erg[1]+1*bin_erg[2];

    /*Fehlercode BC_FEHLER_RICHTUNG->falsche Richtung*/
    else if((bin_erg[0]+bin_erg[1]+bin_erg[2])%2!=bin_erg[3] && richtung==0)
        dez_erg=BC_FEHLER_RICHTUNG 254;

    /*Prüfbit falsch*/
    else
        dez_erg=BC_FEHLER_PARITY 255;


    StatusLED(OFF);

    return dez_erg;
}
schon im vorraus nochmals vielen dank !