Budowa prostego dalmierza. Mariusz Janiak

Podobne dokumenty
Budowa zestawu dalmierzy. Mariusz Janiak Marcin Gajos

BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO

Budowa zestawu dalmierzy. Mariusz Janiak Marcin Gajos

Laboratorium Analogowych Układów Elektronicznych Laboratorium 4

PL B1. INSTYTUT MECHANIKI GÓROTWORU POLSKIEJ AKADEMII NAUK, Kraków, PL BUP 21/08. PAWEŁ LIGĘZA, Kraków, PL

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO

Zaprojektowanie i zbadanie dyskryminatora amplitudy impulsów i generatora impulsów prostokątnych (inaczej multiwibrator astabilny).

RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19)PL (11) (13) B1

płytka montażowa z tranzystorami i rezystorami, pokazana na rysunku 1. płytka montażowa do badania przerzutnika astabilnego U CC T 2 masa

Wstęp Architektura... 13

U 2 B 1 C 1 =10nF. C 2 =10nF

SML3 październik

SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej.

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Podstawy Elektroniki dla Teleinformatyki. Generator relaksacyjny

UKŁADY Z PĘTLĄ SPRZĘŻENIA FAZOWEGO (wkładki DA171A i DA171B) 1. OPIS TECHNICZNY UKŁADÓW BADANYCH

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI

Programowanie mikrokontrolerów 2.0

Liniowe układy scalone w technice cyfrowej

Podstawy Elektroniki dla Informatyki. Generator relaksacyjny

PL B1. POLITECHNIKA WROCŁAWSKA, Wrocław, PL BUP 07/10. ZDZISŁAW NAWROCKI, Wrocław, PL DANIEL DUSZA, Inowrocław, PL

(13) B1 (12) OPIS PATENTOWY (19) PL (11) PL B1 RZECZPOSPOLITA POLSKA. (21) Numer zgłoszenia: (51) IntCl7 H02M 7/42

Wzmacniacze operacyjne

LABORATORIUM ELEKTRONIKA I ENERGOELEKTRONIKA BADANIE GENERATORÓW PRZEBIEGÓW PROSTOKĄTNYCH I GENERATORÓW VCO

P-1a. Dyskryminator progowy z histerezą

Sterownik momentu obrotowego silnika prądu stałego

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

1. Definicja i przeznaczenie przerzutnika monostabilnego.

Generator przebiegu prostokątnego

Badanie działania bramki NAND wykonanej w technologii TTL oraz układów zbudowanych w oparciu o tę bramkę.

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

Politechnika Poznańska, Instytut Elektrotechniki i Elektroniki Przemysłowej, Zakład Energoelektroniki i Sterowania Laboratorium energoelektroniki

Programowanie mikrokontrolerów 2.0

Instrukcja nr 6. Wzmacniacz operacyjny i jego aplikacje. AGH Zespół Mikroelektroniki Układy Elektroniczne J. Ostrowski, P. Dorosz Lab 6.

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Część 6. Mieszane analogowo-cyfrowe układy sterowania. Łukasz Starzak, Sterowanie przekształtników elektronicznych, zima 2011/12

Podstawy Elektroniki dla Informatyki. Wzmacniacze operacyjne

Tranzystor bipolarny. przykłady zastosowań cz. 1

Państwowa Wyższa Szkoła Zawodowa

Wzmacniacze napięciowe z tranzystorami komplementarnymi CMOS

Światłowodowy kanał transmisyjny w paśmie podstawowym

Generatory przebiegów niesinusoidalnych

(13) B1 PL B1 RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) PL (11) fig. 1

Badanie diod półprzewodnikowych

Tranzystor bipolarny. przykłady zastosowań

Układy czasowo-licznikowe w systemach mikroprocesorowych

PL B1. AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE, Kraków, PL BUP 14/12

a) dolno przepustowa; b) górno przepustowa; c) pasmowo przepustowa; d) pasmowo - zaporowa.

Ćwiczenie 7 PARAMETRY MAŁOSYGNAŁOWE TRANZYSTORÓW BIPOLARNYCH

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Liniowe układy scalone. Elementy miernictwa cyfrowego

b) Zastosować powyższe układy RC do wykonania operacji analogowych: różniczkowania, całkowania

WZMACNIACZ OPERACYJNY

Politechnika Poznańska, Instytut Elektrotechniki i Elektroniki Przemysłowej, Zakład Energoelektroniki i Sterowania Laboratorium energoelektroniki

