Witam Ja mam tak: Nie mam dławika od AVCC, bo słyszałem, że jeśli przetworniki A/C nie są wykorzystywane to można pominąć ten dławik. Spotkałem się też z takimi konfiguracjami: 1. Na Aref i AVcc po kondesatorze 100n do masy. Czy konfiguracja elementów zew. zależy od tego w jakim układzie pracuje ATmega8? Czy można przyjąć jakiś jeden obowiązujący schemat? Czyn niewykorzystane piny Atmega8 moga wisieć w powietrzu? I pytanie trochę niezwiązane z tematem. Zrobiłem termometr tu jest kod: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler Config Lcd = 16 * 2 'konfiguracja typu wyťwietlacza 'LCD Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2 'konfiguracja linii 'mikrokontrolera, do ktˇrych 'do-?czono wyťwietlacz 'LCD Config 1wire = Portd.1 Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String * 1 R = &HFF Declare Sub 1wr 'podprogram resetujacy magistrale 1w Cursor Off Cls Do 1wr 'podprogram 1wr 1wwrite &HCC 'komenda skip ROM 1wwrite &H44 'komenda convert T Waitms 250 Waitms 250 1wr 'podprogram 1wr 1wwrite &HCC 'komenda skip ROM 1wwrite &HBE 'komenda read B1 = 1wread() 'odczyt z termometru B2 = 1wread() 1wr 'podprogram 1wr If B2 >= 248 Then 'w przypadku temperatur ujemnych B1 = R - B1 'Od 255 Odejmujemy B1 B2 = R - B2 'od 255 odejmujemy B2 Znak = "-" Else Znak = "+" End If T1 = B1 / 16 'Przesuniecie w pawo o 4 bajty T2 = B2 * 16 'przesuniecie w lewo o 4 bajty T1 = T1 + T2 Tmp = Fusing(t1 , " ###.&&") Cls Lcd "odczyt z DS18B20" Lowerline Lcd "temp:" ; Znak ; Tmp ; Chr(1) ; "C " Waitms 250 Waitms 250 Waitms 250 Waitms 50 Loop Sub 1wr 'podprogram resetujacy magistrale 1wreset End Sub Termometr działa ok, w całym zakresie temperatur tylko: (chyba przy odświeżaniu wskazania, co ok. 1 s, przy pobieraniu danych z czujnika) następuje takie miganie(przygasanie, na ułamki sekund) wyświetlacza, czym to może być spowodowane? Program coś nie halo? Pozdrawiam, Łukasz Winiarski
|
|||
Re: Pytania m8
ja zawsze stosuje jeden schemat, ze zwartymi VCC, AVCC i AREF do zasilania i masy do siebie, często dodaje kondensatory 100nF i 47uF lub podobne blisko procesora filtrujące zasilanie. Narazie nie natknąłem sie na jakieś większe problemy z pracą mikrokontrolera abym musiał dawać dławiki itp dodatkowe elementy, Nawet gdy używam ADC to mam taki sam schemat
A co chcialbyś z nimi zrobić? procesor ma uniwersalne wyprowadzenia i zwierania ich gdziekolwiek nie ma sensu. Ja zawsze konfiguruje na początku wszystkie piny a nieużywane wyprowadzenia procesora jako wyjścia i ustawiam na nich stan wysoki. W twoim programie brakuje konfiguracji wyprowadzeń :) czyli czegos takiego:
To normalne że wyświetlacz miga bo kasujesz go co sekundę a nie jest to konieczne, dodatkowo duzo danych naraz na nim chcesz wyświetlać:
pierwszą część:
wyrzuć przed petlę główną do loop bo po co to wypisujesz za każdym razem jak sie to nie zmienia:
potem wydasz polecenie Locate, ustawiając kursor w linijce 2 pozycja 7:
A zatem spróbuj to tak wpisać w kod:
a na początku oczywiście pozostałe napisy tak aby wykonały się tylko raz
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.