Skocz do zawartości

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


Treker

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:(.

Link do komentarza
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?😃

Link do komentarza
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

Link do komentarza
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);


}
}
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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

Link do komentarza
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 🙂

Link do komentarza
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

Link do komentarza
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.

Link do komentarza
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.

Link do komentarza
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.

Link do komentarza
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.

Link do komentarza
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

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.