Generatory impulsowe przerzutniki

Ćwiczenie nr 05 1 Oscylatory RF Podstawy teoretyczne Aβ(s) 1 Generator w układzie Colpittsa gmr Aβ(S) =1 gmrc1/c2=1 lub gmr=c2/c1 gmr C2/C1

Badanie przerzutników astabilnych i monostabilnych

INSTYTUT FIZYKI JĄDROWEJ im. Henryka Niewodniczańskiego Polskiej Akademii Nauk ul. Radzikowskiego 152, Kraków

Spis treści Przełączanie złożonych układów liniowych z pojedynczym elementem reaktancyjnym 28

Demodulator FM. o~ ~ I I I I I~ V

WSTĘP DO ELEKTRONIKI

Zapoznanie się z podstawowymi strukturami funktorów logicznych realizowanymi w technice RTL (Resistor Transistor Logic) oraz zasadą ich działania.

Laboratorium Elektroniki

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Ćwiczenie 21 Temat: Komparatory ze wzmacniaczem operacyjnym. Przerzutnik Schmitta i komparator okienkowy Cel ćwiczenia

Konstrukcja i testy piezoelektrycznego systemu zadawania siły.

Projektowanie i produkcja urządzeń elektronicznych

Generator tonów CTCSS, 1750Hz i innych.

Ćwiczenie 5. Zastosowanie tranzystorów bipolarnych cd. Wzmacniacze MOSFET

EUROELEKTRA. Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej. Rok szkolny 2013/2014

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki

dwójkę liczącą Licznikiem Podział liczników:

Wzmacniacze operacyjne

Liniowe układy scalone

Wyjścia analogowe w sterownikach, regulatorach

Część 5. Mieszane analogowo-cyfrowe układy sterowania

Detektor Fazowy. Marcin Polkowski 23 stycznia 2008

Politechnika Białostocka

Tranzystory bipolarne elementarne układy pracy i polaryzacji

Zespół Szkół Łączności w Krakowie. Badanie parametrów wzmacniacza mocy. Nr w dzienniku. Imię i nazwisko

1. Nadajnik światłowodowy

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Wzmacniacz jako generator. Warunki generacji

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Wzmacniacz operacyjny

Podstawy Elektroniki dla Informatyki. Generator relaksacyjny z elementami pętli fazowej

OPIS PATENTOWY

Lekcja 19. Temat: Wzmacniacze pośrednich częstotliwości.

TEST KONKURSOWY CZAS TESTU 40 MIN ILOŚĆ MAKSYMALNA PUNKTÓW 20 INSTRUKCJA:

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

3. WYNIKI POMIARÓW Z WYKORZYSTANIEM ULTRADŹWIĘKÓW.

Demonstracja: konwerter prąd napięcie

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Katedra Przyrządów Półprzewodnikowych i Optoelektronicznych Laboratorium Przyrządów Półprzewodnikowych. Ćwiczenie 4

Ćw. 7 Wyznaczanie parametrów rzeczywistych wzmacniaczy operacyjnych (płytka wzm. I)

Temat: Wzmacniacze selektywne

Transkrypt:

Na prawach rękopisu INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ Raport serii PRE nr 55/04 Budowa prostego dalmierza ultradźwiękowego Mariusz Janiak Słowa kluczowe: sonar, ultradźwięki, pomiar Wrocław 2004

Spis treści 1 Wstęp 2 2 Budowa dalmierza 2 2.1 Obwód wyjściowy nadajnika.............................. 2 2.2 Obwód wejściowy odbiornika............................. 2 2.3 Dalmierz wersja 1................................... 3 2.4 Dalmierz wersja 2................................... 4 2.5 Dalmierz wersja 3................................... 5 3 Obsługa dalmierza - oprogramowanie 6 4 Podsumowanie 7 5 Załacznik 8

