HomeMade

Pełna wersja: Proszę o pomoc przy ATMEGA32
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4
Kolego sp4ejt, prawdopodobnym problemem przy kompilacji programu są polskie znaki lub spacje w ścieżce docelowej tegoż programu. Przykładowo: Jeżeli kod programu znajduje się w E:\Documents and Settings\Uzytkownik\Pulpit\Program - kompilacja w WinAVR nie powiedzie się (błąd "make.exe: *** No rule to make target"). Musisz przenieść kod programu do prostego folderu np. E:\Program. U mnie pojawił się ten sam błąd co u Ciebie więc to powinno pomóc.
Właśnie testowałem podobny wyświetlacz, miałem również sporo problemów przy kompilacji ale udało się je pokonać i uzyskałem format .hex. U mnie problem natomiast pojawia się prawdopodobnie w programie, niesprawnym wyświetlaczu lub w uszkodzonym AVR'ku gdyż na ekranie wyświetlają mi się tylko same czarne "kwadraciki" Big Grin
Panowie, jestem pół kroku do przodu. Ale najpierw postaram sie odpowiedzieć na niektóre pytania:
1. Mam płytkę z tej strony: http://www.microsense.com.pl/index.php/Z...16-32.html
2. Mam przykładowe programy.
3. Używam puki co AVR Studio 4 (bo zainstalowanie AVR Studio 5 - jest upierdliwe na maxa i nie udało mi sie go uruchomić, ugrzęzłem bo SP3 nie chce mi sie zainstalować na kompie)

Chciałem odpalić jakikolwiek obsługujący LCD - nie zadziałał, więc chciałem z internetu spróbować ściągnąć bo pomyślałem że te przykłady to lipa jakaś.
Dokopałem sie do przyczyny - mój komilator ma w nosie wpisaną przeze mnie częstotliwość generatora (16MHz) kompiluje jakby było ciągle domyślne 1MHz. Sprawdziłem napisanym szybko programikiem, który miał migać diodą co sekunde. Wszystko zatem odbywa się 16 razy szybciej a LCD nie potrafi tak szybko "słuchać". Czyli muszę tylko naumiec się sposobu jak przekonać ATMEGE że ma 16 a nie 1 MHz. Na razie mi sie to nie udało.

do kolegi SP5FCS: a czy przypadkiem _delay_ms(1000) to nie za duża wartość ? z moich doświadczeń czy wpiszę 500 czy 10000 to nie uzyskuję żadnej różnicy w opóźnieniu. Żeby zrobić sekundde opóźnienia musiałem zastosować pęltę co uważam za trochę upierdliwe w języku wysokiego poziomu. Ale i tak jest fajnie. Wciąga mnie to jak narazie niesamowicie. Dzięki Adamie, twoje uwagi były trafne
Marcin,
nastawa zegara w kompilatorze to tylko informacja jak ma sobie przeliczać opóźnienia, kompilator nie ustawia zegara procesora, to trzeba zrobić programatorem. Oprócz AVRstudio, WinAVR, musisz skonfigurować jeszcze programator.
Fabrycznie nowy procesor AT32mega ma włączonego JTAGa i wewnętrzny generator RC.

W sofcie programatora musisz wyłączyć JTAGa bo będzie Ci blokował piny na porcie oraz koniecznie musisz przestawić generator na zewnętrzny kwarc (bity CKSEL). Może to jest główna przyczyna Twoich problemów.

Napisz, gdzie ustawiasz zegar procesora, czy edytowałeś makefile, czy ustawiałeś CKSEL dla programatora ?

The functions are:
void delay_us(unsigned int n)
void delay_ms(unsigned int n)


W moim kompilatorze wartość może być typu int, wiec powinno być dobrze.
układ na 100% chodzi na 16MHz bo żeby uzyskać prawidłowe opóźnienie muszę poprostu podaj je 16x większe. Programatorem jest układ FT232RL, a to jest chyba tylko przejściówka z USB na port Serial(COM). Pewnie mi powiesz, że w takim razie muszę zdobyć porządny programator Sad
(29-08-2011 16:48)sp5fcs napisał(a): [ -> ]The functions are:
void delay_us(unsigned int n)
void delay_ms(unsigned int n)


W moim kompilatorze wartość może być typu int, wiec powinno być dobrze.
Adam, zobacz to (piąty post od dołu):
http://www.elektroda.pl/rtvforum/topic1270597.html
ja nie sprawdzałem dokładnie tej max granicy opóźnienia ale zgodziłbym się z tym kolegą o nicku ostry.... ktos tam.
U mnie własnie tak było że jak zmieniałem wartość delay_ms_ z 10 na 100 czy z 50 na 500 to była różnica a z 500 na 5000 już nie było żadnej. Ale jestem jeszcze zupełnie zielony więc mogę nie wiedziec jak to zmienić żeby reagowało na większe wartości (oczywiście sam komplitator nie marudzi wcale i łyka kod jak należy)
Jeszce nie oglądałem dokumentacji i przykładów - pobierają się.. nie wykluczone że masz BOOTLOADER... a nawet jak nie masz - to polecam od tego zacząc - BOOTLOADER ..... i sie nie myliłem - przeczytaj 12 strone MANUALA
http://www.microsense.pl/allegro/EvB_ATm...anuals.pdf

