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 - SP4EJT - 21-01-2012 14:57 Dobra, postaram się napisac co mogę a ty powiesz w który punkcie utknąłeś. 1. zobacz czy masz zainstalowane sterowniki takie jak na screenshocie poniżej (na podłaczonej płycie ewaluacyjnej): [attachment=4553] 2. zobacz czy masz dobrze wykonane podłaczenia na płycie ewaluacyjnej: - Pin Rxd złącza USB/RS232 (taki napis jest na płycie przy tym złączu) połącz z wyprowadzeniem TXD Atmegi (PD1) - Pin Txd złacza USB/RS232 połącz z wyprowadzeniem RXD Atmegi czyli z PD0 3. podłącz płytę ewaluacyjną, włącz AVRStudio, wybierz jakąś lekcję, z menu wybierz "Tools" , "Program AVR" , "Connect". W oknie "Platform" wybierz "STK500v2" i kliknij "Connect". 4. Napisz czy wyskoczyło ci okienko programatora czy bład. RE: Programowanie w języku C w środowisku AVR Studio4 - SP3IQ - 21-01-2012 17:26 Witam wszystkich. Chcę na chwilę powrócić do przykładu lekcja6 (wyświetlanie na LCD). Kod źródłowy, który zaproponował Marcin SP4EJT jest genialny, bo jest bardzo krótki. Do tej pory wzorowałem się na procedurach wyświetlania na LCD za Pawłem Borkowskim (post #8, poz.1), które są nieco dłuższe. Procedurę dostosowałem do naszego przykładu lekcja6, tak aby połączenia LCD-mikrokontroler były takie same. Można więc sprawdzić oba przykłady, lekcja6.hex i lcd21.hex gdzie podaję kod źródłowy: [attachment=4551]. Mimo, że w lcd21.c jest więcej kodu źródłowego, to program zajmuje nieco mniej miejsca we flash mikrokontrolera (o 11 bytes): - lekcja6: 458 bytes + 1 byte data, w sumie 459 bytes. - lcd21: 442 bytes + 6 bytes data, w sumie 448 bytes. Druga właściwośc to taka, że u mnie treść "ABCD" z lekcji6 na wyświetlaczu jest jakby blada, natomiast "ABCD" z lcd21 jest bardziej kontrastowa. Nie wiem tylko, czy ta różnica w intensywności wyświetlania jest domeną mojego zestawu uruchomieniowego, bo mam uszkodzony potencjometr LCD Contrast (złamany trzpień gałki). Dlatego mam pytanie do uczestników kursu, czy u Was też jest różnica w intensywności wyświetlania na LCD? 73 Bogdan, SP3IQ. RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 21-01-2012 20:10 No w końcu widać , że ktoś pracuje nad tym Mój kod jest zwięzły po to żebyscie mieli większe szanse na zrozumienie w nim każdego szczegółu - to baaaaaardzo ważne. Jak tylko się obrobie to pójde dalej z obsługa wyswietlacza, a mianowicie zrobię gotową bibliotekę obsługi wyświetlacza wraz z prostą konfiguracja na dowolne porty i oczywiście jasną instrukcja obsługi dla każdego kto ściągnie ją sobie i zechce z niej korzystać w swoim projekcie. Powstanie pierwsza wersja tej biblioteki, którą będziemy później wspólnie ulepszać - dorabiać nowe bajerki wedle Waszych potrzeb. Co do minimalizacji pliku .hex - wogóle o tym nie myślałem i nie myśle na tym etapie nauki. Co do intensywności wyświetlania znaków - moim zdaniem nie powinno być różnicy - bo niby czemu ? RE: Programowanie w języku C w środowisku AVR Studio4 - SQ9JXB - 21-01-2012 22:38 (21-01-2012 14:57)SP4EJT napisał(a): Dobra, postaram się napisac co mogę a ty powiesz w który punkcie utknąłeś. Kilkanaście prób i za każdym razem mam Connection failed Próbowałem STK500 , a port COM u mnie to COM9, i oczywiście płyta ewaluacyjna. RE: Programowanie w języku C w środowisku AVR Studio4 - SP9LAP - 22-01-2012 0:06 Witam! połaczyłem się z płytką! Musiałem tylko zmienić nr portu z 10 (na którym "wisiała" płytka) na 9. Na liście w AVRstudio są tyko porty 1-9 I co dalej z tym hexem zrobić ?? RE: Programowanie w języku C w środowisku AVR Studio4 - SQ9JXB - 22-01-2012 11:53 No wreszcie się udało. Przeinstalowałem AVR Studio4 i ruszyło. jako AVRISP - COM 9 .hex wgrany i po resecie mam taki efekt. I pytanie do nauczyciela. Czy przy wgrywaniu plików .hex kabelki z płytki trzeba rozłączyć, a podłączyć tylko RxD i TxD?? A co do regulacji kontrastu wyświetlacza to jest bardzo mała P.S. Ponowna próba połączenia z płytą nie dała rezultatu. Connection failed. Ani STK500 ani AVRISP nie daje efektu NA win7 64bit to samo Sam już nie wiem co o tym myśleć. Edit: Po odłączeniu płytki i ponownym połączeniu ruszyło i na WinXP i na Win 7 64bit RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 22-01-2012 14:22 Janek, przeczytałem w sieci że jesteś elektronikiem o specjalności frezer - górnik - mechanik samochodów z instalacja gazową więc nie będę na Ciebie krzyczał za to że nie przeczytałeś uważnie instrukcji od płyty ewaluacyjnej. A tak na serio ... przypuszczam że czytałeś instrukcję ale są to dla Ciebie (jak dla wielu innych kursantów) nowe rzeczy i za dużo naraz do ogarnięcia, więc mogłeś tego nie przyswoić. W instrukcji: http://www.microsense.pl/allegro/EvB_ATmega16-32/manuals/EvB_ATmega16-32_manuals.pdf na stronie 12 jest między innymi to: " ... Tryb bootloadera dostępny jest do 8s od RESETU mikrokontrolera (podłaczenia układu). Później uruchamia sie wgrana wlaściwa aplikacja. ..." Co oznacza że masz tylko 8 sekund na podłączenie się do Atmegi. Po wgraniu *.hexa oczywiście należy wcisnąć RESET na płycie, poczekać aż minie 8s (czas nasłuchiwania bootloadera) po czym Atmega uruchamia naszego *.hexa. Co do pytania : " Czy przy wgrywaniu plików .hex kabelki z płytki trzeba rozłączyć, a podłączyć tylko RxD i TxD?? " Odpowiedź: Nie musisz nic rozłączać - ważne żeby RxD i TxD nie były obciążone - co mogłoby uniemożliwić komunikację z Atmegą. RE: Programowanie w języku C w środowisku AVR Studio4 - SQ9JXB - 22-01-2012 14:49 Janek, przeczytałem w sieci że jesteś elektronikiem o specjalności frezer - górnik - mechanik samochodów z instalacja gazową Nie do końca tak jest. Tokarz-frezer, a obecnie mechanik silników gazowych dużych mocy. Na kopalni pracowałem jako mechanik ścianowych obudów zmechanizowanych A co do Atmegi to już wiem że jest tylko 8 sekund czasu. Co do kabelków to już wszystko jasne. A elektronik ze mnie taki że proste rzeczy ogarniam, a trudnych sie uczę Dlatego AVR mnie zaciekawiło , i staram się ogarniać to jak umiem najlepiej RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 22-01-2012 23:00 Obsłudze wyświetlacza poświęcę jeszcze trochę czasu bo to chyba dla nas ważne, czy nie lekcja7 to lekcja pokazująca jak można zmienić kod który robi dokładnie to samo lecz zawiera pewne udogodnienia dla szarego człowieka. do SP3IQ : Mam nadzieję że i tym razem będziesz zaskoczony wilekością kodu i *.hexa. Nie będę wstawiał całego kodu w trybie edycji bo strasznie zawala ekran i brzydko wyglada - moje komentarze które mogą dobrze wyglądać w AVRStudio tutaj powodują przeskakiwanie pod linijkę i paskudza wygląd kodu, który staje sie ciezki do rozczytania. Opiszę tylko zmienioną funkcję "bajt_lcd" w stusunku do lekcji6 Kod: void bajt_lcd(unsigned char znak) 2. liczby 15 i 240 wzięły sie z "przetłumaczenia" zapisu szestnastkowego z "lekcji6" - pamiętamy że sposób zapisu liczby jest dowolny. Ważne żeby wartość liczby była identyczna 3. Zapis (1<<3) jest toższamy z (0b00000001<<3) i oznacza że jedynke należy przesunąć o 3 miejsca w stronę bitów starszych (w zapisie w lewo) co daje wynik 0b00001000 - wiedząc to możecie sami sobie odpowiedzieć co wykona atmega jeśli napotka na Kod: LCD_PORT |= (1<<LCD_E); RE: Programowanie w języku C w środowisku AVR Studio4 - SP3IQ - 23-01-2012 9:00 Witam, Marcin super! Rzeczywiście program zajmuje we flash tylko: Program: 300 bytes (0.9% Full) W poprzednim przykładzie było "aż" 459 bytes ! Zmieniłem tylko dwie pierwsze definicje na: #define DEF_PORT DDRA #define LCD_PORT PORTA aby połączenia były takie same jak w poprzednich przykładach. 73 Bogdan, SP3IQ. |