1 Wstęp Potrzeba zbudowania prostego urządzenia do wykrywania przeszkód narodziła się wraz z ogłoszeniem przez Koło Naukowe Robotyków otwartych zawodów Mini-sumo robotów. Roboty te musiały być całkowicie autonomiczne, nie mogły być cięższe niż 500g oraz powinny mieścić się w skrzynce 10x10cm. Wymusiło to na konstruktorach aby zainstalowane na ich robotach czujniki były niewielkie i dość lekkie. Raczej nie można było sobie pozwolić na ich dublowanie, na rozwiązania tylko częściowo spełniające swoje zadanie. Warto podkreślić że urządzenie takie powinno być tanie i możliwe do realizacji skromnymi środkami technicznymi. Uwzględniając wszystkie te wskazania zaproponowałem budowę prostego dalmierza ultradźwiękowego wymagającego jedynie trzech, łatwo dostępnych, układów scalonych i niewielkiej ilości elementów dyskretnych. Miniaturyzację uzyskałem poprzez zastosowanie elementów wyłącznie w obudowach SMD. W toku prac powstało kilka, nieznacznie różniących się, wersji dalmierza, które postaram się dokładniej opisać w tej pracy. 2 Budowa dalmierza Tak jak już wspomniałem powstały trzy wersje dalmierza ultradźwiękowego różniące się między sobą sposobem generowania fali nośnej oraz sposobem progowania sygnału wejściowego (odbitego echa). Kolejne wersje są próbą wyeliminowania słabych punktów układu, których nie przewidziano na etapie projektowym a które pojawiły się podczas uruchamiania urzadzenia. Wszystkie zaproponowane układy posiadają identyczną cześć wyjściową nadajnika oraz część wejściową odbiornika. 2.1 Obwód wyjściowy nadajnika Obwód wejściowy nadajnika zbudowany jest na popularnym układzie MAX232 (rysunek 1). Jest to przetwornica pojemnościowa wykorzystywana do dopasowania napięć w torach transmisji szeregowej w standardzie RS232. W moim urządzeniu układ ten wykorzystywany jest do innych celów i pracuje w trochę nietypowy, jak dla niego sposób. Spowodowane jest to tym, że dalmierz ultradźwiękowy zasilany jest jedynie pojedyńczym napięciem +5V przy którym przetwornik piezoelektryczny, będący źródłem ultradźwięków, nie działa poprawnie (wymaga około 20V). Zadaniem układu MAX232 jest podwyższenie napięcia do takiego, przy którym będzie możliwa poprawna praca przetwornika piezoelektrycznego. Przetwornica pracuje w układzie mostkowym, w którym przetwornik umieszczony jest pomiędzy dwoma kanałami wyjściowymi układu MAX232. Na jeden z kanałów podawany jest sygnał wprost z generatora G, na drugi sygnał zanegowany G. 2.2 Obwód wejściowy odbiornika Obwód wejściowy odbiornika zbudowany jest w oparciu o układ MAX4168 (rysunek 2). Jest to precyzyjny, szybki wzmacniacz operacyjny z wejściami i wyjściami typu rail-to-rail, 5MHz polem wzmocnienia oraz trybem shutdown. Wzmacniacz pracuje w układzie nieodwracającym ze zmiennoprądowym sprzężeniem zwrotnym. Na wejście nieodwracające wzmacniacza podawany jest sygnał z czujnika ultradźwięków. Dodatkowo wejście to polaryzowane jest połową napięcia zasilania. Usunięcie składowej stałej sygnału zapewnia kondensator w pętli ujemnego sprzężenia zwrotnego. Wzmocnienie układu dla składowej zmiennej sygnału dobrane jest na poziomie około 100, teoretycznie można je zwiększyć do ok 125. Stan niski na linii en powoduje przejście wzmacniacza operacyjnego w tryb obniżonego poboru mocy 2

Rysunek 1: Schemat obwodu wyjściowego nadajnika oraz ustawienie wyjścia w stan wysokiej impedancji. Taki sposób pracy wzmacniacza wykorzystałem do blokowania odbiornika podczas nadawania. Zwiększa to odporność na zakłócenie odbiornika przez własny nadajnik. Rysunek 2: Schemat obwodu wejściowego odbiornika 2.3 Dalmierz wersja 1 Układ przedstawiony na rysunku 3 powstał jako pierwszy i posłużył do zbadania zachowania się układu MAX232 w torze wyjściowego nadajnika. Do generowania fali prostokątnej użyto prostego generatora RC zbudowanego w oparciu o jeden negator 74HCT14, bramkowany zewnętrznym sygnałem poprzez diodę Schottky ego. Aby umożliwić precyzyjne dostrojenie się do częstotliwości 40kHz zastosowano wieloobrotowy potencjometr montażowy helitrim. Tak zbudowany układ generował fale prostokątną o małej stałości częstotliwości w czasie oraz wypełnieniu różnym od 50%. W konsekwencji powodowało to znaczace pogorszenie emitowanego sygnału. Niestety kiedy powstawała ta wersja dalmierza nie dysponowaliśmy jeszcze rezonatorami kwarcowymi na częstliwość 40kHz. Stopień wyjściowy odbiornika składa się z detektora zbudowanego na elementach D2, D3, C10, R5, 3

