Programowanie
jakichkolwiek powodów okazuje się Powinien wyjaśnić znacznie lepiej, co się gacji, bit po bicie, całego uzyskanego wyniku,
wygodniejsze niż zapis szesnastkowy, dzieje niż nawet długi i dokładny opis. Ważne Wykonuje to operator tyldy umieszczonej
jest to, że operator « ma wyższy priorytet
Operator I wykonuje logiczną operację OR
argumentach umieszczonych po obu stronach, operator sumy logicznej Na mojej klawiaturze znaczek ten znajduje się Warto pamiętać, a tym samym klawiszu, gdzie umieszczono zapisie pojawia się aż 8 działań (4 przesunię-
backslash (\).
Jeśli, mimo omówienia działania poszczególnych operatorów, idea takiego zapisu wydaje Ci się niejasna - spojrzyj na rysunek 20.
trzy sumy logiczne, jedno przypisanie), kodzie maszynowym pojawi się tylko wpisa-
przed wyrażeniem.
Zauważ teraz w jak wygodny sposób naszym możemy zapisać znak odpowiadający zaświe-iniu jedynki na wyświetlaczu. Zapomnij przeliczaniu na kartce papieru wyglądu cyfr liczby dziesiętne. Zapis jak przedstawiony
do rejestru stałej wartości. Dlaczego tak w listingu 6 jest znacznie bardziej czytelny, się dzieje - mówi o tym ramka o obliczeniach przenośny i łatwiejszy w modyfikacji. Myślę.
Rys. 20 Zasada obliczania wartości
wpisywanej do COMDDR na listingu 6.
jesteś już w stanie zrozumieć działanie tej ihcemy włączyć tranzys- linii. Pamiętaj jedynie, że dany segment wyświetlacza jest aktywowany przez wystawienie logicznego 0 na odpowiednie wyprowadzenie portu.
Przeprowadź teraz kompilację programu i załaduj go do procesora. Jeśli nie uzyskałeś efektu takiego jaki nas interesował - nie przejmuj się... u mnie zaświeciły się wszystkie wyświetlacze. Zapewne domyślasz się już, że skoro mamy taki s
iv C.
W kolejnej
tor sterujący pierwszym wyświetlaczem LBD.
Ponieważ tranzystory aktywujące wyświetlacze są włączane przez 0 logiczne, po ustawieniu na odpowiednim miejscu jedynki dokonujemy ne-
0 0 0 0
H.
Wartość ostatecznie wpisywana do rejestru
Rys. 21 Efekt występowania priorytetów operatorów.
-l«COM l
f 0 0 0 O 0 0 0_l
l I l l l I I 0
wynik, nie należy szukać błędu w sprzęcie. Jeśli chcesz, w ramach ćwiczenia możesz przesymulo wać program. Ja tak
A_543_2I Przesunięcie b'lem- Przypomnij sobie,
, () () o 6 6 Ó 0 - 0 |jkl spos6b •'kon"£uro
wać środowisko AVRS-tudio. Jeśli to zrobisz, zauważysz, że do portu sterującego tranzystorami Przesuniecie wyświetlaczy wpisywana
:^_q jest wartość 0x80. Ozna
cza to I0000000(b). Zupełnie nie to chcieliśmy uzyskać. Spójrz jeszcze
ABC... C
Zmienne - podstawy
Zakładam tutaj, że wiesz, co to są zmienne i masz pojęcie do czego służą. Ze względu na skrótowy charakter tego kursu tutaj tylko napiszę „jak to się robi w C”.
Typy proste
Zmiennej takiej używa się bardzo podobnie jak miało to miejsce w BASCOM-ie. Niewielka różnica pojawia się w sposobie jej dekla-: racji. Nie ma tutaj słowa kluczowego Dim. Zmienną tworzymy, jak pokazuje przykład:
typ nazwa /=wartość początkowa];
Typy proste zmiennych jakie udostępnia C, znajdz.iesz w tabeli 1.
Na początek posłużymy się tylko zmiennymi globalnymi. Powód takiego działania jest prosty: ich wykorzystanie i sposób obsługi jest najbardziej zbliżony do zmiennych, jakie - poznałeś już dobrze, uczestnicząc w kursie BASCOM. Zgodnie ze standardem, wszystkie zmienne globalne trzeba utworzyć jeszcze zanim pojawi się jakakolwiek funkcja. GCC .umożliwia jednak utworzenie zmiennej w dowolnym miejscu, poza wnętrzem funkcji. Nie będziemy z tego korzystać, ponieważ jedyne, co możemy przez to uzyskać, to malowniczy bałagan w kodzie.
Warto wiedzieć, że jeśli zmiennej globalnej nie nadasz określonej wartości początkowej, zostanie ona domyślnie wyzerowana jeszcze przed rozpoczęciem wykonywania programu.
C umożliwia tworzenie wielowymiarowych tablic. W prostych przypadkach jednak okazuje się, że tablice jednowymiarowe są całkowicie wystarczające. Dla wielu osób będą one zapewne wyglądały bardzo przyjaźnie. Ich tworzenie jest zbliżone do tablic BASCOM-owych:
typ nazwa/ilość] /=/inicjacja}];
W samej obsłudze pojawią się tylko dwie różnice w stosunku do BASCOM-a:
1. Zamiast nawiasów okrągłych, korzystamy z nawiasów kwadratowych.
2. Indeksy tablicy zaczynają się od 0 i mają wartości do ilość-1, zamiast BASCOM-owego zakresu od 1 do ilość.
W praktycznych programach proponuję Ci wykorzystanie pliku, o którym właśnie mowa. Definiuje on bardzo wygodne nazwy typów zmiennych całkowitych, z których możesz (ale nie musisz) korzystać:
'I - wymagana ilość bitów ;S, 16,32 lub 64)
► [u]intN_t
lu - piszemy jeśli potrzebujerny| pmientifij bez znaku |
Elektronika dla Wszystkich Czerwiec 2005 45