Skocz do zawartości
Treker

Część 1-Kurs programowania uC AVR w C (WinAVR, Kurs AVR-GCC)

Pomocna odpowiedź

Niestety AVRstudio 5 także ma problemy z kompilacją🙁. Jak myślicie, dlaczego ten problem występuje? Instalowałem Winavr na 2 innych komputerach i skutek jest dokładnie taki sam. O co chodzi? Wszystko samo w sobie powinno być niewiarygodnie banalne, a tu takie komplikacje:(.

Udostępnij ten post


Link to post
Share on other sites

Sądze, że trafiłem do odpowiedniego miejsca... otóż złapałem ostatnio bakcyla (m.in dzięki forbotowi) i zabrałem się za projekt manipulatora. Na razie mam w planie zrobienie sterowania z Joysticka. Już nauczyłem się używać przerwań przede mną jeszcze UART. Do rzeczy... Posiadam sterownik serw Mini maestro i Atmege 8 i chciałbym się dowiedzieć na jakiej zasadzie działa zapamiętywanie ruchów. Już od kilku dni mnie to męczy i nie mam bladego pojęcia. Pomożecie?😃

Udostępnij ten post


Link to post
Share on other sites

Zakładam, że pobrałeś Maestro Pololu Control Center i udało Ci się "poruszać" serwami manualnie? Jeśli tak, to sprawa jest prosta - możesz to zrobić na 3 sposoby. Pierwszy, to ustawienie położenia serw, wybrania prędkości, przyspieszenia i wybranie przycisku "Save Frame" na dole. Potem znowu zmieniasz położenie, prędkość, przyspieszenie, klikasz "Save Frame" itd. Na końcu, w zakładce Sequence masz listę poszczególnych położeń, ustawiasz przerwę pomiędzy każdym z nich i klikasz po prostu "Play Sequence". Druga opcja, to pisanie skryptu w MPCC - na stronie Pololu jest spory tutorial na ten temat, pisze się go w ostatniej zakładce i wygląda np. tak:

begin
7000 5 servo
1000 delay
5000 5 servo
1000 delay
repeat 

Trzecia opcja to komunikacja z Twoją Atmegą8 przez UART - podpinasz masę, Rx, Tx i wysyłasz ATmegą odpowiednie komendy, szczegóły znajdziesz w dokumentacji Pololu. Jeśli grunt Ci się nie pali, to w przeciągu tygodnia-dwóch pojawi się pewnie mały artykulik na mikrokontroler.pl na ten temat 😉 Powodzenia

Udostępnij ten post


Link to post
Share on other sites

Napisałem prosty program aby sterowac serwem zeby w ustawial sie kolejno w dwoch pozycja po okreslonym czasie tylko ze przy podłaczeniu z mini maestro serwo jest martwe dosłownie. Co zrobiłem źle przy transmisji UART?

#include<avr/io.h>
#include<util/delay.h>

#define UART_BAUD 9600

static void UART_init()
{
UCSRB|=0x18;//ustawienie RXEN i TXEN
UCSRC|=0x8e;//ustawienie URSEL UMSEL UCSZ0 UCSZ1

UCSRC|=0x40;//ustawienie USBS
}

int main()
{
UART_init();
DDRB|=0xff;
while(UCSRA&0x20)//jeżeli UDR jest pusty
{
_delay_ms(1000);
UDR=0xaa;//Bajt startu
while(UCSRA&=~0x20);// oczekiwanie na wysłanie
UDR=0x0c;// Mini maestro 12
while(UCSRA &=(1<<TXC));
UDR=0x04;//Komenda ustaw pozycje
while(UCSRA &=(1<<TXC));
UDR=0x00;//kanał 0
while(UCSRA &=(1<<TXC));
UDR=0x70; // pozycja neutralna dla serwa
while(UCSRA &=(1<<TXC));
0UDR=0x2e;
while(UCSRA &=(1<<TXC));
_delay_ms(1000);
/*analogicznie druga część*/
UDR=0xaa;
while(UCSRA&=~0x20);
UDR=0x0c;
while(UCSRA&=~0x20);
UDR=0x04;
while(UCSRA&=~0x20);
UDR=0x00;
while(UCSRA&=~0x20);
UDR=0x40;
while(UCSRA&=~0x20);
UDR=0x2e;
while(UCSRA&=~0x20);
_delay_ms(1000);


}
}

Udostępnij ten post


Link to post
Share on other sites

Witam.

Mam otóż problem z zaprogramowaniem uC Atmega8/Atmega8A.

Posiadam programator firmy sibit w trybie stk500

Programator

Do rzeczy. Korzystając z programu Programmers Notepad staram się wgrać program z kursu

Kurs

Przy czym wyskakuje mi błąd:

> "make.exe" program

avrdude -p atmega8 -P com3 -c stk500v2 -U flash:w:led.hex

avrdude: stk500v2_command(): command failed

avrdude: stk500v2_command(): unknown status 0xc9

avrdude: stk500v2_program_enable(): cannot get connection status

avrdude: initialization failed, rc=-1

Double check connections and try again, or use -F to override

this check.

avrdude done. Thank you.

make.exe: *** [program] Error 1

> Process Exit Code: 2

> Time Taken: 00:03

Pierwsze co zrobiłem, to złapałem za myszkę i przeszukałem google znajdując odpowiedzi na możliwy powód mojego problemu.

Sprawdziłem czy poprawnie podłączyłem wyjścia z programatora, sam układ, ale nic to nie dało. Kupiłem atmege8A w razie gdyby ta pierwsza była trefna i nic.

Przejściówkę z programatora zrobiłem gold pinów, masę złączyłem w jedno.

Użyty zasilacz z odkurzacza 9v i 1A.

Napięcie stabilizowane ukł. 7805. Ta część działa, o czym mówi mi dobitnie dioda kontrolna.

Nawet AVR studio 4, wykazuje błąd przy sprawdzaniu sygnatury układu!

Edit:

Dla spokoju sumienia sprawdziłem napięcie między VCC a GND i wynbosi ono 5V, podobnie jest z RST.

Poniżej umieszczam zdjęcie płytki

1090396279_Zdjcie-0020.thumb.jpg.0236921b85216715e485459fd8e3e4b4.jpg

Udostępnij ten post


Link to post
Share on other sites

Jeśli wszystko jest robione zgodnie z instrukcją programatora, to napisz zapytanie do tamtej firmy - bo ewidentnie widać, że programator nie łączy się z komputerem.

Udostępnij ten post


Link to post
Share on other sites

Sam programator widać w menedżerze urządzeń.

Oczywiście że tak zrobię miałem, jednak nadzieje że problem będzie tkwił gdzie indziej.

Ponownie wgrałem firmware, gdyby okazało się że to z powodu złego wgrania.

Dzięki za odpowiedź.

Edit:

Problem rozwiązany 🙂

Udostępnij ten post


Link to post
Share on other sites

Fajny artykuł - dziękuję autorowi za staranne i ciekawe opracowanie 🙂

Osobiście trochę żałuję, że jest oparty o środowisko MS Windows, bo siedzę na ubuntu 🙁

Udostępnij ten post


Link to post
Share on other sites

Witam .

Wystąpił u mnie problem z zasilaniem. Gdy podłaczam styk VCC z programatora do płytki stykowej to układ ( dioda i stabilizator napięcia ) zaczyna sie grzać . sprawdziłem napięcie na diodzie i wynosi około 0.8 V czyli jest niepoprane . natomiast gdy odłącze VCC wszystko działą poprawnie.

Proszę o pomoc

Udostępnij ten post


Link to post
Share on other sites

Nie do końca zrozumiałem:

1) chcesz zasilać układ przez programator?