R9 oraz tranzystora T1 pracującego w układzie otwartego kolektora. Dzięki zastosowaniu detektora uzyskujemy jeden długi impuls, zamiast paczki impulsów. Łatwiej jest wtedy zbudować urzadzenie obsługujące taki dalmierz ponieważ wystarczy tylko wykrywać odpowiednie zbocza. Baza tranzystora zasilana jest z dzielnika R5, R9 stanowiącego jednocześnie obciążenie detektora. Tak zaprojektowany układ został zbudowany i uruchomiony. Pomimo nienajlepszego obwodu generatora dalmierz posiadał dość znaczny zasięg dzięki dużej czułości odbiornika. Powodowało to jednak, że nadajnik zakłócał odbiornik. Wymusiło to odizolowanie części nadawczej od części odbiorczej lub zmniejszenie czułości a przez to zmniejszenie zasięgu dalmierza. Rysunek 3: Schemat pierwszej wersji dalmierza ultradźwiękowego 2.4 Dalmierz wersja 2 Schemat drugiej wersji dalmierza ultradźwiękowego można zobaczyć na rysunku 4. Po pierwsze zmianie uległ obwód generatora. Został zbudowany w oparciu o bramkę NAND 74HCT132 oraz rezonator kwarcowy. Zastosowanie rezonatora kwarcowego poprawiło znacznie stabilność generowanego sygnału oraz wyeliminowało potrzebę strojenia układu. Użycie bramki NAND zamiast NOT spowodowane było tym, że przy wcześniejszym sposobie bramkowania generator nie chciał się wzbudzać. Zastosowanie rezystora R2 ułatwia wzbudzenie się układu. Rezystor R10 wraz z kondensatorem C15 stanowi prosty filtr dolnoprzepustowy uniemożliwiający wzbudzenie się układu na wyższych częstotliwościach. Po drugie zmianie uległ obwód wyjściowy odbiornika, został nieco uproszczony. Nie posiada ob- 4

wodu detektora dlatego przy odbiorze echa otrzymamy paczkę impulsów zamiast jednego dłuższego impulsu. Bramka IC3C pracuje tu w roli komparatora, progującego sygnał. Niestety nie mamy wpływu na dobór tego progu co jest istotną wadą. Co więcej każda bramka posiada nieco inne progi przełączania, rozrzut jest tutaj dość znaczny. Ponadto są one zależne od temperatury oraz napięcia zasilania. Zaletą takiego rozwiązania jest to, że sygnał z wyjścia bramki można podać bezpośrednio na wejścia cyfrowych układów pomiarowych. Nie trzeba stosowanić dodatkowych układów formujących zbocza sygnału wyjściowego. Takie rozwiązanie jest bardzo proste oraz łatwe w realizacji. Podczas testów okazało się że dalmierz posiada bardzo ograniczony zasięg dochodzący maksymalnie do 20cm. Takie wyniki nie były zadowalające. Czułość urządzenia pogarszała znaczna histereza bramki Schmitta, na którą niestety nie mamy wpływu. Wydłużanie generowanego impulsu oraz zmiana wartości niektórych elementów nie dawała zadowalających rezultatów dlatego zdecydowałem się na zaprojektowanie trzeciej wersji dalmierza. Rysunek 4: Schemat drugiej wersji dalmierza ultradźwiękowego 2.5 Dalmierz wersja 3 W tej wersji poprawiony został tylko układ wyjściowy odbiornika. Schemat układu widać na rysunku 4. W roli komparatora użyłem drugiego, niewykorzystanego wzmacniacza operacyjnego z układu MAX4168. Zastosowałem tu rozwiązanie, w którym próg komparacji wyznacza wartość średnia sygnału podawanego na komparator. Na wejście nieodwracające układu IC2B podawany jest sygnał wprost z pierwszego wzmacniacza IC2A. Na drugie wejście odwracające, podawany jest 5

