Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. W pierwszej kolejności został ustawiony okres licznika za pomocą zmiennej INTERVAL na 0,5 sekundy oraz okres pomiarów za pomoca zmiennej OKRES na 0,1ms. W kolejnym kroku zostały zdefiniowane oraz wyzerowane zmienne temp oraz licznik. Zmienna temp służy do przechowywania zapisanej temperatury.
  2. Następnie napisana została funkcja show() służąca do wyświetlania na wyswietlaczu odczytanej temperatur. W przypadku, gdy jest ona większa niż 1000 na wyświetlony zostaje znak "?", gdy temperatura jest ujemna, czyli mniejsza od zera na wyświetlaczu zostaje wyświetlony znak "-", a przechowywana wartość w zmiennej temp zostaje pomnożona przez -1. Jeżeli temperatura jest mniejsza od 10 to na wyświetlaczu przed cyfrą określającą aktualną wartość temperatury pojawi się 0, np. gdy temperatura to 9 stopni celcjusza to na wyświetlaczu wyświetlone zostanie "09". W dalszej części funkcji zostaje ustawiona odpowiednia waga, która musi być większa lub równa zmiennej temp i jest ona pomocna w następnej części przy wypisywaniu temperatury ponieważ dzięki niej zostają wyodrobnione setki, dziesiątki, jedności oraz części dziesiętne liczby i wyświetlone na wyświetlaczu. Przy częściach dziesiętnych przed wysłaniem cyfry zostaje wysłana ".", aby zapis był czytelny i części dziesiętne nie zostały podtraktowane jako jedności.
  3. W częsci głównej programu zdefiniowana zostaje zmienna k, zatrzymany zostaje WDT, zainicjalizowane zostaje LCD, porty LCD oraz wyczyszczony zostaje wyświetlacz. Następnie uruchomiony zostaje rdzeń i ustawione zostaje napięcie odniesienia "ADC12CTL0=ADC12ON|REFON|SHT0_15". Tryb próbkowania zostaje ustawiony na impulsowy, a odczyt zostaje ustawionyn na kanał 10, a ustawienie napięcia odniesienia na wewnętrzny generator (1.5V). Następnie dzięki pętli for generator ma czas na ustabilizowanie. Ustawiony zostaje nowy okres licznika za pomocą wcześniej wspominanej zmiennej INTERVAL, a źródło taktowania ustawione zostaje na SMCLK z podzielnikiem równym 8, a tryb zostaje ustawiony na UP: "TACTL=TASSEL_2|ID_3|MC_1". Następnie zostaje włączony tryb przerwań. Konwersja ADC zostaje uaktywniona " ADC12CTL0 |= ENC".
  4. W nieskończonej pętli while następnuje rozpoczęcie konwersji, a następnie czekanie na jej koniec, a później obliczenie temperatury: temp=ADC12MEM0*1.0318-2777.4647. Temperatura zostaje wyświetlona poprzez wcześniej opisywaną funkcję show(). Po wszystkim następuje wejście w tryb oszczędny.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement