Odpowiedz 
 
Ocena wątku:
  • 3 Głosów - 3.33 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
SP4EJT Offline
Marcin
****

Liczba postów: 309
Dołączył: 06-05-2011
Post: #1
Programowanie w języku C w środowisku AVR Studio4
Podsumowując ten wątek : http://sp-hm.pl/thread-1155.html

I wszystko już jest jasne ... zrobiłem to na dwóch różnych komputeraz z systemem XP.
1. Zainstalowałem AVR Studio 4 http://www.atmel.com/dyn/resources/prod_...4Setup.exe
przy próbie uruchomienia naszego projektu pokazało się to co na zdjęciu 1_........
İmage

2. Następnie zainstalowałem (przed tym należy oczywiście wyłaczyć AVR Studio4) WinAVR (wersja 20100110) z tej strony: http://sourceforge.net/projects/winavr/files/WinAVR/
przy próbie uruchomienia naszego projektu pokazało się to co na zdjęciu 2_........
İmage

3. Następnie (przy wyłączonym AVR Studio4 ) zainstalowałem Toolchain http://www.atmel.com/dyn/resources/prod_documents/avr-toolchain-installer-3.3.0.710-win32.win32.x86.exe
przy próbie uruchomienia naszego projektu ukazało sie to co na zdjęciu3_.......
İmage
CZYLI TO CO POWINNO i to wskazuje na prawidłowe działanie.

Poniżej schemat (mam go zrobinego w eagle jak ktoś chce to wyślę - piszcie na mój email)
İmage
Tu widok płytki z góry (od strony elementów)
İmage
Tutaj widok ścieżek - możecie sobie wydrukowac i zrobić prasowankę Smile
İmage
Zamieszczam tu paczki "lekcja1.zip" i "lekcja2.zip"
Wgrywajcie te lekcje tak żeby w katalogu "kurs" były katalogi "lekcja1", "lekcja2" , 3 ,4 itd itd.....


Załączone pliki
.zip  lekcja1.zip (Rozmiar: 3.97 KB / Pobrań: 1129)
.zip  lekcja2.zip (Rozmiar: 4.21 KB / Pobrań: 864)
.zip  płytka_Atmega16-32-64_Eagle.zip (Rozmiar: 60.86 KB / Pobrań: 757)
(Ten post był ostatnio modyfikowany: 14-01-2012 2:00 przez SP4EJT.)
13-01-2012 21:08
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ2EER Offline
Użytkownik
***

Liczba postów: 149
Dołączył: 17-06-2009
Post: #2
RE: Programowanie w języku C w środowisku AVR Studio4
Witam - po doinstalowaniu Toolchain jest taki efekt

rm -rf lcd.o lcd.elf dep/* lcd.hex lcd.eep lcd.lss lcd.map
c:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin\rm.exe: nie można wykonać lstat na `dep/*': Invalid argument
make: [clean] Błąd 1 (zignorowany)
Build succeeded with 0 Warnings...
avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd.o -MF dep/lcd.o.d -c ../lcd.c
In file included from ../lcd.c:6:0:
c:\program files\atmel\avr tools\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:89:3: warning: #warning "F_CPU not defined for <util/delay.h>"
avr-gcc -mmcu=atmega32 -Wl,-Map=lcd.map lcd.o -o lcd.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature lcd.elf lcd.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex lcd.elf lcd.eep || exit 0
avr-objdump -h -S lcd.elf > lcd.lss

AVR Memory Usage
----------------
Device: atmega32

Program: 324 bytes (1.0% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)


Build succeeded with 1 Warnings...

Smile pozdrawiam 73 Jacek.
13-01-2012 21:29
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 309
Dołączył: 06-05-2011
Post: #3
RE: Programowanie w języku C w środowisku AVR Studio4
No dobra, cieszę sie ale powiedzcie czy zaprogramowaliscie Atmege i zadziałała czy na sucho kompilowaliście ?

Jeśli wyskakuja przy kompilacji jakieś błędy w których jest " F_CPU" to znaczy że kompilator nie wie jaką częstotliwościa taktujemy mikrokontroler. Żeby kompilatorowi to "powiedzieć" należy:
- kliknąć menu "Project" potem "Configuration Options" i w pole Frequency wpisać częstotliwość naszego kwarca w Hz.
- kliknąć ok i spróbować kompilować jeszcze raz (w oknie gdzie pokazywały sie błędy powinny być teraz tylko zielone kropki
(zielone = brak błędów i ostrzeżeń, zółte= ostrzeżenia, czerwone=błędy)
Skopiujcie sobie katalog "lekcja2" (z zawartością) pod nazwą "lekcja3" do katalogu "kurs" ... uruchomcie AVRStudio wskazując na plik "lcd" w "lekcja3". Skasujcie cały kod z pliku lcd.c i na miejsce skasowanego wklejcie to co poniżej:
Kod:
/*  Jest to trzecia lekcja Kursu Programowania mikrokontrolera Atmega w języku C    
    Należy podłączyć diodę LED poprzez rezystor 680 OHm do wyprowadzenia A0, druga noga diody do masy.
    oraz przycisk (microswitch lub inny) do Wyprowadzenia B0 (PORT B wypr.0) - drugi biegun do masy.
*/