ten sam sygnał po przejściu przez filtr uśredniający R5, C9. Czułość układu reguluje się za pomocą zmiany histerezy komparatora, która wyznaczają rezystory: R9, R11. Wyjście wzmacniacza IC2B połączone jest z wejściami bramki IC3C, której zadaniem jest poprawa stromości zboczy sygnału wyjściowego. Dalmierz w takiej postaci spisywał się bardzo dobrze, zasięg wzrósł do ok 40cm, co było zadowalającym wynikiem. W każdej chwili można było zmienić czułość układu poprawiając przez to zasięg dalmierza. Niestety nie można zwiększać jej w nieskończoność. Od pewnego poziomu dają o sobie znać szumy uniemożliwiające przeprowadzenie poprawnych pomiarów. Rysunek 5: Schemat trzeciej wersji dalmierza ultradźwiękowego 3 Obsługa dalmierza - oprogramowanie Do obsługi dalmierza najlepiej wykorzystać zewnętrzny mikroprocesor. Sama obsługa jest wtedy bardzo prosta i wymaga jedynie od procesora zdolności odmierzania czasu z odpowiednią precyzją, umiejętności przechwytywania zewnętrznych zdarzeń oraz sterowania zewnętrznym urzadzeniem poprzez jedną linię portu. Tym wymaganiom bez problemu sprosta nawet najprostszy mikrokontroler. Algorytm obsługi dalmierza jest następujący: włącz nadajnik na pewien czas stan niski, wystartuj licznik oraz zapamiętaj jego stan, 6

czekaj na powrót echa zbocze opadające, jeżeli wykryłeś echo, zapamiętaj aktualny stan licznika oraz wykonaj odpowiednie operacje matematyczne by wyliczć dystans, powróć na początek, jeżeli nie wykryłeś echa, po czasię wynikającym z maksymalnego zasięgu dalnierza zainicjuj pomiar od nowa. W załączniku (punkt 5) znajduje się fragment kodu napisanego w języku C na mikrokontroler MC68332 obrazujący sposób obsługi dalmierza ultradźwiękowego. Do obsługi dalmierza wykorzystano dwie popularne i proste w użyciu funkcje TPU: PWM cyklicznie włącza nadajnik na czas wynikający z wypełnienia przebiegu, ITC przy zboczu opadającym na wejściu wybranego kanału zapamiętuje aktualny stan licznika. Pomiary wykonywane są cyklicznie w przerwaniach bez zbytniego angażowania jednostki centralnej. 4 Podsumowanie Budowa nawet tak prostego urządzenia jak proponowany przezemnie dalmierz ultradźwiękowy, nie była zadaniem łatwym, jak mogło się wydawać na samym początku. Podczas prac uruchomieniowych pojawiało się wiele nieprzewidzianych problemów, z którymi trzeba było sobie jakoś poradzić. Pewne rozwiązania okazywały się niestety ślepymi uliczkami, z których trzeba było zrezygnować. W wyniku tego powstały aż trzy wersje dalmierza, które na pierwszy rzut oka nieznacznie się różnią. Jakościowo są to jednak różne rozwiązania dające znaczaco odbiegające od siebie wyniki. Moim zdaniem, warty uwagi i polecenia w zastosowaniu w robocie sumo jest wariant pierwszy i trzeci. W wariancie pierwszym warto zmienić generator na kwarcowy i ewentualnie nieznacznie zmodyfikować stopień wyjściowy. W wariancie trzecim możnaby się pokusić o lepszy dobór wartości poszczególnych elementów. W zaproponowanej postaci układy te działają poprawnie i realizują postawione im zadanie w sposób zadowalający. 7

5 Załacznik /*********************************************************************** * * sonar.c * * Programik w C ilustrujacy obsługę dalmierza ultradźwiękowego z * wykorzystaniem wbudowanych funkcji TPU: PWM i ITC. * * Używa LCD do wyświetlania wyników * * Mariusz Janiak, 2004 * ***********************************************************************/ #include <stdio.h> #include "qsm.h" /* definicje rejestrów QSM dla 68332 */ #include "sim.h" /* definicje rejestrów SIM dla 68332 */ #include "tpu.h" /* definicje rejestrów TPU dla 68332 */ #include "Lcd.h" /* funkcje do oblugi wyświetlacza LCD*/ #define RBASE 0x800000 /*Makra dla PWM-a*/ #define PWMCHAN 0 /* wybrany kanal TPU dla PWM */ #define PWMFUN 9 /* kod funkcji PWM w masce A */ #define PWM_PERIOD (32600) /* okres PWM-a*/ #define PWM_HI (32000) /* wypełnienie*/ #define PWM_LO (PWM_PERIOD-PWM_HI) /*stan niski*/ /*Makra dla ITC-a*/ #define ITC 1 /* kanal TPU dla ITC */ #define ITCFUN 10 /* kod funkcji ITC w masce A */ /*Makra dla TPU*/ #define TI_LEVEL 5 /* poziom przerwania dla TPU*/ #define TI_VECT 4 /* wektor przerwania TPU(cztery starsze bity)*/ extern BYTE tpumska; /* obraz TPURAM dla maski A TPU */ /*Zmienne globalne*/ int start_time=0, end_time=0, flaga=0; /* procedura obslugi przerwania kanalu TPU z funkcja ITC*/ interrupt void int_itc() { ClrInt(ITC); end_time = TPURAM(ITC,4); flaga=1; } /* procedura obslugi przerwania kanalu TPU z funkcja PWM*/ 8

