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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.