cz3

cz3



Programowanie

ymumuma]^

W IMlD ©    c*

Najczęściej stosowane, standardowe pliki nagłówkowe udostępniane przez AVR-GCC

<avr\io.h> Plik, który powinien być dołączony do każdego programu. Definiuje adresy rejestrów procesora, w tym jego porty. Dzięki temu możemy odwołać się do nich za pomocą stałych symbolicznych. To, j akie rejestry zostaną zdefiniowane, zależy od typu wybranego mikrokontrolera wskazanego w pliku makefile.

<inttypes.h> Bardzo ważny plik, który często będzie w użyciu w naszych programach - definiuje proste nazwy dla zmiennych całkowitych. Więcej szczegółów znajduje się w ramce o zmiennych (pojawiła się w części 2).

<avr\interrupt.h> Umożliwia wykorzystanie kilku prostych funkcji dotyczących przerwań, wśród nich sei() i di() - globalne odblokowanie i zablokowanie przerwań.

<avr\signal.h> Umożliwia proste tworzenie funkcji obsługi przerwań.

<avr\pgmspacc.h> Upraszcza korzystanie ze zmiennych umieszczonych w pamięci progra-

<avr\ceprom.h> Zawiera funkcje obsługi pamięci eeprom.

<avr\wdt.h> Kilka pomocniczych funkcji obsługi timera watchdog.

<avr\delav.h> Proste (a także niedokładne) funkcje realizujące opóźnienia.


Kontynuujemy tworzenie programu obsługi wyświetlacza multipleksowanego. Tak jak obiecałem, doprowadzimy teraz program do pełnej funkcjonalności. Zmienimy elementy marnujące cenne zasoby. Ważne jest jednak to, abyś wiedział, że będziemy musieli w tym celu odejść od

standardu ANSI C. W standardzie tym nie występuje twór taki jak przerwania oraz oddzielna pamięć danych i programu. Jedyne, co w tym zakresie zostało zdefiniowane, to fakt, że wszystkie nietypowe problemy twórca kompilatora powinien... rozwiązać we własnym zakresie.

Więcej o plikach nagłówkowych

Do tej pory niewiele pisałem o tytułowych plikach. Nagłówki dołączaliśmy do każdego 7. tworzonych plików. Przypomnę, żc praktycznie każdy program posiadał dyrektywę itindude <avr\io.h>. W poprzedniej części zaczęliśmy korzystać także z dobrodziejstw, jakie daje nam plik <inttypes.h>. Z dyrektywy Uindude będziemy korzystać coraz intensywniej, dlatego też jest to najwyższa pora na jej dokładniejsze opisanie. Informacje na ten temat znajdują się w ramce u dołu strony.

AVR-GCC - przerwania

Zanim zabierzemy się do dalszych przeróbek naszego kodu, poświęćmy chwilę na przemyślenie, gdzie umieścimy obsługę naszego wyświetlacza. Na pewno będzie to jedno z przerwań zegara — licznika. Warto w celu jego wybrania zerknąć do dokumentacji opisującej procesor AT90S2313. Układ ten ma dwa liczniki. Prosty ośmiobitowy oraz bardziej rozbudowany o rozdzielczości szesnastu

ABC... C

Dyrektywa #inctude i pliki nagłówkowe

Jak wszystkie komendy zaczynające się znakiem hash (#), tak też i #include nie jest instrukcją języka C. Jest to komenda przeznaczona dla kompilatora, sterująca jego

ttinclude <plik.h>

Gdy kompilator natknie się na wspomnianą dyrektywę, wstawi w jej miejsce odpowiedni plik. Uważaj teraz: ważne jest to, jakimi znakami otoczymy nazwę pliku. Do tej pory cały czas stosujemy zapis <plik.h>. Dzięki temu kompilator wie, że chcemy dołączyć jeden ze standardowych nagłówków. Wyjściowym folderem, w którym odbywa się w takim przypadku poszukiwanie pliku, jest C:\WinAVR\avr\indude. Jeśli jeszcze tego nie zrobiłeś - warto abyś tam zajrzał i zobaczył, jakie standardowe pliki oferuje GCC. Przejrzyj, co znajduje się w ich wnętrzu.

Nie przejmuj się, jeśli wydają się teraz niesamowicie zagmatwane. W praktyce posiadają one bardzo rozbudowane komentarze, które bywają lepszą dokumentacją niż znajdujący się w katalogu C:\WinAVR\doc\avr-Iibc prosty manuał. Zwróć uwagę także na to, że w plikach tych często znajduje się dołączenie innych plików. Możesz spróbować prześledzić, jak odbywają się kolejne „dołącze-

Wielokrotnie dołączając plik nagłówka, odwoływaliśmy się do podkatalogu avr. W miejscu tym zostały umieszczone pliki, których standard C w żaden sposób nie ujmuje i są one ściśle przynależne do zastosowanych procesorów. Zajrzyj do naszego „niezbędnika” - pliku io.h. Jest to plik na pierwszy rzut oka dość skomplikowany. Okazuje się jednak, że jego rdzeń stanowi warunkowe dołączenie innych plików, zależnie od wybranego typu procesora. Zajrzyj do pliku io2313.h. Tutaj właśnie znajdują się najważniejsze z naszego punktu widzenia definicje rejestrów, wektorów przerwań i nazw poszczególnych bitów naszego procesora. Czasami warto tu zajrzeć, przede wszystkim, jeśli poszukujemy nazwy jakiegoś rejestru, do którego właśnie chcemy się odwołać.

W oddzielnej ramce umieściłem skrótowe informacje o najbardziej nas interesujących plikach znajdujących się w tym folderze.

#include „plik.h”

Nazwa pliku może być także umieszczona między znakami cudzysłowiu. W takim przypadku poszukiwanie odpowiedniego pliku będzie się odbywać z poziomu folderu, w którym znajdują się pliki naszego programu. Ma to niebagatelne znaczenie w chwili pisania dużego programu oraz jego rozbijania na wiele plików. Jest także ważne, jeśli chcemy dołączyć po prostu jakiś swój plik, czy to z własnymi, uniwersalnymi funkcjami, czy też pobrany z sieci.    „

Z możliwości tej nie będziemy dziś jeszcze korzystać, jednak warto już teraz wiedzieć, że taką możliwość istnieje.

Elektronika dla Wszystkich Lipiec 2005 37


Wyszukiwarka

Podobne podstrony:
13359 Image31 (4) ProgramowanieCzęść 3 t Najczęściej stosowane, standardowe pliki nagłówkowe udostęp
7 (522) 158 Slackware Linux Tabela 5.1. Najczęściej stosowane standardowe cele pakietu iptables Na
Streszczenie Praca ta stanowi przegląd algorytmów oraz technik programowania najczęściej stosowanych
Kamera fotograficzna RC-30 Standardowy wymiar 23 x 23 cm Najczęściej stosowane ogniskowe: 152 m
szerokie zastosowanie w statystyce matematycznej odchylenie standardowe jest najczęściej stosowaną m
Image217 Programowanie I Programowanie I Najczęściej stosowane typy parametrów oznaczenie oznacza
Złącze o standardzie ST Do niedawna było to jedno z najczęściej stosowanych złączy w instalacjach
gra 4 jpeg jpeg 21.    Wskaż najczęściej stosowane metody wskaźnikowe: a)   

więcej podobnych podstron