interrupt void int_pwm(){ ClrInt(PWMCHAN); start_time = TPURAM(PWMCHAN,1) - PWM_LO; SetSer(ITC,1); /* inicjalizacja kanału z funkcją ITC*/ } main() { int i; char buf[32]; char * ptr; BYTE * tmaptr, * ramptr; /* Emulacja maski A TPU w RAM */ *((WORD *)0xfffb04) = RBASE>>8; tmaptr = (BYTE *)(& tpumska); ramptr = (BYTE *)RBASE; for(i=0;i<2048;i++) ramptr[i] = *tmaptr++; ramptr = tmaptr; TPUMCR = 0x1a4e 0x0400; /* emulacja TPU */ CPR[0] = 0; CPR[1] = 0; /* zatrzymanie wszystkich kanałów */ /*Konfiguracja przerwan TPU */ *((void (**) ())(4*((TI_VECT<<4)+ITC))) = int_itc; /*ustawienie wektora*/ *((void (**) ())(4*((TI_VECT<<4)+PWMCHAN))) = int_pwm; /*ustawienie wektora*/ TICR = (TI_LEVEL<<8)+(TI_VECT<<4); /* poziom i wektor przerwania TPU */ TPURAM(PWMCHAN,0) = 0x92; /* sterowanie kanału */ TPURAM(PWMCHAN,2) = PWM_HI; /* czas impulsu */ TPURAM(PWMCHAN,3) = PWM_PERIOD; /* okres impulsu */ SetFun(PWMCHAN,PWMFUN); /* kod funkcji: PWM */ SetSer(PWMCHAN,2); /* zadanie: inicjacja */ SetCpr(PWMCHAN,3); /* priorytet: wysoki */ EnInt(PWMCHAN); /*zezwolenie na przerwanie od kanłu z funkcja PWM*/ /*Konfiguracja ITC*/ TPURAM(ITC,0) = 11; /* wykrywanie zbocza opadajacego */ TPURAM(ITC,1) = 0x010E; TPURAM(ITC,2) = 1; /* tylko jeden impuls do zliczenia */ TPURAM(ITC,3) = 0; /* zerowanie licznika impulsów */ SetFun(ITC,ITCFUN); /* kod funkcji: ITC */ SetSeq(ITC,0); /* single shot, no links*/ SetCpr(ITC,3); /* priorytet: wysoki */ EnInt(ITC); /*zezwolenie na przerwanie od kanlu z funkcja ITC*/ Lcd_Init(); /*inicjalizacja wyswietlacza */ asm { ANDI #0xf8ff,SR } /* ustawienie poziomu przerwan na 0 */ 9

} Lcd_Cls(); Lcd_PutCtrl(ONOFF DISP); sprintf(buf,"sonar (MJ)"); Lcd_PutText(buf); while(1){ if(flaga){ flaga = 0; sprintf(buf,"odleglosc: %u Lcd_PutText(buf); } } /*wyczyść wyświetlacz*/ /*wyłaczony kursor i miganie*/ ",end_time-start_time); /* koniec pliku sonar.c */ 10

Mariusz Janiak Instytut Cybernetyki Technicznej Politechniki Wrocławskiej ul. Janiszewskiego 11/17 50-372 Wrocław Niniejszy raport otrzymują: 1. OINT........................................................................... - 1 egz. 3. Autorzy......................................................................... - 4 egz. Razem : 5 egz. Raport wpłynął do redakcji I-6 w listopadzie 2004 roku. 11