Programowanie w języku C w środowisku AVR Studio4 - Wersja do druku +- HomeMade (http://sp-hm.pl) +-- Dział: Oprogramowanie (/forum-84.html) +--- Dział: Technika programowania mikroprocesorów (/forum-85.html) +--- Wątek: Programowanie w języku C w środowisku AVR Studio4 (/thread-1161.html) |
RE: Programowanie w języku C w środowisku AVR Studio4 - SQ6OXK - 16-01-2012 14:26 Jacku, masz nie właściwą wersję AVRDUDE, tak przynajmniej to wygląda. Ściągnij dokładnie tą która jest na stronie forum And-Tech-a, bo inna Ci nie zadziała. Wersja ta, pewnie jako jedyna ma przygotowany w konfiguracji programator EvB, który jest niestandardowy i dlatego w inne nie potrafi go obsłużyć. Uwidacznia się to własnie błędem, że nie zna takiego programatora. RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 17-01-2012 23:18 teraz Atmegowa "zerówka" dla tych , których przeraża obudowa Atmegi32 z 40-toma wyprowadzeniami i którzy nie są w stanie ogarnąć swoim umysłem o co chodzi w moich dotychczasowych lekcjach. Powinienem to wcześniej napisać, ale powiem wam jedno: NIE PODDAWAJCIE SIĘ. Atmega16/32/64 to bardzo przyjazny pająk. Pinologię przewdstawia poniższy rysunek: [attachment=4544] Na razie udawajcie że nie widzicie napisów w nawiasach - na tym etapie są nieistotne. Istotne dla was są natomiast Wyprowadzenia PORTÓW A, B, C i D. Jak widzicie każdy port jest "8-mio bitowy" (ma 8 wyprowadzeń) bo Atmega to mikrokontroler 8-mio bitowy. Każde z tych wyprowadzeń może spełniać role wejścia logicznego lub wyjścia - w zależności jak ją zaprogramujecie. Port A posiada wyprowadzenia od PA0 do PA7. PORT B posiada wyprowadzenia od PB0 do PB7. PORT C od PC0 do PC7 no i PORT D już pewnie wiecie jak ... Przypuśćmy że chcemy by wyprowadzenia portu A od PA0 do PA6 były wyjściami, a PA7 wejściem ... w kodzie programu musimy zatem umieścić taką linijkę: Kod: DDRA = 0b01111111; [attachment=4546] Analogicznie do powyższego przykładu ustawić można stan wyprowadzeń portu, poprzez przypisanie wartości do rejestru PORTA, np.: Kod: PORTA = 0b00001111; lekcja 4 Kod: /* Jest to czwarta lekcja Kursu Programowania mikrokontrolera Atmega w języku C Kod: /* Jest to czwarta lekcja Kursu Programowania mikrokontrolera Atmega w języku C ps. następnym razem będziemy katować popularny wyświetlacz alfanumeryczny: 2linijki po 16 znaków na sterowniku HD44780, więc się zapoznajcie z jego budową i sposobem podłaczenia oraz z symulatorem który jest do pobrania poniżej. Człowiek, który go zrobił pozwala powielać i umieszczać na swojej stronie ten programik napisany w javie. Ja właśnie z takiego symulatora wziąłem swoja umiejętność obsługi tego LCD [attachment=4536][attachment=4548][attachment=4538] Napisał by ktos czy za trudne rzeczy wam wciskam w głowy czy moze za łatwe i się tak nudzicie, że straciliście zainteresowanie ??? Dla tych którzy się już nudzą to zapodaje programik który ma wyświetlić na wyswietlaczu alfanumerycznym tylko cztery litery "ABCD" (na początek, potem będzie weselej). Sposób zasilenia i podłączenia potencjometru kontrastu znajdźcie w sieci, może potem wkleje schemat ( jak znajdę/zrobię). Ci , którzy maja płytę ewaluacyjną maja z górki bo tam już wszystko jest przygotowane pod wyswietlacz. Kod: /* Jest to szósta lekcja Kursu Programowania mikrokontrolera Atmega w języku C RE: Programowanie w języku C w środowisku AVR Studio4 - SP3IQ - 19-01-2012 0:04 Witam wszystkich, Nie jestem na razie aktywny, bo tego typu przykłady i inne już przerabiałem wcześniej, co prawda na Atmega8 ale to nie ma większego znaczenia. Dziś dotarł zestaw uruchomieniowy, więc sprawdziłem wszystkie przykłady Marcina SP4EJT na Atmega32 i wszystko działa. Wybrałem zestaw uruchomieniowy jak sugerował Marcin, to jest od microSENSE. Z dwóch dostępnych (jest jeszcze EvB 4.3v4) ale microSENSE wydawał mnie się ciekawszy, bo posiada klawiaturę w układzie 4x4, 16 przycisków, natomiast w EvB 4.3v4 są tylko 4 przyciski. Programuję Atmega32 poprzez wcześniej nabyty USBasp włączany do portu USB peceta a na płycie włączam do gniazda ISP (CANDA) i programuję stosując program na licencji GPL AVR8 BUT-O-MAT w wersii 1.4.2.b i napisany w Java, co można użytkować pod Linuks, Windows i Mac. Zestaw uruchomieniowy microSENSE ma własny programator na płycie, ale jeszcze nie sprawdziłem jak to działa. 73 Bogdan, SP3IQ. RE: Programowanie w języku C w środowisku AVR Studio4 - SP3SWJ - 19-01-2012 17:53 w temacie FTDI ... od pewnego czasu nie jest prawdą że (16-01-2012 12:43)SP4EJT napisał(a): .... Nie da się(chyba że czegoś nie wiem) zaprogramować nim fabrycznie nowej ( z czystą pamięcią ) ATMEGI - tylko programatorem zaprogramujecie. http://www.elektroda.pl/rtvforum/topic2112078.html :-) tez jakiś czas temu natknałem się na dwa takie rozwiązania ... gdzie programator jest "softwarowy" w PC a FTDI jest jedynie "pinami" programatora. Osobiście tego nie testowałem - ale komuś się to przyda i podzieli się dobra nowiną .... RE: Programowanie w języku C w środowisku AVR Studio4 - SP9LAP - 20-01-2012 16:13 Witam! ad. lekcja 1 kompilcja.. i co dalej?? Jak zaprogramować procesor na płytce z microSENSE przydałby się plik *.hex ?? pozdrawiam. Jarek RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 20-01-2012 16:33 Jarku.... Komplilacja to właśnie czynność, której skutkiem jest właśnie plik *.hex, jest on umieszczony w podkatalogu "default", który znajduje się w katalogu "lekcja1". Jeśli ktoś jeszcze ma podobny problem to śmiało pytajcie. To, o co zapytał Jarek to początki początków, a wiadomo, że początki są najtrudniejsze. Przepraszam, że wcześniej nie napisałem gdzie po kompilacji znajduje się plik *.hex - popełniłem typowy nauczycielski błąd - poprostu jest to dla mnie tak oczywiste, iż myślałem że skoro ja to wiem, to wszyscy muszą to wiedzieć RE: Programowanie w języku C w środowisku AVR Studio4 - SP9LAP - 20-01-2012 21:19 HeJ! *.hex się znalazł ! Tylko jak go teraz bez sprzętowego programatora wpompować do atmegi na płytce z microSENSU ?? Wygląda na to, że nie mam sterownika programatora.. Ale jak go zainstalować ? sp9lap ps. Na razie zajęcia w "zerówce" ... RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 20-01-2012 21:31 Jarek ... powinieneś dostać klapa w d..e jak małe dziecko Nie przeczytałeś wszystkich postów ! Przecierz nie jest ich aż tak dużo, temat ma dopiero 3 strony ... Wróć sie do postu numer 23, jesli nie wiesz jak kliknij tu: http://sp-hm.pl/thread-1161-post-11185.html#pid11185 Przeczytaj bardzo uważnie ten post i tą instrukcję, której link jest tam zamieszczony szczegolnie strony 4, 12 i 13. Dostałeś ją na płycie CD z płyta ewaluacyjną ale widze że nie chciało ci się jej przeczytać. Sterownik tez masz na płycie, masz tu link bo może ci CD-ROM wysiadł http://www.microsense.pl/allegro/EvB_ATmega16-32/drivers/CDM%202.06.00%20WHQL%20Certified.zip Jeśli nadal nie dasz rady zaprogramować atmegi to napisz wtedy napisze ci instrukcje krok-po-kroku. RE: Programowanie w języku C w środowisku AVR Studio4 - SQ2EER - 20-01-2012 23:30 Witam - przepraszam że byłem na ...... wagarach ale walczyłem z płytką EvB 4.3 - żebym mógł programować na niej - ale poległem - zakupiłem nowy programator AVRPROG MKII ( stary MULTITOOL raz zgłaszał się jako programator a raz jako dysk ) - w czwartek na spotkaniu klubowym przywróciliśmy do ustawień fabrycznych moje atmegi (16/32/644p) dzięki http://diy.elektroda.eu/atmega-fusebit-doctor-hvpp/ który przyniósł kolega ( dzięki Zdzisław ). Dzisiaj wymieniłem fash w AVRPROG MKII żeby mógł współpracować z AVR STUDIO 4 - teraz zabieram się za odrobienie lekcji 1 - pozdrawiam Jacek. P.S. - wszystkie lekcje skompilowane i przetestowane na płytce poprawnie - trochę zastanawia mnie fakt że przy "_delay_ms(1000)" teoretycznie czas powinien wynosić 1 sekundę - u mnie trwa znacznie dłużej około 4 sekund kwarc mam 16MHz i tak mam wpisane w Project -> Configuration Options -> Frequency: 16000000 hz. Jakieś sugestie? RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 21-01-2012 14:43 Własnie tego jeszcze do końca nie rozgryzłem - raz to działa raz nie - nie wiem o co chodzi. W takim razie napewno pomoże ci wpis w głównym pliku programu (lcd.c) na samej górze #define F_CPU 16000000 Sprawdzam pracę domową z postu#4 kolegi SQ6IYY. Zadanie brzmiało: Kto bardziej kumaty - niech spróbuje zrobic tak aby dioda i przycisk działały na tym samym Porcie np. na Porcie A dioda niech zostanie na A0 a przycisk dajcie na A7. Chyba byłem pijany bo wcześniej nie zakumałem że on pokazał mi efekty swojej pracy. Do rzeczy ... to kod napisany przez SQ6IYY Kod: #include <avr/io.h> // czyli tu dla kompilatora jest cała zawartość pliku io.h (nie wnikajcie teraz gdzie jest ten plik Kod: int main(void) Kod: jakas_funkcja_lub_instrukcja(jakis_warunek_lub_arrgument) Chyba czas opisać teraz zasadę działania kilku instrukcji z których juz korzystalismy: Instrukcja <b>for</b> Kod: for(wyrażenie) Kod: if(wyrażenie) Instrukcja <b>while</b> Kod: while(wyrażenie) Kod: funcja_x(wyrażenie) |