Laboratorium wirtualne 1/Moduł 3 - ćwiczenie 3: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 79: | Linia 79: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M3_Slajd05.png]] | |valign="top" width="500px"|[[Grafika:LW1_M3_Slajd05.png]][[Grafika:LW1_M3_Slajd06.png]] | ||
|valign="top"|'' | |valign="top"|Po dodaniu do projektu pliku '''scope.fp''' w menu '''Instrument''' pojawi się pozycja '''Sample Oscilloscope''', pod którą znaleźć można 4 funkcje wchodzące w skład sterownika symulującego oscyloskop: | ||
'''scope_init''' - inicjuje połączenie z przyrządem. | |||
'''scope_config''' - konfiguruje nastawy oscyloskopu : numer kanału, wzmocnienie toru Y, podstawę czasu oraz tryb pracy (AC, DC, GND). | |||
'''scope_read_waveform''' - na podstawie dokonanych w poprzedniej funkcji nastaw z przyrządu wczytany zostaje wektor przebiegu czasowego. | |||
'''scope_close''' - kończy komunikację z przyrządem. | |||
Funkcję inicjującą najlepiej wywołać w programie jednorazowo w funkcji '''main''' a więc na samym początku działania programu: | |||
'''//Funkcję scope_init dobrze jest wywołać przed funkcją''' | |||
'''//DisplayPanel''' | |||
'''scope_init (1);''' | |||
'''DisplayPanel (panelHandle);''' | |||
Podobnie funkcję kończącą współpracę z przyrządem najlepiej wywołać w programie jednorazowo w funkcji '''main''' tym razem '''na końcu''' działania programu: | |||
'''//Funkcję scope_close wywołać po funkcji //DiscardPanel''' | |||
'''DiscardPanel (panelHandle);''' | |||
'''scope_close ();''' | |||
Funkcje '''scope_config''' oraz '''scope_read_waferom''' będą wywoływane “na żądanie” użytkownika programu. | |||
Dołączyć nagłówek scope.h do pliku źródłowego: | |||
'''#include ”scope.h” ''' | |||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M3_Slajd07.png]] | |valign="top" width="500px"|[[Grafika:LW1_M3_Slajd07.png]] | ||
|valign="top"|'' | |valign="top"|Zadeklarować w kodzie funkcję, której zadaniem będzie odświeżanie ekranu, | ||
po każdorazowej zmianie nastaw poczynionych przez użytkownika: | |||
'''void Przerysuj(void);''' | |||
Delkaracja powinna się znajdować na początku kodu źródłowego. | |||
W pliku źródłowym umieścić definicję funkcji '''Przerysuj()''' : | |||
'''void Przerysuj(void)''' | |||
{ | |||
} | |||
Definicję można umieścić w dowolnym miejscu w kodzie (poza ciałami innych funkcji !). Najlepiej jednak funkcję definicję '''Przerysuj()''' umieścić bezposrednio po funkcji '''main'''. | |||
W początkowej fazie programu będzie ona wywoływać funkcje symulatora oscyloskopu | |||
'''ze standardowymi parametrami''' i wyświetlać „odczytany” na ich podstawie przebieg czasowy. | |||
W tym celu należy w funkcji '''Przerysuj()''' umieścić wywołania: '''scope_config, scope_read_waveform, DeleteGraphPlot''' oraz '''PlotWaveform'''. | |||
Z menu '''Instrument -> Sample Oscillosope''' wybrać '''Configure''' (funkcja '''Przerysuj()''') i z domyślnymi parametrami wstawić do kodu (wewnątrz funkcji '''Przerysuj()''') | |||
Ponownie z menu '''Instrument -> Sample Oscillosope''' wybrać '''Read Waveform''' (funkcja '''scope_read_waveform'''). | |||
Zdefiniować: | |||
*tablicę, w której zwracany będzie wektor przebiegu czasowego (typ zmiennych w tablicy: '''double''', rozmiar tablicy: '''1024''', nazwa tablicy np.: '''przebieg'''); | |||
*zwracany okres próbkowania (typ zmiennej: '''double''', nazwa np.: '''tp'''); | |||
*zwracaną chwilę początkową przebiegu (typ zmiennej: '''double''', nazwa np.: '''x0'''); | |||
Z ww parametrami wstawić funkcję do kodu (wewnątrz funkcji '''Przerysuj()''') | |||
Do funkcji '''Przerysuj()''' dodać wywołania '''DeleteGraphPlot''' oraz '''PlotWaveform''' | |||
W funkcji main po wywołaniu '''DisplayPanel (panelHandle);''' można umieścić '''Przerysuj();''' | |||
|} | |} | ||
Linia 100: | Linia 160: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M3_Slajd08.png]] | |valign="top" width="500px"|[[Grafika:LW1_M3_Slajd08.png]] | ||
|valign="top"| | |valign="top"|Po uruchomieniu program będzie wyglądał podobnie jak na ilustracji poniżej. | ||
|} | |} | ||
<hr width="100%"> | <hr width="100%"> | ||
Linia 106: | Linia 166: | ||
{| border="0" cellpadding="5" width="100%" | {| border="0" cellpadding="5" width="100%" | ||
|valign="top" width="500px"|[[Grafika:LW1_M3_Slajd09.png]] | |valign="top" width="500px"|[[Grafika:LW1_M3_Slajd09.png]] | ||
|valign="top"|'' | |valign="top"|Sprawdzić typ danych i zakres przyjmowanych wartości dla pierwszego parametru w funkcji '''scope_config''' (kursor umieścić na funkcji '''scope_config''', klawiszami Ctrl+P wywołać panel funkcyjny; przejść do zmiennej '''Channel''' i klawiszem F1 wywołać okno pomocy, z którego można odczytać typ zmiennej i zakres dozwolonych wartości. Każdy argument funkcji '''scope_config''' posiada określony typ i zakres. W związku z tym typ definiowanej dla tego argumentu zmiennej musi być identyczny. Dodatkowo przełącznik znajdujący się na ekranie i przyporządkowany do danego parametru funkcji '''scope_config''' musi reprezentować zgodny z tym argumentem typ danych i posiadać dopuszczalny zakres przyjmowanych wartości. | ||
Pierwszy parametr odpowiada za kanał oscyloskopu jest typu '''int i''' może mieć wartość | |||
1 lub 2. | |||
Zdefiniować globalnie zmienną typu '''int''' o nazwie przykładowo '''nrKanalu''' zainicjowaną wartością 1. | |||
'''int nrKanalu = 1;''' | |||
W edytorze płyty czołowej wybrać z menu '''Create -> Ring''' przełącznik służący zmianie kanału: | |||
Parametry: | |||
Constant Name: '''WYBORKANAL''' | |||
Callback Function: '''CzytajKanal''' | |||
Control Mode: '''Hot''' | |||
|} | |} | ||
Wersja z 16:10, 29 sie 2006
wersja beta
LABORATORIUM WIRTUALNE 1
Ćwiczenie 3 - Projekt wirtualnego oscyloskopu w środowisku LabWindows/CVI
![]() |
|
![]() |
Stworzyć nowy projekt i wybrać File -> New -> *.uir. |
![]() |
Po uruchomieniu program będzie wyglądał podobnie jak na ilustracji poniżej. |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |
![]() |
opis slajdu |