Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
Str. 100 i 101. Rejestr TCCR0, bity COM00 i COM01.
Kasować licznik- a nie przerwania- na początek. Kasować licznik i musisz zastosować dwie flagi, inaczej nie da rady. Jedna sprawdzająca czy już możesz odczytać dane, drugie sprawdzająca czy już możesz wysłać żądanie odczytu:)
problem tkwi w tym, że program masz do obsługi układu DS1820, a podpięty masz DS18 B 20 (różnią się one rozdzielczością i sposobem zapisu temperatury w rejestrach). W internecie znajdziesz masę programów pod BASCOM i nie tylko obsługujących ten termometr.
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
a 8MHz masz?:> Sprawdź PCB Rezystor 4.7kΩ masz na linii danych? Może podaj konkretnie co pokazuje sie na lcd. "Przyczepiliście się" :D do sprzętu , a żaden z Was nie zajrzał do kodu ;) A błąd ukrył się sprytnie , w deklaracji zmiennej T1 , która powinna być typu Integer , a jest ... :?: Piotrek
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza 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...
No nic dziwnego, w ustaw_czas robisz call do wys_czas który wbrew obiegowej opinii wyświetla temperaturę;] i... ustawia kursor kilka spacji za *C :) a potem sobie reta do ustaw_czas gdzie już jak widać LCD "Ustaw czas" :) Ot i tajemnica;] Pozdro ;] Dodano po 1 PS lowerline sux, ja bym używał locateów na twoim miejscu ;-) Poza tym funkcje są fajnejsze...
wg helpa bascoma masz: Gosub podprogram 'wywołanie .... .... a oznaczenie podprogramu podprogram: .... .... Return sub wymaga wcześniejszej deklaracji i wywołania poprzez call poza tym możesz mieć kłopoty ze zmiennymi oznaczonymi samymi cyframi w załączniku masz termometr który zrobiłem dla koleżanki (robiony na szybko więc nie jest specjalnie zoptymalizowany)...
Ja również miałem problem z multiplesowaniem wyświetlaczy i jednoczesnym odczytem 1wire. Pomysł z wyłaczeniem przerwań od timera na czas transmisji 1wire okazał się prawidłowy. Ponieważ w trakcie pomiaru świeci się jeden wyświetlacz aby efekt był nie zauważalny możemy dokonywać pomiaru temeperatury rzadziej. Oto mój programik : $regfile = "m8def.dat"...
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
1. linia danych jest podciągnięta do plusa?, sprubuj zasilić go "normalnie" 2. jak czesto robisz pomiar, manual podaje że nie powinno sie tego robic częściej niż co 750ms. 3. nie wiem jak zwiekszyć precyzje odczytu w bascomie
Instrukcja odczytuje 8 bajtów unikalnego numeru i zapisuje je w tablicy począwszy od wskazanego indeksu w stronę narastania indeksów. Czyli jeśli wskazuje się 1 to numer pierwszego czujnika jest w komórkach od 1 do 8. To znaczy, że powinieneś napisać: Z = 9 Adres(z) = 1wsearchnext()
Jeśli chodzi o ID to chyba najprościej będzie zrobić funkcje i z głównego programu przekazywać do niej ID czujnika, natomiast funkcja będzie zwracać np bit 1/0 OK/ERROR. Podobnie chyba można zrobić z odczytem temperatury.
oooooo to chodzi ;) to taki szkielet - ale na podstawie tego sam wiesz już jak sobie poradzić z tym tyle że bez Wait'a dodam jeszcze, że sam fragment: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 warto zapuścić jeszcze przed wejściem wtedy w pętlę główną żeby już mieć gotową pierwszą zmierzoną temperaturę w czujnikach po resecie - gdyby przypadkiem...
Problem jest w sprzęcie a nie w programie. W układzie brakuje kondensatorów ceramicznych 100nF na pinach zasilających uC, LCD, czujnika, wejściu ADC. Nie widzę też filtru na AVCC oraz jakiegokolwiek tantala/elektrolita na zasilaniu. Popraw zasilanie a zamiast analogowego czujnika użyj cyfrowego np DS18B20 na 1Wire.
Witam Mam problem ze skompilowaniem w Bascom 8051 procedur do DS18B20 B1 = B1 / 16 ,obliczenia wyłącznie... B2 = B2 * 16 , dla temperatur dodatnich. Być może dla Ciebie , przecinek i średnik to to samo - dla Bascome nie ;) Piotrek
Witam !! Przeszukalem elektrode ale nie znalazlem bledu jaki popelniam...Mam cyfrowy termometr DS18B20, podpinam go tak jak na obrazku ponizej. Wbiajam program do procesora AT89S8252, kwarc 12 Mhz i nic, na LCD widnieje wartosc 0 :( Bede wdzieczny za wszelka pomoc !! http://www.elektroda.pl/rtvforum/files-r... Dim Bd(9) As...
Witam, Zgadzam się układ w takiej formie nie ma sensu, po prostu musiałem się cofnąć do wyświetlenia pojedynczych bitów z DS18B20 bo układ nie wskazywał poprawnie temperatury.
Po odczycie bajtów Msb i Lsb spróbuj dać 1wreset.
Czy przypadkiem zmienna I nie zwraca ci temperatury ujemnej gdy ona występuje? Znak jest zawarty w drugim bajcie => patrz datasheet.
Nigdy w przerwaniu nie użyłem "wait" i nie użyje.
Otóż dzieję się tak dlatego, że w momencie wysłania polecenia CONVERT_T DS18B20 zaczyna pomiar temperatury. I wynik tego pomiaru będzie dostępny w rejestrze dopiero za 750ms, natomiast to co odczytasz zaraz po tej komendzie będzie najprawdopodobniej wynikiem poprzedniej konwersji. Tak robić nie powinieneś, bo to że akurat nie masz błędów, nie znaczy,...
Jak w teromometrze DS18B20 ( NIE w DS1820) przetworzyc odczytany wynik na stopnie celcjusza? Jak to zrobić w Bascomie?
Witam. Zaczolem ostatnio zabawe z czujnikiem temperatury DS18B20 podlaczonym do Atmega8. Wszystko gra ale chcialbym sie dowiedziec w jaki sposob mozna zmienic ustawienie dokladkosci pomiaru bo odczyt temperatury przy ustawieniach fabryczne jest zdziebko przydlugi. Czy takie nowe ustawienie czujnika trzeba zapisywac za kazdym razem jak uruchomie uklad...
Miałem problem z odczytem z 1 ds18b20 i problem tkwił w opóźnieniach (standardowa biblioteka nie jest najlepsza) http://www.elektroda.pl/rtvforum/topic98... nie jestem znawcą ale pomogło.
Witam , miałem niegdyś podobny problem , tyle że działam w Bascomie , lekarstwem było przestawienie procka w fusebitach na częstotliwość 8 MHz.
I popraw ten 33h :>
Witam. Mam procedurę odczytu trzech czujników temperatury: [syntax=vbnet] Sub Odczyt_ds18b20 Reset Watchdog Disable Interrupts 1wreset Select Case Ktory_ds Case 0: 1wwrite &HCC 1wwrite &H44 Case 1: 1wwrite &H55 1wwrite Ds1(1) , 8 'adres pierwszego czujnika 1wwrite &HBE Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty T = Odczyt(2) : Shift T , Left...
Błędy się mogą zdarzyć zawsze, ale lepiej jak jest ich jak najmniej więc możesz spróbować dodać kondensator 100nF - 1uF przy samym czujniku jeśli pracuje w trybie na trzech przewodach. Potem zmieniłbym procedure odczytu danych z czujnika na taka która sprawdza CRC i ósmy bajt na obecność wartości &H10. Kiedy sprawdzanie przebiegnie pomyślnie to bierzesz...
Po pobieżnym przyjrzeniu się programowi nasuwają mi się takie wnioski. 1. Zadeklarowałeś wejścia, ale zostawiłeś je jako "pływające". Powinieneś port-y przycisków podciągnąć do plusa, czyli ustwić stan wysoki =1 2. Nie widzę deklaracji dla magistrali 1wire dla DS-ów i całej procedury odczytu i zapisu danych do pamięci. Być może to celowe na tym etapie,...
Proszę bardzo, przykładzik jest lekką modyfikacją liczenia czasu w przerwaniu z książki Wiązani. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 On Timer0 Przerwanie Dim Licznik8ms As Word Dim Flaga As Bit '1 juz czas, 0 jeszcze nie Enable Interrupts Enable Timer0 Load Timer0 = 250 Do 'wyslanie komendy...
SZUKAJ słowa klucze Atmega8, DS18B20, a znajdziesz aż za dużo.
Trochę masz to dziwnie napisane jeśli chodzi o odczyt temperatury. Co jak czas masz odświeżanie pętli głównej ?. Używanie rozkazu Skip Rom to lipa trochę. Jeśli masz ochotę to popraw to trochę tzn. warto odczytać przy starcie numery seryjne termometrów jak masz dwa i nie chce Ci się implementować procedury automatycznego przeszukania to poprostu odczytaj...
Oczywiście , że wpisując : Config 1wire = Porta.1 zablokujesz odczyt z Porta.0 Musisz przed odczytem z Porta0 , wpisać w programie Config 1wire = Porta.0 a następnie gdy będziesz odczytywał z Porta.1 wpisujesz linie Config 1wire = Porta.1 Czyli , najpierw konfiguracja z której linii potem odczyt.
czytałem wolniej i efekt ten sam:(
tak, poprawilem to, ale pokazuje 0
$crystal = ? ;)
Witam. Sprawdź tutaj: http://www.elektroda.pl/rtvforum/topic57... No i spróbuj w opcji szukaj wpisać "ds1820 bascom"
Witam wszystkich forumowiczów... Posiadam płytę ewaluacyjną AVT5311 na której znajduje się czujnik temperatury lm50 oraz układ mcp3021. Korzystając z wcześniejszych porad dotyczących odczytu temperatury z czujnika DS18B20 napisałem kod w bascomie. Oczywiście mam świadomość, że będzie on inny w moim przypadku. Natomiast nie mogę poradzić sobie w odczycie...
Czemu kolega nie łączy czujników równolegle ?
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
Problem rozwiąże, odmierzanie czasu przez timer, a nie przez wait czy delay (nie znam BASCOMa). Jak już ktoś wspomniał odczyt i zapis bitu na 1-wire jest dość krytyczny czasowo. Miałem z tym problem w assemblerze i ADuC841. Przerwanie od multipleksowania wyświetlaczy skutecznie zakłócało transmisję. Polecam też sprawdzanie CRC, żeby ustrzec się przed...
zamykam temat:) dziękuje wszytki którzy się wypowiedzieli
Jak najbardziej tak.
Prosiłabym o wyrozumiałość i pomoc w nakierowaniu mnie na rozwiązanie problemu. Spróbuję nakierować :) Jeśli zapis ID do eeprom ma być jednorazowy, w kodzie programu deklarujesz (wcześniej innym programikiem i LCD odczytane) ID $eeprom Termometr2: 'nr seryjny termometru 1 Data 40 , 25 , 0 , 133 , 2 , 0 , 0 , 196 Termometr1: 'nr seryjny termometru...
Masz tu procedurkę odczytu i wyliczenia temperatury. Prościej się nie da. Nie wiem w czym piszesz, ale sama procedura (bascom) jest czytelna.
usunąłem jedno zero dalej lipa
Teraz dopiero dopatrzyłem się, że przy starcie raz wywala wartość 85 stopni co nie powinno mieć miejsca. To jest zupełnie normalne że pierwszy odczyt może wskazywac 85°C. Patrz: uwaga pod tabelą na str. 3 datasheet: *The power-on reset value of the temperature register is +85°C Może ci się takze pokazac 0°C , - jako jeden z poczatkowych odczytów gdy...
Uściślijmy jeszcze czy w kodzie który działa też nie masz wartości $framesize, $swstack i $hwstack? Rzeczy należy eliminować sukcesywnie. Dopisałbym te brakujące rzeczy od razu zamiast je podejrzewać... !EDIT! Zapomniałem o tym a już się w tej sprawie kontaktowałem kiedyś z Supportem :D Słowo Hbyte jest słowem używanym przez wewnętrzne procedury Bascom....
Wysyłając polecenie Read Counter (0xA0), tak jak piszą powyżej. Swoją drogą to zamiast kombinować, nie prościej byłoby zastosować czujnik z odpowiednią rozdizelczościa? DS18B20?
Tylko jest jedno ale....Żeby skorzystać z tego luksusu (sprawdzanie statusu DS-a) trzeba zrezygnować z innego luksusu , jakim jest tylko 1 przewód i dołożyć zasilanie Vdd ,a to już 2wire :( Pozdrawiam Piotrek Sz. PS Można to wykorzystać nawet(?) w Bascomie.
Z tego swojego kodu usuwasz "Odczyt numerów ID czujników temperatury" A w to miejsce wpisujesz odczytane adresy do tablicy z adresem danego czujnika. np. tak będzie to wyglądało dla pierwszego czujnika: Dsid1(1)=&H28 Dsid1(2)=&H65 Dsid1(3)=&HC3 Dsid1(4)=&H89 Dsid1(5)=&H05 Dsid1(6)=&H00 Dsid1(7)=&H00 Dsid1(8)=&H25
Poprawiłem - nie sprawdzałem. Dim Odczyt(2) As Byte dim T As Integer dim T1 As Single dim T2 As Single Dim Temp As Long Do Ds18b20 Print Temp Wait 1 Loop End Sub Ds18b20 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Odczyt(2) Shift T , Left , 8 T = T + Odczyt(1)...
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Wklej komenty 1wire, bo ten fragment kodu nic nie mówi.
' Na początku kodu Index_tab=0 ...... ...... If Licznik = 1200 Then IF Index_tab=3 Then ' przesuniecie w tył jeżeli pozyskano co najmniej 3 pomiary Pomiar(1)=Pomiar(2) Pomiar(2)=Pomiar(3) Else ' Fragment kodu wykonywany dla Index_tab=0,1 i 2 Incr Index_tab IF Index_tab>3 Then Index_tab=3 End If Pomiar(index_tab)...
Witam, Piszę program na ATmega128 pod Bascom AVR. Od kilku godzin szukam rozwiązania, jak zrrealizować odczyt czujnika temp. DS18b20 korzystając z przerwań. Czy takie rozwiązanie jest możliwe??
Ups zapomniałem dodać, że chodzi tu o BASCOM AVR
A wyświetlacz jest skonfigurowany jak 16*2?
Przede wszystkim DS na konwersje potrzebuje ok 750ms, ty zastosowałeś 500. Po co stosujesz 2x Waitms? Do pomiaru temperatury potrzebne jest stabilne zasilanie 5V. Robiłem ostatnio termometr do szklarni i wahania napięcia spowodowane zaświecaniem kilku LED, powodowało różnicę odczytu ok 1,5 stopnia.
witam jest to termometr cyfrowy DS18B20, wiele informacji na jego temat możesz znaleźć używając opcji szukaj gotowe schematy, programy... Dodano po 2 żeby nie zakładać nowego tematu chciałbym się coś Was forumowiczów zapytać: pisząc procedurę odczytu z DS18B20 w bascom 8051 temperatura po włączeniu kostki do zasilania byłą wyświetlana jako 85,0°C -...
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
A może masz czujnik DS18B20, upewnij się że jest to DS1820. Ale dziwne, najpierw termometr działał poprawnie a później przestał. Zastanawia mnie jeszcze to że (jak piszesz) czujnik reaguje na zmiany temperatury bo zmienia się zmienna T1, a nie da się odczytać temperatury. Ciekawe w czym jest problem.
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
W datasheet-cie DS-a jest napisane co oznacza gdy wysyła ci temperaturę 85 stopni... Jest to jak najbardziej uzasadnione, ponieważ pierw odczytujesz wartość rejestru temperatury a dopiero po tym rozpoczynasz konwersję, zawsze pierwszy wynik będzie błędny... Nie przeklejaj bezmyślnie kodu od innych. Pozdrawiam, GSM
Szybciej zdążyłem napisać samodzielny i działający program niż uzyskałem jakąkolwiek pomoc. Dziękuję serdecznie wszystkim forumowiczom ! :) Zamykam.
Czy moze ktos ma juz gotową procedure do odczytu temperatury z termometru DS18B20 w bascomie ?
Gdybym wiedział jak to zrobić w bascom to bym Ci powiedział :(
Jezu, każesz mu najpierw zrobić stringa, potem go pochlastać, a potem z tego inta? Starryyyy BASCOM upośledza;/
Widze ze kolega ma jeszcze bledsze pojecie o tym czujniku niz ja, polecenie przepisania notatnika do eepromu to Copy Scratchpad 48h Druga sprawa w notce aplikacyjnej nic nie pisze ze musze wysylac wszystkie 3 bajty ... pytanie czy rzeczywiscie nie musze ?! Jezeli ktos przeprowadzil udane doswiadczenia z zapisem i odczytem eproma DS18B20 w Bascomie to...
To zrób to na dwóch pinach. Będzie łatwiej i w razie uszkodzenia czujnika wpinasz nowy i wszystko działa. Wystarczy tylko powielić odczyt i problem z głowy.
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Czy tak może być? Nie. Po komendzie: "1wwrite &H55" Spodziewana jest komenda wpisu adresu adresu device do której odnoszą się dalsze komendy, ponadto: Błędem jest stosowanie tejsamej flagi (niby stopniowej) do wielu operacji bez jej kasowania. Zauważ że flaga=1, lub flaga =2 utrzymuje sie przez dłuższy czas, o wiele dłuzszy niż 'przewinięcie 'pętli...
Program do czujnika temp ds18b20 ktory mierzy z dokladnoscia dwoch miejsc po przecinku. Sprawdzony ale tak jak juz koledzy mowili wyniki po przecinku bardzo czesto skacza Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 Config Pind.7 = Output Config Pind.4 = Output Config Pind.5 = Output Config Pina.6 = Output Config Pina.7 = Output Set Portb.0 Set...
Witam, Wstrzymaj się z bascomem na razie. Wynik jaki otrzymałeś tzn: 16, 197, 244, 1, 2, 8, 0, 128. nie dokońca jest zły. Koledzy słusznie Ci napisali że pierwszy bajt jak powinieneś otrzymać powinien być 0x28 ale w przypadku użycia 12 bitowego czujnika DS18B20 a Ty odebrałeś 0x10 w Hexie więc ja wyrokuję że Ty poprostu korzystasz z czujnika DS18S20...
zumek w lutym napisał żeby ustawić reload=6 i nie pytać dlaczego. Dodano po 4 A odczyt ds może trwać 700ms-może stąd lepiej.
Witam. Przede wszystkim jak wysyłasz instrukcje do termometru aby zrobił pomiar to musisz odczekać 750ms, w przeciwnym wypadku będzie błąd odczytu. Po odczekaniu tego czasu resetujesz linie 1-wire i robisz odczyt wartości.
Zakładając, że użyjesz innego procka, dalej ciężko się domyśleć, o co dokładnie pytasz. Ale spróbuję :p Zapewnie chcesz najpierw obsłużyć przetwornik. Zatem na początku konfiguracja: - jeśli napięcie odniesienia ma być pobierane z wyprowadzenia AVCC mikrokontrolera: Config Adc=Single, Prescaler=Auto, Reference=Avcc - jeśli chcesz skorzystać z wewnętrznego...
Wychodzi z tego, że zastosowany u mnie układ to DS18B20 (wg dokumentacji płytki jest DS1820), ale przy podzieleniu T/2 otrzymuje wynik +/- 195C, przy podzieleniu na 16 mam +/- 24C.. Czyli rozumie, że powinienem zmienić/dostosować program do DS18B20.. spróbuje i dam znać.
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
Nie wiem czy to co napiszę jest trafne, bo kompletnie nie znam C. Moja hipoteza to zapełnienie stosu, po kilku godzinach i nachodzenie na wartości zmiennych. Możliwe, że to kompletna herezja tym niemniej takie przypadki na Bascomie bywały.
Tam nic nie trzeba zmieniać. Wystarczyło podłączyć do identycznych linii LCD i DS18B20 i zmienić $regfile = "Attiny2313.dat" na $regfile = "mega8.dat"
Nikt nie jest w stanie mi pomóc? nie wie wiem dla czego kontroler nie porównuje wartości Rozumiem że jesteś początkujący , ale nawet Ty powinieneś wiedzieć , że nie porównuje się zmiennej binarnej(Us) ze stringiem (Tmp) :( To tak , jak byś porównywał kilogram z czerwonym :D Poza tym , ten program jest niezwykle pamięciożerny(Fusing,Single). Jeśli ten...
Dim Sc(9) As Byte 'w tej tablicy beda dane odczytane z czujnika Dim Temperatura As Integer 'tu obliczona temperatura Dim Blad_crc As Bit 'a ten bit bedzie ustawiany w razie bledu CRC odczytu '... program ... 1wreset 1wwrite &HCC 1wwrite &HBE Sc(1) = 1wread(9) 'odczytujemy wszystkie bajty z czujnika If Sc(9) = Crc8(sc(1)...
No tak, bo ja nie mam w zamiarze mieć alarmu dźwiękowego. Więc usuń z programu także deklaracje odnosnie wymiarowania zbędnych zmiennych i uzupełnij poprawki j.w. Wytestuj program w symulatorze running "step into code" (F8) i w odpowiednich momentach kodu uzupełniaj 'ręcznie' zmiany logiczne pinów a także symulowane wartości zmiennych (np: odczyt temperatury...
Jezeli programujesz w Bascom to tu masz ciekawą podpowiedź: http://www.mcselec.com/an_111.htm
to mój pierwszy projekt z wykorzystaniem ds18b20 i bardzo możliwe że kiepsko napisany. I rzeczywiście minus pojawia się po przecinku, spróbuję to poprawić
Witam Panowie szukam, szukam i nic nie znalazłem. Jestem początkujący i chcę uruchomić dwa czujniki DS18b20 na jednej magistrali. Jeden działa wyśmienicie ale dwa naraz to już dla mnie wyższa szkoła latania. Proszę o jakiś kod do odczytu temp z 2 czujników (np" tem zew. i tem wew.).
Witam Kolego Unreal89. Pracuję pod Bascomem 8051 i nie spotkałem się z funkcją, o której wspominasz. Przejrzałem pliki help'a i tam również nic nie znalazłem. Zainteresowany jestem z jakiego powodu odpada komenda "fusing"? Dla czego pytam? Pozwolę sobie obszerniej skomentować zaprezentowany listing. 1. Termometr DS18B20 przechowuje informacje o temperaturze...
Jest na to sposób podprogram odczytu umieszczasz w podprogramie odczytującej klawiature. Teraz gdzie byś nie był czy w menu czy w programie głownym czy tez gdzie indziej zawsze masz pomiar bo procesor w tym wypadku chyba jest troszkę szybszy od ciebie i zawsze czeka na twoją reakcje a nie odwrotnie, wiec moze sie zając odczytem. Z kolei odczyt nie trwa...
Przy tak prostych zadaniach i nie obsługiwania krytycznych obwodów, jeden procesor AtMega128 spokojnie Ci wystarczy, nawet DSy nie wymagają równoległego odczytu. Pomyśl o wielowątkowości i zegarze 16MHz, spokojnie ze wszystkim się wygrzebiesz, a nawet śmiem przypuszczać że zostanie Ci wolny czas. Jedyne czego bym sie obawiał to to czy Ci bascom nie...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
Ręce to opadają i masz rację ;) Masz błąd w definicji zmiennej do której wpisujesz ID czujników to nie jest jeden bajt tylko tablica 8x8bitów czyli 8 bajtów. Adresujesz nie istniejące czujniki bo ich adresy sa niepoprawne, wysyła procek ciagle ten sam bajt. Dim Adres1 As Byte 'adres pierwszego Dim Adres2 As Byte 'adres drugiego Dim Adres3 As Byte 'adres...
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
Mam kilka pytań a propos obsługi 1-wire w ASEMBLERZE dla 8051. Pod tym linkiem , masz w zasadzie wszystko co Ci będzie potrzebne, by "rozgryźć" magistralę 1wire, w assemblerze MCS-51. A tak na marginesie, to twórcy Bascom8051, też z tych źródeł korzystali ;) Piotrek
Witam! - Między wysłaniem polecenia pomiaru, a odczytem temperatury musisz odczekać 850ms. - Żeby odczytać temperaturę z konkretnego czujnika musisz w poleceniu odczytu podać adres czujnika. - Błędna ilość czujników często wynika z zakłuceń i "luzów" na magistrali 1-wire. Pozdrawiam
Witam! Gratuluję udanej konstrukcji! Interesuje mnie z jaką częstotliwością są odświerzane informacje na wyświetlaczach. A i jeszcze jedno. Nie wiem jak to jest w Bascomie ale wykonanie odczytu z ds18b20 trochę zajmuje (zwłaszcza przy 12 bitowym trybie) i w tym momencie wyświetlacze są wygaszone. Czy w takim razie występuje pulsowanie wyświetlaczy?...
nie rozumiem. Tzn jakis program bascom dziala poprawnie i ten efekt nie ewystepuje wystepuje tylko jak wgrasz ten kawalek w c.
ds18b20 bascom odczyt bascom odczyt ds18b20 ds18b20 odczyt bascom
serwis amica zmywarka ważność klucz skrzynia crunch
Ekspres Siemens zgłasza "dosyp kawy" mimo pełnego pojemnika Podgrzewacz gazowy Neckar N19E włącza się bez odkręcenia kurka