/* #include <jakiś_plik> wstawia zawartość tego pliku dokładnie w to miejsce w którrym zawarte jest to wyrażenie */
#include <avr/io.h>            // czyli tu dla kompilatora jest cała zawartość pliku io.h (nie wnikajcie teraz gdzie jest ten plik
#include <util/delay.h>        // tu podobna historia do powyższej

int main(void)
    {
    DDRA = 0b00000001;    
    DDRB = 0b00000000;    // właczyłem do zabawy port B
    PORTB= 0b00000111;    // "1" oznacza podciągnięcie wejścia do napięcia zasilania Atmegi poprzez wewnętrzny rezystor
                        // możecie sprawdzić miernikiem że wyprowadzenia B0, B1 i B2 mają jakieś napięcie w przeciwieństwie do B3, B4 .... B7

    while(1)        // funkcja pętli nieskończonej (gdyby zamiast "1" było jakieś wyrażenie to funcja działa do momentu kidy wyrażenie przestale byc prawdziwe = czyli przestalje być logiczna "1")
        {
        if(bit_is_clear(PINB, 0))        // jeśli na wyprowadzeniu (wejście) B0 jest logiczne 0 to wykonaj to co pomiędzy { i }
            {
            PORTA=PORTA^0b00000001;     // wyjaśnienie tego na samym dole    
            _delay_ms(160);                // opóźnienie eliminujące "trzaski" przycisku
            }  
        }
    }
/* naciskajcie przycisk i zobaczcie co się dzieje, a dzieje sie tak dzieki zastosowaniu
operatora "^" czyli bitowej alternatywy wykluczającej (XOR). wyjasnia to przykład:

0 1 0 1 0 1 0 1    to wartość rejestru PORTA
^
0 0 1 1 0 0 1 1     to wyrażenie "zmieniające" zawartość tego rejestru
=
0 1 1 0 0 1 1 0    to nowa wartość rejestru PORTA (po wykonaniu polecenia)

PORTA to jeden z wielu rejestrów Atmegi, odpowiada on za to co jest na ośmiu wyprowadzeniach PORTU A
DDRC to rejest odpowiadający za kierunkowość wyprowadzeń PORTU C
PIND to rejestr, w którym "widać" jakie stany logiczne sa na wyprowadzeniach PORTU D

Możecie sobie sciągnąć .pdf z opisem Atmegi (niestety po angielsku) jest tam pełny spis wszystkich rejestrów

autor: SP4EJT nie zastrzega sobie praw autorskich, pod warunkiem że nie czerpiesz z tego korzysci materialnych, możecie kopiować i zmieniać ten plik
*/
Praca domowa: 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 i koniecznie napiszcie czy się udało.... a jesli nie to piszcie w czym problem

... i proszę się nie wstydzic i pisac co jest nie zrozumiałe !!!!!!! bo mam wrażenie że straciliście zapał.
(Ten post był ostatnio modyfikowany: 13-01-2012 23:49 przez SP4EJT.)
13-01-2012 23:39
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ7HJB
Unregistered

 
Post: #4
RE: Programowanie w języku C w środowisku AVR Studio4
Cześć!
To nie strata zapału. Tylko brak czasu. W pracy prawie do 23 a później po nocach czytanie forum.
Muszę jeszcze czekać na programator a w weekend pcb pod ATmege.
Pozdrawiam
14-01-2012 1:01
Odpowiedz cytując ten post
SQ2EER Offline
Użytkownik
***

Liczba postów: 149
Dołączył: 17-06-2009
Post: #5
RE: Programowanie w języku C w środowisku AVR Studio4
Witam - u mnie na pcb picastar znowu trochę przybyło dlatego nie pisałem nic - zaraz pobiorę lekckę2 - i muszę zrobić trochę porządku na stole aby podłączyć płytkę testową - ale to się da - proszę o kontynuowanie lekcji - pozdrawiam Jacek.
14-01-2012 1:54
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9JXB Offline
Początkujący
**

Liczba postów: 59
Dołączył: 22-03-2010
Post: #6
RE: Programowanie w języku C w środowisku AVR Studio4
U mnie kompilacja na sucho.

Czekam na zestaw ewaluacyjny.

I tak samo braki czasowe.

Ale lekcje mogą trwać.

P.S. Jak będą wątpliwości i problemy to na pewno tu napiszę

Janek SQ9JXB
(Ten post był ostatnio modyfikowany: 14-01-2012 12:28 przez SQ9JXB.)
14-01-2012 12:28
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3IQ Offline
Bogdan
****

