Professional Documents
Culture Documents
Programowanie procesorów
w języku C Część 2
projektu: W okienku Projects kliknij na
Co uważniejsi Czytelnicy zauważyli zapewne, że w części pierwszej listingi 1 i 2 są iden−
nazwie LEDMulti i z rozwiniętego menu
tyczne. Ci, którzy nie spostrzegli tego od razu, ale próbowali przeprowadzić na ich podsta−
wybierz komendę Add Files.
wie kompilację programu, zorientują się, że jest to niemożliwe.
W tej chwili pliki powinny być już dostęp−
Między moim komputerem a drukarnią wkradł się błąd, który należy jak najszybciej
ne w panelu naszego projektu. Przypominam,
sprostować. Na tej stronie przedstawiam poprawiony listing 1.
że powtarzam tutaj informacje, które przedsta−
Dodatkowe pliki znajdujące się na stronie internetowej Elektroniki dla Wszystkich są
wia rysunek 11 (część pierwsza cyklu). Jeśli
prawidłowe. Sposobu poprawienia błędu można także domyślić się na podstawie treści arty−
w którymś momencie będziesz miał problem,
kułu – gratuluję, jeśli udało Ci się to zauważyć.
być może uznasz, że opisałem tutaj coś zbyt
Listing 1 Prawidłowa zawartość pliku make.bat skrótowo – wróć do wspomnianej ilustracji.
Edytor wie już, jakie pliki wchodzą
@set PATH=C:\WinAVR\BIN;C:\WinAVR\UTILS\BIN; w skład naszego programu, pora poinformo−
make.e wać o tym kompilator. W tym celu edytuj plik
makefile. Ustawienia, jakie powinieneś tutaj
wprowadzić, pokrywają się z ustawieniami
Dziś będziemy starali się okiełznać dostępny niej będzie skopiować plik z poprzedniego wprowadzanymi przy okazji pierwszego ćwi−
na płytce testowej wyświetlacz LED. Za programu. Zawsze możesz także sięgnąć do czenia: nie zmienił się przecież typ procesora,
wyświetlacz zabierzemy się stopniowo. Nie szablonu umieszczonego w folderze zakładam, że kwarc także jest taki sam, plik
protestuj, jeśli pierwsze z napisanych progra− C:\WinAVR\samples. Po tej czynności uru− wyjściowy w formacie IntelHEX bardzo nam
mów będą, na przykład, beznadziejnie marno− chom Programmers Notepada. Utwórz nowy pasuje, optymalizacja rozmiaru kodu nadal
wać zasoby. Chcę, abyś przedstawione kody projekt, wybierając z menu File−>New−>Pro− wydaje się dobrym rozwiązaniem, tak samo
traktował jako dobrą ilustrację do wiedzy o C, ject. Plik projektu zapisz w utworzonym właś− jak typ pliku przeznaczony dla emulatora.
którą chcę przekazać. nie katalogu. Ja nadałem mu nazwę LEDMul− Różnica pojawi się w polu TARGET. Znajdź
Ponieważ, jak już wspomniałem, do efek− ti.pnproj – nie wpisuj rozszerzenia, zostanie odpowiednią linię i wpisz tutaj nazwę pliku
tywnego pisania programów na mikrokontro− ono nadane automatycznie. głównego. Będzie to najprawdopodobniej
lery w C konieczna jest znajomość procesora, Teraz utwórz plik główny naszego progra− LEDMulti (bez jakichkolwiek rozszerzeń,
zachęcam Cię do wyposażenia się w jakikol− mu. Umożliwia to sekwencja File−>New−>C / brak spacji na końcu!).
wiek opis jego rejestrów. Może być to doku− C++. W tym przypadku możesz użyć także Znakomicie! Jesteśmy gotowi do napisania
mentacja dostępna na stronie firmy Atmel. znajdującego się w pasku narzędzi przycisku kolejnego programu. Przy odrobinie wprawy
Może być jakaś dobra książka. Nie jest tworzącego nieokreślony nowy plik tekstowy. wszystkie konieczne czynności wykonasz
konieczna literatura zajmująca się szczegóło− Plik powinien zostać zapisany oczywiście zapewne w czasie krótszym, niż mogłoby się
wo asemblerem tego procesora. Potrzebna jest w katalogu LEDMulti. Ja nadałem mu nazwę wydawać z długości opisu.
natomiast wiedza o rejestrach wewnętrznych LEDMulti.c – tym razem podanie rozszerze−
służących do obsługi takich elementów jak nia jest konieczne. Kodowanie
porty wejścia−wyjścia. Nasz program składa się z dwóch plików: – część standardowa:
makefile oraz LEDMulti.c. W celu wygodne− Skoro tworzymy od początku nowy program,
Małe repetytorium go dostępu do nich, oba pliki dodajemy do chciałbym, przy okazji, zaproponować Ci
– zaczynamy
Zanim zaczniesz pisać kod pro− Listing 4 Podstawowy szablon pliku głównego
gramu, konieczne jest wy−
konanie kilku czynności, jakie ////////////////////////////////////////////////////////////////////////////////
// LEDMulti.c - plik g³ówny programu obs³ugi multipleksowanego wywietlacza LED
przedstawiłem w części 1. Zer−
// przeznaczenie: "Programowanie procesorów w jêzyku C (EdW)"
knij na przedstawiony tam //
rysunek 11. Ja nowy program // Autor: Rados³aw Koppel Kompilator: WinAVR 20050214
nazwałem LEDMulti. Zakła− ////////////////////////////////////////////////////////////////////////////////
dam, że wybierzesz taką samą #include <avr\io.h>
nazwę i z takim założeniem
będę prowadził dalszy opis.
Utwórz folder na nowy pro− int main(void)
gram. W moim przypadku był {
to C:\GCC−src\Kurs\LEDmulti
Koniecznie skopiuj teraz do
return 0;
naszego folderu plik makefile. }
Może okazać się, że najwygod−
ABC... C poznałeś już dobrze, uczestnicząc w kursie W samej obsłudze pojawią się tylko dwie
Zmienne – podstawy BASCOM. Zgodnie ze standardem, wszyst− różnice w stosunku do BASCOM−a:
kie zmienne globalne trzeba utworzyć jeszcze 1. Zamiast nawiasów okrągłych, korzysta−
Zakładam tutaj, że wiesz, co to są zmienne zanim pojawi się jakakolwiek funkcja. GCC my z nawiasów kwadratowych.
i masz pojęcie do czego służą. Ze względu na umożliwia jednak utworzenie zmiennej w 2. Indeksy tablicy zaczynają się od 0
skrótowy charakter tego kursu tutaj tylko dowolnym miejscu, poza wnętrzem funkcji. i mają wartości do ilość−1, zamiast BASCOM−
napiszę „jak to się robi w C”. Nie będziemy z tego korzystać, ponieważ owego zakresu od 1 do ilość.
jedyne, co możemy przez to uzyskać, to
Typy proste malowniczy bałagan w kodzie. Plik <inttypes.h>
Zmiennej takiej używa się bardzo podobnie Warto wiedzieć, że jeśli zmiennej global− W praktycznych programach proponuję Ci
jak miało to miejsce w BASCOM−ie. Niewiel− nej nie nadasz określonej wartości początko− wykorzystanie pliku, o którym właśnie mo−
ka różnica pojawia się w sposobie jej dekla− wej, zostanie ona domyślnie wyzerowana wa. Definiuje on bardzo wygodne nazwy ty−
racji. Nie ma tutaj słowa kluczowego Dim. jeszcze przed rozpoczęciem wykonywania pów zmiennych całkowitych, z których mo−
Zmienną tworzymy, jak pokazuje przykład: programu. żesz (ale nie musisz) korzystać:
R E K L A M A