2) Stosujesz jakiś zasilacz?

Najlepiej by było jakbyś wstawił zdjęcie. Możliwości błędu masz mnóstwo: zwarcie, na odwrót podłączone zasilanie, źle połączone zasilanie. Ale nie mogę ci w żaden sposób pomóc, bo nawet nie napisałeś jaki masz programator.

Udostępnij ten post


Link to post
Share on other sites

Pozwole sobie odswiezyc temat, bo mam problem z zaprogramowaniem pierwszego uC. Makefile zrobiony bezblednie, programator jest widziany w systemie, a po kliknieciu Tools->Program wyrzuca błąd.

avrdude -p atmega16 -P usb -c usbasp -U flash:w:led.hex

avrdude: error: programm enable: target doesn't answer. 1

avrdude: initialization failed, rc=-1

Double check connections and try again, or use -F to override

this check.

Uklad jest robiony wedlug schematu z kursu, niczego od siebie nie dodawalem- zmienilem tylko Atmege z 8 na 16, ale piny oczywiscie podpinalem zgodnie z datasheetem do Atmegi16.

Sprawdzilem wszystkie polaczenia- tu problemu nie ma, tasmy od programatora tez sa podpiete prawidlowo, sprawdzalem wszystko po 3 razy. Co ciekawe, jezeli nie podepne programatora do ukladu miedzy pinami VCC i GND Atmegi mam 4.95V, po podpieciu spada do okolo 0.5V. Uklad zasilam z ladowarki od telefonu, 5V, 0.4A. Probowalem zasilac uklad przez programator, ale tu tez jest problem- dioda pokazujaca zasilanie programatora swieci tylko wtedy, jezeli podlacze go bez zworki POWER, po jej zalozeniu dioda gasnie. Czy caly problem to wina programatora? Atmege kupilem nowa, wiec zadnych fusebitow ustawionych nie ma.