Liczba postów: 265
Dołączył: 23-10-2011
Post: #7
RE: Programowanie w języku C w środowisku AVR Studio4
Witam,
U mnie ALL OK, to znaczy zamówiłem i teraz czekam na zestaw uruchomieniowy do Atmega32. Do tej pory trochę bawiłem się Atmega8 i skromnym zestawem uruchomieniowym. Marcinowi wielkie dzieki za pomysł "kursu". Dla mnie ten kurs jest mobilizacją do pracy, samemu to czasem się nie chce. Poza tym można wymieniać poglądy i wspólnie nad czymś pracować.
Jeśli ktoś myśli poważnie o języku C, to przy okazji polecam następujące książki:
1. Paweł Borkowski "AVR&ARM7" . Bardzo dobra pozycja na sam początek przygody z mikrokontrolerami. Moim zdaniem największą zaletą tej książki są podane bardzo szczegółowo (wręcz "łopatologicznie") przykłady, od bardzo prostych do bardziej zaawanasowanych zaprezentowanych w 4 językach : ASM, C, BASCOM i Pascal. W każdym przykładzie są podrozdziały dla każdego języka odrębnie, ale ASM jest podstawą do szczegółowych rozważań, następnie kolejno C, Bascom i Pascal.
2. Tomasz Francus "Język C dla mikrokontrolerów AVR". Książka przeznaczona dla bardziej zaawansowanych czytelników. Jeśli ktoś przerobił co najmniej większość przykładów z poz.1 i chce kontynuować zabawę w C, to jest to moim zdaniem najlepsza pozycja. Na uwagę zasługuje rozdział w którym podane są dość szczegółowo podstawy języka C dla AVR.
3. Stephen Prata "Szkoła programowania. Język C". Najlepsza pozycja w języku polskim do nauki C od podstaw. Nie jest to dialekt języka dla mikrokontrolerów ale dla programisty języka C w ogólnym przypadku. Czytelnik tam znajdzie doskonale wyjaśnionych wiele trudnych kwestii i to podanych w bardzo przystępnej i zrozumiałej formie, na przykład konwersje typów (procedury rzutowania).
73 Bogdan, SP3IQ.
(Ten post był ostatnio modyfikowany: 14-01-2012 16:11 przez SP3IQ.)
14-01-2012 15:17
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 309
Dołączył: 06-05-2011
Post: #8
RE: Programowanie w języku C w środowisku AVR Studio4
Przecież my dopiero zaczynamy. Jak masz chęć do nauki to przeczytaj wszystko od początku i na pewno nadrobisz straty.
Jestem sam z dzieckiem w domu dziś i jutro więc dużo pewnie nie napiszę. \córka bardzo jest absorbująca Smile Najpóźniej w poniedziałek dalsza część kursu.
14-01-2012 15:54
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ6OXK Offline
Paweł
****

Liczba postów: 317
Dołączył: 23-06-2010
Post: #9
RE: Programowanie w języku C w środowisku AVR Studio4
To nie tak, ja bardziej chciałem pomóc tym mniej doświadczonym Big Grin Ewentualnie może jak dojdziemy do takich zaawansowanych, rzeczy jak na przykład FFT to zmienię kierunek oddziaływania.

PS. Czemu AVR Studio 4, a nie 5?

--= SWL SP6-01-396 =--
(Ten post był ostatnio modyfikowany: 14-01-2012 18:08 przez SQ6OXK.)
14-01-2012 18:08
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3IQ Offline
Bogdan
****

Liczba postów: 265
Dołączył: 23-10-2011
Post: #10
RE: Programowanie w języku C w środowisku AVR Studio4
(14-01-2012 18:08)SQ6OXK napisał(a):  ...jak na przykład FFT...
W tym wątku Marcin SP4EJT zaproponował kurs jak jest podane w tytule tego wątku i jego uczestnicy zgodzili sie na tak rozwijany temat. Dotąd jeszcze nie mówiliśmy o celach, ale wiadomo, że uczymy się aby tą wiedzę wykorzystać w projektach, które są nam krótkofalowcom potrzebne. Mogą to być częstościomierze, DDS na AD..., DDS na SI..., sterowniki przełączania anten, itd. Jednym z celów może też być wykorzystanie wyświetlaczy TFT, czy filtry FFT. Ale uważam, że w chwili obecnej wprowadzanie w tym wątku jakiegokolwiek projektu (nawet najbardziej atrakcyjnego) byłoby niecelowe. Powinniśmy zgodnie z początkowym założeniem przerobić kilka lub lepiej kilkanaście "lekcji" (przykładów), które prowadzi Marcin SP4EJT zgodnie z założeniem początkowym. Temat, który Paweł SQ6OXK proponuje (analizy FFT), jest jak najbardziej potrzebny i bardzo ciekawy, ale nadaje się do nowego wątku. Jeśli taki wątek zostanie otwarty, to będę w tym wątku też uczestniczył.
73 Bogan, SP3IQ.
(Ten post był ostatnio modyfikowany: 14-01-2012 19:23 przez SP3IQ.)
14-01-2012 19:18
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości