AVR? - w czym pisac programy?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Thomasz
-
Posty: 44
Rejestracja: 29 wrz 2006, 15:07
Lokalizacja: jestem?

AVR? - w czym pisac programy?

Post autor: Thomasz » 05 kwie 2008, 10:42

Witam,
ostatnio zakupiłem ZL2PRG (programator ISP dla AVR firmy Atmel) po dorobieniu odpowiedniej przystawki udało mi sie po raz pierwszy przez PonyPROG przerzucić program na procek (Attiny12) i wszystko działa :mrgreen: . Tak mnie to jakoś wkręciło ze chciałbym sam napisać jakiś programik i sie tym "bawić", tylko ze nie wiem za bardzo jak zacząć, w czym sie pisze takie programy, w jakim języku (by był dość prosty a praktyczny) i w jakim programie albo w czym? Szukałem w googlach, ale nie bardzo tam było.
Dajcie jakaś skazówkę bym mógł iść na przód :razz:
Bardzo bym prosił by mi ktoś pomógł :smile:
Ostatnio zmieniony 30 sie 2008, 15:48 przez Thomasz, łącznie zmieniany 1 raz.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 05 kwie 2008, 11:03

Możesz pisac w BASCOMIE na przykład, do wyboru jest też C i asembler a z książek, to Mikrokontrolery dla początkujących Piotra Góreckiego albo Programowanie mikrokontrolerów AVR w języku BASCOM Marcina Wiązani

I to na początek chyba tyle ;) Dodatkowo jeszcze niedawno w EdW był kurs C nie wiem jak z jego wydaniem w wersji książkowej, które chyba jeszcze się nie ukazało...

ZbeeGin

Post autor: ZbeeGin » 05 kwie 2008, 16:25

Każdy język po bliższym poznaniu jest prosty.

Wspomniany już BASCOM BASIC/BASCOM AVR - szybko się pisze gotowe porgramy, przejrzysta (w 95%) składnia języka, niestety programy są dość wolne i nieefektywne (zajmują zbyt dużo w stosunku do pełnionych funkcji).

AVRGCC/WinAVR - implementacja C dla AVR - nieco trudniejszy, szybkość tworzenia gotowych programów jest średnia, nieco "zakręcona" składnia, programy są szybkie i bardzo efektywne.

Asembler/AVRStudio - jezyk maszynowy - dość trudny, gotowe programy pisze się dość wolno, składnia bardzo przejrzysta (1 instrukcja - 1 działanie), najefektywniejsze programy i szybkość działania bardzo duża - Ty decydujesz co i jak a nie inaczej.

___________

Można zrobić tak: Nauczyć się BASCOM-a by mieć pojęcie jak co działa, potem skierować swe kroki w kierunku AVRGCC i równolegle poznawać Asembler, który nawet w pierwszych dwóch językach się czasami przydaje.

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 05 kwie 2008, 20:06

ZbeeGin pisze:(...)jezyk maszynowy - dość trudny(...)
To raczej kwestia gustu. W przeciwieństwie do ASM język C jest dla mnie trudny i 'dziwny'.
Najlepiej samemu sprawdzić i ocenić, który język najbardziej nam odpowiada.

Ja polecam na początek Bascom, aby zobaczyć z czym to się je. Po opanowaniu podstaw i pogłębieniu wiedzy na temat budowy wewnętrznej mikrokontrolerów z powodzeniem można przeskoczyć na któryś z dwóch pozostałych wymienionych języków programowania.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 05 kwie 2008, 20:09

A ja polecam język w którym się już cokolwiek umie pisać na PC. Wtedy łatwiej zrozumieć przykłady w sieci i po swojemu napisać program.

Thomasz
-
Posty: 44
Rejestracja: 29 wrz 2006, 15:07
Lokalizacja: jestem?

Post autor: Thomasz » 30 sie 2008, 15:45

Witam, po przerwie :)
dawno nic nie pisalem bo miałem wakacje :mrgreen: .
Juz opanowalem troche bascoma :mrgreen: haha :mrgreen: .
Teraz znow powróciłem do procesorów i mam pewien dylemat ;P.

Ponieważ chce wykonac przystawke do tego ZL2PRG lecz jedną wielką która bedzie obsługiwać (prawie) wszystkie procesory ktore programator jest w stanie zaprogramować. :mrgreen:
Przeszukiwająć google natrafiłem na strony na których pisało że attiny2313 a AT90S2313 to cos innego , a na innych ze tosamo, lecz jak przeglądałem noty katalogowe to raczej to samo :P.... (a własnie teraz z tym procem chce sie pobawć :P ).
Na innych znowu ze tylko pare procków mozna, a na niektorych ze duuuzo wiecej, lol.

Wiec, moje pytanie to: które Procesory mozna programować przez tego ZL2PRG przy których trzeba dodatkowych elementów (kwarc, jakas dioda, kondensator etc) a przy których nie :?:
To by mi ułatwiło wykonanie jednej wielkiej przystawki do tego programatora :smile:
Bardzo miło widziane schemacikami pojedynczych procków.

Pozdro :)

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 30 sie 2008, 16:03

