Skocz do zawartości

Program do robota mini sumo


Aramis

Pomocna odpowiedź

Witam,
mam mały problem ze swoim programem do robota minisumo. Wyświetla się taki błąd:

"make.exe" all
avr-gcc -O2 -mmcu=atmega32 -c basic.c -o basic.o
basic.c: In function 'motor1_forward':
basic.c:98: error: 'motor1_power_config' undeclared (first use in this function)
basic.c:98: error: (Each undeclared identifier is reported only once
basic.c:98: error: for each function it appears in.)
basic.c: In function 'motor1_backward':
basic.c:110: error: 'motor1_power_config' undeclared (first use in this function)
basic.c: In function 'motor2_forward':
basic.c:122: error: 'motor1_power_config' undeclared (first use in this function)
basic.c: In function 'motor2_backward':
basic.c:134: error: 'motor1_power_config' undeclared (first use in this function)
make.exe: *** [basic.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:03

w podstawowym programie basic.c dopisałem funkcję (napisałem ją po inicjalizacji)

DDRC|=0x0f; //ustawienie pinów PC0 - PC3 jako wyjścia

void motor1_forward()
    {
    //najpierw dla pewności wyłączamy silnik, żeby nie miał zwarcia
     motor1_stop(); //lub po prostu OCR1B = 0; jak wolisz
    PORTC&=~(1<<0); //wyłączenie pinów odpowiedzialnych na kierunek
    PORTC&=~(1<<2);
    wait_ms(1); //czekamy 1ms na wyłączenie tranzystorów
    //teraz ustalenie kierunku pracy i szybkości działania:
    PORTC|=(1<<1); // PC0=1, PC2=0
    OCR1B = motor1_power_config; //włączamy PWM
    }

void motor1_backward()
    {
    //najpierw dla pewności wyłączamy silnik, żeby nie miał zwarcia
     motor1_stop(); //lub po prostu OCR1B = 0; jak wolisz
    PORTC&=~(1<<0); //wyłączenie pinów odpowiedzialnych na kierunek
    PORTC&=~(1<<2);
   wait_ms(1); //czekamy 1ms na wyłączenie tranzystorów
    //teraz ustalenie kierunku pracy i szybkości działania:
    PORTC|=(1<<2); // PC0=0, PC2=1
   OCR1B = motor1_power_config; //włączamy PWM
    }

void motor2_forward()
    {
    //najpierw dla pewności wyłączamy silnik, żeby nie miał zwarcia
     motor1_stop(); //lub po prostu OCR1B = 0; jak wolisz
    PORTC&=~(1<<1); //wyłączenie pinów odpowiedzialnych na kierunek
    PORTC&=~(1<<3);
    wait_ms(1); //czekamy 1ms na wyłączenie tranzystorów
    //teraz ustalenie kierunku pracy i szybkości działania:
    PORTC|=(1<<1); // PC1=1, PC3=0
    OCR1B = motor1_power_config; //włączamy PWM
    }

void motor2_backward()
    {
    //najpierw dla pewności wyłączamy silnik, żeby nie miał zwarcia
     motor1_stop(); //lub po prostu OCR1B = 0; jak wolisz
    PORTC&=~(1<<0); //wyłączenie pinów odpowiedzialnych na kierunek
    PORTC&=~(1<<3);
    wait_ms(1); //czekamy 1ms na wyłączenie tranzystorów
    //teraz ustalenie kierunku pracy i szybkości działania:
    PORTC|=(1<<3); // PC0=1, PC3=1
   OCR1B = motor1_power_config; //włączamy PWM
    }

Co muszę poprawić, żeby program się skompilował?

(chciałem jeszcze zaznaczyć, że uczę się dopiero języka C)

__________

Komentarz dodany przez: Treker

Używaj tagów code.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.