cz7

cz7



Programowanie


kształceń. Wymaga od nas jedynie stworzenia funkcji wypisującej oraz odczytującej jeden znak. Genialność pomysłu pokazuje rysunek w ramce:

Funkcje get i put

Dwie powyższe funkcje nic są dokładnie określone przez standard ANSI C. W AVR-GCC muszą one mieć formę jak poniżej:

int put(char znak) int get(void)

Funkcja'pul powinna zwracać 0, jeśli wysyłanie znaku przebiegło pomyślnie, w innym przypadku zwracamy wartość ujemną, co spowoduje przerwanie działania operującej na niej funkcji - nawet jeśli wszystkie jej dane nie zostały wysłane. Podobnie sytuacja ma się z funkcją get. Tutaj jednak funkcja normalnie zwraca odebraną daną, gdy wystąpi błąd, należy zwrócić wartość ujemną.


Listing 54plik rs.lt


#defi ne rs_make_UBRRfbaud} (F_CPU/(baud*161)-l) #define RS_SET_BAUD(baud) \

{UBRR0H = (uint8_t)(RS_MAKE_UBRR(baud)»8): \ UBRR0L = (uint8_t)RS_MAKE_UBRR(baud); }


Sendif // rs_h_included


int ir.ain(void)

//////////////////////////////////////////// // Inicjacja portu szeregowego rs_set_3aud(def_baud);

UCSROG ■ 1«URSEL0 | 1«UCSZ0L | l«UCSZO0; •JCSR0B = 1«HXEN0 | 1«TXEN0;

CCSR3A » 0;

// Koniec inicjacji

fJI/lf/l/lll/l/ll//llll//llfiliil/ll/lllflll


tJ inicjacja funkcji