Thomasz pisze:Wiec, moje pytanie to: które Procesory mozna programować przez tego ZL2PRG przy których trzeba dodatkowych elementów (kwarc, jakas dioda, kondensator etc) a przy których nie :?:
To by mi ułatwiło wykonanie jednej wielkiej przystawki do tego programatora :smile:
Bardzo miło widziane schemacikami pojedynczych procków.
Wszystkie AVR'y nie wymagają dołączania do procesora kwarcu, chyba że zostały w nich przestawione fusebity. Nowy procesor wcześniej nieprogramowany chodzi na wew. RC. Kondensatory zawsze trzeba dawać na zasilaniu każdego układu scalonego bez znaczenia czy to procesor czy wzmacniacz operacyjny.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 30 sie 2008, 16:26

snow pisze:Wszystkie AVR'y nie wymagają dołączania do procesora kwarcu
Może nowe tak, ale stare wymagają. Napisałeś to tak jak by cała rodzina AVR miała wewnętrzne oscylatory w standardzie :)

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 30 sie 2008, 16:37

No tak, z tym że raczej kolega nie będzie robił płytki pod procesor AVR ze starej serii gdzie jego dostępność jest znikoma a jak jest już dostępny to kosztuje 5-6 razy tyle co nowy jego odpowiednik :)

Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

Post autor: Skrzydlaty » 30 sie 2008, 17:20

Nowe procesory mają ustawione taktowanie na wewnętrzny oscylator tylko te nazwami "tiny" i "mega". Te z seri CLASSIC jeśli dobrze wiem to chodzą zawsze albo na zewnętrznym taktowaniu albo na wewnętrznym oscylatorze.
Płytka i programator jaka obsługuje procesory nada sie do tych które maja identyczny rozkład wyprowadzeń oraz pojemność pamięci. Sam sobie zrobiłem kilka płytek pod różne procki i programuje w nich te, które mają identyczny rozkład wyprowadzeń. Na każdej mam wyprowadzone złącze ISP, podstawka na kwarc i kondensatory które nie zawsze muszę wykorzystywać.
co do zgodności wyprowadzeń - np. płytka dla starych 8535 służy mi teraz pod mega8535 a jak sobie otworze note katalogową np. mega16 to widze że i mega 16 mi wskoczy na tą płytke.
dla mega8 -podejdzie mega48 i mega88. Jak Ci programator jakiegoś większego nie pociągnie to zawsze mozęsz zrobić sobie prosty programator USBasp- super prędkość i nie ma błędów przy programowaniu. A schematy znajdzesz na stronie Atmel'a.
Wogóle to polecam bawić sie już na mega8535 - mniej ograniczeń i możesz sie bawić np. przetwornikami ADC :razz:

Awatar użytkownika
Brzozza93
Użytkownik
Posty: 474
Rejestracja: 26 cze 2006, 17:35
Lokalizacja: Gdynia
Kontakt:

Post autor: Brzozza93 » 30 sie 2008, 19:12

Thomasz pisze:Szukałem w googlach, ale nie bardzo tam było
KLIK!

Thomasz
-
Posty: 44
Rejestracja: 29 wrz 2006, 15:07
Lokalizacja: jestem?

Post autor: Thomasz » 30 sie 2008, 19:17

1.Czyli jesli dobrze zrozumialem, to jesli procesor jest nowy (tylko te tiny i mega), powiecmy prosto ze sklepu to wystarczy podłączyć tylko do odpowiednich nóżek kabelki oraz zasilanie proca :), tak??
2.A te "przestawione fusebity" tzn jak sie pierwszy raz cos na procka wrzuci to juz sie przestawi? czy nie do konca? :P
3.Jeśli juz uzywam zewnętrznego kwarcu to moze być wartość przybliżona/uniwersalna np. 8MHz czy każdy ma inne taktowanie i kazdemu trzeba inny (nie zdążylem zajzeć w noty katalogowe, ah te lenistwo... mam nadzieje ze mi ktos z wlasnego doswiadczenia powie :P:D). Bo wiem ze np Attiny12 a nawet te AT90S2313 ma 7.3728MHz.
Mam nadzieje ze mi ktos to szczegółowiej wytłumaczy :)
Pozdro

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 30 sie 2008, 19:21

Ad.1 Tak
Ad.2 Wgranie programu nie zmieni fusebitów, trzeba osobno.
Ad.3 Kwarc może być dowolny do max prędkości podanej na procesorze, typowa maksymalna prędkość z jaką można taktować procesor to 8 lub 16MHz i kwarce mogą być z zakresu 0-MAX MHz. Jak kupisz np. Atmega8-16 to maksymalna częstotliwość rdzenia przy zasilaniu 5V to 16MHz. Oczywiście można przetaktować rdzeń ale wiąże się to z podniesieniem napięcia a producent nie gwarantuje poprawnej pracy po przetaktowaniu dlatego zaleca się dawać kwarc nie większy niż podano w nocie katalogowej.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 30 sie 2008, 19:46

ad.1
Warto dołożyć kondensatorek z rezystorem do pinu reset, zapobiegnie to ewentualnym problemom i zagwozdkom dlaczego coś nie działa chociaż powinno :)

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 30 sie 2008, 20:01

Kondensator przy resecie w zasadzie zbędny, natomiast rezystor jak najbardziej zalecany.

ODPOWIEDZ