Udostępnij ten post


Link to post
Share on other sites

Najprawdopodobniej masz zwarcie.

Jeżeli złożyłeś układ na stykówce, istnieje możliwość, że jakaś nóżka rezystora czy coś weszła za głęboko i od dołu robi zwarcie. Rzadko to się zdarza, no ale sprawdź czy u Ciebie tak się nie zrobiło, bo z zewnątrz w ogóle nie widać że coś jest nie tak. Proponuję zdjąć wszystko ze stykówki (pewnie niewiele elementów tam masz) i włożyć je jeszcze raz, starannie.

Udostępnij ten post


Link to post
Share on other sites

Podzialalo. wyciagnalem wszystkie elementy nie bedace kabelkami tak, zeby nie siegaly tak gleboko i poszlo. Dziekuje za szybka odpowiedz:)

Udostępnij ten post


Link to post
Share on other sites

Spoko 😉

Ale nim następnym razem, zanim zadasz pytanie, spójrz np. tutaj: https://www.forbot.pl/forum/topics20/dla-poczatkujacych-dlaczego-moj-robot-nie-dziala-podstawowe-problemy-i-sposoby-ich-rozwiazania-vt9099.htm#82227 ten artykuł miał za zadanie zlikwidować tego typu pytania.

Zobacz na przykład punkt 1.c) tego artykułu.

Może w wolnym czasie dopiszę tam coś na temat układów złożonych na płytkach stykowych.

Udostępnij ten post


Link to post
Share on other sites

witam

mam takie pytanie

jak uporać się z takim błędem zaznaczam że jestem początkujący i chciałem się podszkolić robiąc krok po kroku kurs AVR-GCC wkleiłem pierwszy program z kursu i mam taki błąd

Compiling C: led.c

avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./led.lst -std=gnu99 -MMD -MP -MF .dep/led.o.d led.c -o led.o

led.c:23: fatal error: opening dependency file .dep/led.o.d: No such file or directory

compilation terminated.

make.exe: *** [led.o] Error 1

> Process Exit Code: 2

> Time Taken: 00:01

Udostępnij ten post


Link to post
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!

Gość
Napisz odpowiedź...

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