:-) także podejrzewam że zacząłeś zabawe bez czytania instrukcji ... :-)




co do FT232 - tez można go użyć jak programatora - wymaga użycia "zaczarowanego" programu http://www.elektroda.pl/rtvforum/topic2070896.html ale z tego co pamiętam to chyba płatny...
Marcin,
wszystko jest w opisach funkcji lub necie, trzeba tylko trochę poszukać i jasno sprecyzować problem.
Trzeba czytać opisy funkcji i komentarze w plikach nagłówkowych.

ograniczenia delay_ms() dla kompilatora GCC

W kompilatorze GCC max. to: 262,14ms / F_CPU [MHz]
Trzeba podłączyć inny plik z funkcjami delay
strona 175 cytowanego podręcznika:

#include <util/delay.h>
delay_ms(1000);



Ja kompiluję programy C wersją demo CodeVision i chodzi nawet delay_ms(5000) przy zegarze 48Mhz, to jedna z różnic pomiędzy GCC a CV.
rozumiem że bootloader emuluje/zastepuje programator, dobrze myslę ? na razie nie mam programatora a nie chcę przerabiać płytki więc pewnie zakupie jakąś sztukę. Dzięki SP3SWJ. Ja czytałem tę instrukcję tylko jej nie zrozumiałem Smile Jestem zupełnie zielony jeśli chodzi o cyfrówkę poza tym że kiedyś jako 18 latek zbudowałem czestościomierz od podstaw.

Adamie, tylko bez takich Wink ja wiem że wszystko jest w necie, ale pisząc tu zyskałem chyba na czasie. Daliście mi dobry trop i jakoś została postawiona diagnoza. W opisie było, że płytka pozwala na programowanie więc kpując myślałem że jest na niej programator a nie coś co go udaje - za to nie możecie obwiniac zielonego w tym temacie Smile Myslę że jak ja sam będe szukał tylko w opisach i jednocześnie NIEkorzystał z waszej pomocy to będę robił postępy w zniechęcającym mnie tępie - wiesz pewnie, że człowiek jest z natury leniwy
Ja wam bardzo dziękuję za pomoc i jak dla mnie forum .... a raczej ludzie z forum spisali się na medal.

To tyle wazeliniarstwa.
Poprawcie mnie jeśli sie myle ... Nic z tego abym uzyskał prawidłowe przeliczanie delaya bez programatora ? Bo jeśli tak ide pisać inicjalizację wyświetlacza z 16x większymi opóźnieniami.
Więc teraz po kolei :-) i na powaażnie

1. przeczytaj jeszcze raz instrukcję - jak czegoś z niej nie kumasz - PYTAJ - podaj stronę i co nie "tego"

2. programator MASZ :-) dobry STK500 "samoprogramujący scalaka" nie kombinuj nie kupij kolejnych zabawek które moga ( naprawdę) ci sprawic problemy... pierwsze kontakty z programatorami sa ciężkie...

3. bootloader jest najlepszym i bezpiecznym rozwiązaniem !! jeszce nie doczytałem ... ale on zapewni ci ochoronę przed pokręceniem FUSAMI

4. skoro masz bootloader juz wgrany znaczy FUSE napewno masz dobrze... zapomnij co to jest FUSE

... zacznij najpoier tesotwac programy opryginalne ...:-)
(29-08-2011 20:43)sp4ejt napisał(a): [ -> ]Adamie, tylko bez takich Wink ja wiem że wszystko jest w necie, ale pisząc tu zyskałem chyba na czasie.

Marcinie, w mim stwierdzeniu nie ma żadnej złośliwości, to tylko praktyczna rada. Po 30 latach "rzeźbienia" w assemblerze też dałem się namówić na pisanie w tym Cie-kawym języku i dobrze znam to uczucie.
Na początku musimy strasznie dużo czytać ponieważ wszystko jest nowe. Bardzo dużo pytań już zadano i są na nie gotowe odpowiedzi, sam się o tym przekonałem. Wspomniałem o necie bo tam grono znawców tematu jest zdecydowanie większe niż na naszym forum.

Jeśli procesor się programuje to po co Ci inny programator ??
Powodzenia w poznawaniu tajników języka C, Adam.
Program LCD_clock załączony do płytki uruchomieniowej nie trybi ani inny.
hex-y już sa porobione więc nie muszę nawet kompilować tylko wgrać i powinno byc git.
Pójdę chociaz przekonwertuję te opóźnienia x16 i zobacze czy wyświetlacz odpali
Stron: 1 2 3 4
Przekierowanie