fdovopen(Es_puC, rs_


puts(„Hello world!");


ABC... C

Jak działają strumienie?

Pamiętasz, jak do tej pory obsługiwaliśmy napisy na wyświetlaczu LCD? Pisaliśmy oddzielne funkcje do wypisania łańcucha znaków, do wypisania liczby w formacie dziesiętnym czy szesnastkowym.

Idea funkcji operujących na zasadzie strumieni zdejmuje z nas obowiązek tworzenia wszystkich prze

Rys. 38 Dodanie pliku rs.c Rys. 39 Efekt działania programu

Utwórz teraz ostatni potrzebny nam, nowy plik. Zapisz go pod nazwą harddef.h. Tak jak robiliśmy to poprzednio, zmieścimy w nim wszystkie definicje dotyczące części sprzętowej. Za taką możemy uznać prędkość transmisji. Może wydaje Ci się to bezcelowe - tworzenie nowego pliku dla jednej tylko danej. Jednak trzeba wziąć pod uwagę, że program może się rozrastać. Najlepiej od początku utrzymywać w nim porządek. Zawartość wspomnianego pliku pokazuje listing 55.

Jeśli zaczynasz się gubić w tym, co robimy, nie poddawaj się teraz! Przed nami ostatnia prosta, która nada sens wszystkim naszym działaniom. Listing 56 pokazuje zmienioną funkcję main. Teraz program po skompilowaniu i władowaniu danych do procesora zacznie działać zgodnie z naszym zamierzeniem. Konieczne będzie podłączenie płytki do wolnego portu RS232 w naszym komputerze. Do komunikacji wykorzystać można dowolny program terminala. Może być to nawet terminal wbudowany w środowisko BASCOM. Transmisję należy skonfigurować na:

Liczba bitów na sekundę: 4800 Bity danych: 8 Parzystość: Brak Bity stopu: 1

Rysunek 39 pokazuje efekt działania programu. Po każdym zerowaniu procesor wyśle kolejny napis.

Zgodnie z dokumentacją, funkcja puts dodaje na koniec znak nowej linii. Nic wprowadza jednak znaku powrotu karetki, co daje widoczny na rysunku 39 efekt. Nie każdy terminal zinterpretuje przesyłane dane w taki właśnie sposób, jednak aby zupełnie pozbyć się problemu, możemy napis zamienić na:

„Hello world!\r”

W ten sposób ręcznie dodamy przed znakiem nowej linii znak powrotu karetki i wszystkie nowe napisy ułożą się jeden pod drugim.

Jaki to ma sens

Dobrze więc... utworzyliśmy, zajmujący ponad 1KB pamięci, program wypisujący za pomocą portu RS ładne przywitanie. Początek nic wypadł nam zachwycająco. Zmniejszanie zajętości pamięci związane będzie z tematem, który chcę omówić dopiero w kolejnej części. Teraz zajmijmy się poznaniem funkcji, która tak naprawdę sprawia, że biblioteka stdio jest potężnym narzędziem Przeczytaj ramkę ABC... C -printf, razem z dołączonymi do niej tabelkami. Nic wygląda to może w tej chwili najprościej, dlatego też proponuję natychmiast przejść do przykładu pokazanego na listingu 57. Jedyne, co musisz zmienić, to zawartość funkcji main. Ze względu na oszczędność miejsca inicjacja portu szeregowego, która nie uległa zmianie, została wykrop-kowana.

Działanie przykładowego programu pokazuje rysunek 40.

Pobaw się tym kodem. Sprawdź,

Inicjowanie urządzenia

Zakładając, żc posiadamy już gotowe funkcje put oraz get, musimy jeszcze poinformować funkcje z biblioteki stdio o tym, że chcemy właśnie z nich korzystać. Wykonujemy to za pomocą funkcji fdcvopen. Jej składnię przedstawiam poniżej:

fdevopen(put, get, 0);

Ostatni parametr jest niewykorzystany i powinien mieć zawsze wartość 0. Po wywołaniu jak wyżej, podane funkcje zostaną przyporządkowane, odpowiednio, domyślnemu wyjściu oraz wejściu. Od tej chwili wywołanie przykładowej funkcji puls z listingu 52 da oczekiwany efekt przesiania kolejnych znaków W *e’ T i' ‘o' ‘ ‘ ‘w’ ‘o’ V T ‘d’ *!’, kolejno do funkcji pul. Go z kolei w niej będzie się działo z przesłanymi znakami, to już kwestia naszych potrzeb

Listing 55-plik harddef.h

fi ne DEF_BAUD 4800 #endif // harddef_h_included

Ig 55 -plik harddef.h

fdefine DEF_BAUD 4800 #endif // HARODEF_H_INCLUDED

domyślnych strunrier

40 Luty2006 Elektronika dla Wszystkich


Wyszukiwarka

Podobne podstrony:
TS.400/16/13-14Wykaz zmian dla planów studiów i programów kształcenia obowiązujących od roku
SYTUACJA MIĘDZYNARODOWA POLSKI W 1939 ROKU: 24 października 1938 roku Niemcy żądają od nas, aby stwo
Sylabus do programu kształcenia obowiązującego od roku akademickiego 2012/13 Nazwa
CB Radio system łączności radiowej wymagający od użytkowników jedynie posiadania odpowiedniego
Wstęp Dzisiejsza sytuacja na rynku pracy wymaga od nas wszystkich zaangażowania i współpracy przy bu
Już to w ogóle ten kąt celi wyjątkowo nam się udał. Naprzeciw, na górnych kojkach, odgrodzone od nas
w programie PowerPoint. Zaczynają od prostych prezentacji i stworzenia albumu fotograficznego, po cz
Oznacza to, że postulat racjonalności wymaga od podmiotu znajomości wszystkich tych infonnacji oraz
klientami wymaga od organizacji dopasowywania ich produktów i usług oraz relacji z klientem opartych
img338 Rozkład F przypomina swym kształtem rozkład x2; jest on różny od zera jedynie dla dodatnich w
2. WYMAGANIA WSTĘPNE Student posiada wiedzę z zakresu programu kształcenia na studiach I stopnia, ki
Od wielu lat na kierunku Pedagogika realizujemy ciekawy i nowatorski program kształcenia. W ramach
PROGRAM TERAPII PEDAGOGICZNEJ PRAWIDŁOWE PROWADZENIE PRACY WYRÓWNAWCZEJ WYMAGA OD NAUCZYCIELA PEŁNEG
IMAG0684 (2) tem, gdyż laki ich kształt mógł być u nas niezależny od obcych wpływów. Zwłaszcza że el
Realizacja procesu kształcenia z wykorzystaniem technologu internetowych będzie wymagała od Politech
Dziennik Ustaw -10- Poz. 188 2) wymagań określonych w podstawie programowej kształcenia ogólneg
CELE EDUKACYJNE Cele kształcenia - wymagania ogólne zawarte w podstawie programowej I.

więcej podobnych podstron