Na początek ściągamy i instalujemy AvrStudio ze strony atmel.com i WINAVR ze strony http://sourceforge.net/projects/winavr/
Po instalacji jednego i drugiego uruchamiamy AvrStudio, wyskakuje okienko w którym wybieramy NewProject.
W następnym oknie widzimy:
Po kolei:
Project Type - tu decydujemy czy będziemy pisać w C czy w ASM.
Location - miejsce na nasz projekt
ProjectName - Nazwa projektu
Initial file: plik główny projektu.
Dajemy next:)
Tutaj mamy do wyboru dwie rzeczy - po lewej "platformę" debugującą i po prawej typ uC jaki będziemy obsługiwać - po lewej większość wybierze AvrSimulator (jak ktoś używa JTAGa to wie co to jest i jak tego używać więc tutaj też Sobie sam wtedy poradzi:) ).
Po prawej np. Atmega8 (zależy od sprzętu:) ).
I Finish.
Mamy gotowy projekt.
Teraz powinniśmy zobaczyć coś takiego:
Oczywiście fragment kodu programu na środku został wpisany przeze mnie i jest to taki najbardziej podstawowy szkielet programu.
Pozdrawiam Łukasz:)
Ciąg dalszy mini-howto -> dodawanie dodatkowych plików *.c i *.h
Więc po kolei w plikach *.c przyjęło się umieszczać jak w pliku main.c ciała funkcji, w plikach *.h nagłówki funkcji (prototypy), definicje etc...
No to siup podstawowy projekt:
Jak widać po lewej jest drzewko jeśli nie piszemy sami makefile'a MUSIMY tam dołączyć wszelkie pliki które mają być kompilowane.
Jak powinien wyglądać podstawowy plik *.h
Do niej przykładowy plik *.c
Tyle jeśli o pliki, teraz w pliku main.c (czy innym głównym projektu) musimy includować nagłówki z prototypami funkcji
Czyli u nas #include "test.h".
Jaka jest różnica między #include "coś" a #include <cos>, w "" umieszczamy NASZE cosie a w <> umieszczamy standardowe nagłówki.
Pozdro:)
Dość często , pojawia się pytanie typu:
Odp: Dodać odpowiednie opcje do linkera.
Gdyby ktoś miał słaby wzrok , to ... -Wl,-u,vfprintf,-lprintf_flt,-lm
Po instalacji jednego i drugiego uruchamiamy AvrStudio, wyskakuje okienko w którym wybieramy NewProject.
W następnym oknie widzimy:
Po kolei:
Project Type - tu decydujemy czy będziemy pisać w C czy w ASM.
Location - miejsce na nasz projekt
ProjectName - Nazwa projektu
Initial file: plik główny projektu.
Dajemy next:)
Tutaj mamy do wyboru dwie rzeczy - po lewej "platformę" debugującą i po prawej typ uC jaki będziemy obsługiwać - po lewej większość wybierze AvrSimulator (jak ktoś używa JTAGa to wie co to jest i jak tego używać więc tutaj też Sobie sam wtedy poradzi:) ).
Po prawej np. Atmega8 (zależy od sprzętu:) ).
I Finish.
Mamy gotowy projekt.
Teraz powinniśmy zobaczyć coś takiego:
Oczywiście fragment kodu programu na środku został wpisany przeze mnie i jest to taki najbardziej podstawowy szkielet programu.
Pozdrawiam Łukasz:)
Ciąg dalszy mini-howto -> dodawanie dodatkowych plików *.c i *.h
Więc po kolei w plikach *.c przyjęło się umieszczać jak w pliku main.c ciała funkcji, w plikach *.h nagłówki funkcji (prototypy), definicje etc...
No to siup podstawowy projekt:
Jak widać po lewej jest drzewko jeśli nie piszemy sami makefile'a MUSIMY tam dołączyć wszelkie pliki które mają być kompilowane.
Jak powinien wyglądać podstawowy plik *.h
#ifndef _TEST_H
#define _TEST_H
int testowa_funkcja(void);
#endif //_TEST_H
Do niej przykładowy plik *.c
tutaj ew. includy jeśli potrzebne (np. avr/io.h) jeśli będziemy coś na rejestrach robić chociażby.
int testowa_funkcja(void)
{
ciało funkcji;
return wartość;
}
Tyle jeśli o pliki, teraz w pliku main.c (czy innym głównym projektu) musimy includować nagłówki z prototypami funkcji
Czyli u nas #include "test.h".
Jaka jest różnica między #include "coś" a #include <cos>, w "" umieszczamy NASZE cosie a w <> umieszczamy standardowe nagłówki.
Pozdro:)
Dość często , pojawia się pytanie typu:
użytkownik jareks91 napisał:
Czy mogbys podać dzialający przyklad ktory wyswietla flota uzywajac printf ? bo ja pisze cos takiego i mi nie dziala...double a = 12.05; printf_P(PSTR("a(%%f)=%f\r\n"), a);
wyświetla mi znak "?" czy ktos wie dlaczego?
Odp: Dodać odpowiednie opcje do linkera.
Gdyby ktoś miał słaby wzrok , to ... -Wl,-u,vfprintf,-lprintf_flt,-lm
