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...
Dodaj flagę , zwiększaj ją w przerwaniu, a w pętli głównej sprawdzaj czy osiągnęła już równowartość 750ms.
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...
Raczej schemat zgodny jest z programem. Jedynie z Portd.6 nie do końca wiadomo co zrobić. Prawdopodobnie trzeba do niego przyłączyć diodę świecącą wskazującą na wartość ujemną, a diody na schemacie nie ma, podobnie jak DS18B20.
Prawdopodobnie kompilujesz program przy ustawieniu niewłaściwego uP doclowego. Użyj na początku programu $regfile.
Podstawa to dobrze odfiltrowane zasilanie i stosowanie kondensatorów 100nF przy każdym scalaku. Takie scalaki to również DS i regulator 7805. Wolno wiszące piny mikrokontrolra z nieustalonymi stanami na nich także są powodem restartów. To samo dotyczy LCD. Stosuje się maksymalnie krótkie taśmy połączeniowe pomiędzy lcd a pcb. Najlepiej osadzić lcd bezpośrednio...
Witam.Mam taki problem. ............... Temp.z dwóch układów na jednej 1Wire.Proszę o pomoc:) Poszukaj na stronie źródłowej Bascom. MCS Electronics, artykuł: AN#111 (Application Note) Ten numer artykułu już chyba wszyscy pamiętają. Poczytaj też inne, może się kiedy przydadzą...., -gdyby jednak pamięć zawiodła, zawsze możesz zadać pytanie tu na grupie....
Wobec tego źle zrozumiałem datasheet. Dlaczego nie korzystać z waitms 750? Chodzi o estetykę programu, czy objętość kodu wynikowego?
nie znam sie na bascomie ale to co mowisz o dzialaniu programu wyglada tak jabys tylko raz na poczatku odczytywal temperature wiec moze spróbuj zapetlic program aby robil to w nieskonczonosc
Z tego fragmentu nie wiadomo czy używasz przerwań. Może wywołujesz jakieś przerwanie i jego obsługa zajmuje tyle czasu , że przychodzi następne przerwanie i program się pętli ( jedyne co robi to obsługuje przerwanie )
Futrzaczek czy ten kod, który pokazałeś to cały kod czy po prostu uznałeś że początek jest nieistotny i dlatego go nie wkleiłeś. ..... EDIT: // Jest jeszcze fajniej :| Próbowałem zastosować kwarc - nie udało się. Powróciłem zatem do oryginalnego ustawienia fusebitów oraz kodu programu i... wszystko wykonuje się dwukrotnie dłużej. Chciałem zastosować...
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...
Może trzeba by było zdefiniować prędkość zegara w programie bascom :?:
właśnie zwróciłem na nią uwagę (err=1) jak i na 1wverify tylko nie potrafię zaadoptować to do mojego programu.
Witam. Drodzy koledzy, od pewnego czasu borykam się z dość banalnym problemem, mianowicie potrzebuje zrobić termometr z wykorzystaniem czujnika DS18B20, i pięcioma wyświetlaczami LED (3cyfry i znak"°" oraz "C"). Układ zaprojektowałem, schemat w załączniku, płytkę wykonałem, niby wszystko OK, lecz pojawia się poważny problem- Program. Wiele razy robiłem...
Program nie do końca jest mój, nie znam się dokładnie na tym więc zamieszczam cały kod programu.
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.
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.
Ok dzięki WOBI już działa teraz zajmę się flagami i ukończeniem programu.
jeśli by ktoś wiedział jak zaprogramować fuse bit na zewnętrzny kwarc. lfuse: 0xff (jeżeli taki zapis funkcjonuje w tym programie)
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)...
LOL:)Bascom-> programuj ręcznie -> Fusebits -> tam powinno być gdzieś w comboBoxie do wyboru External XTAL (CKSEL na 1111 jeśli dobrze pamiętam)
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.
Program ma za zadanie sterowanie 3 wentylatorami (załączanie w tej samej chwili) Czyli od strony programu, sterujesz jednym wyjściem, co wiele upraszcza. Pytanie zasadnicze - pisałeś już coś w Bascom i oczekujesz wskazówek, czy gotowego programu (wówczas nie ten dział...) ?
Jesli jestes zbyt slaby w C++, to zacznij od BASCOM. Taki program w bascom zajmuje okolo 15 linijek
Oliczenia są ok, pamietaj tylko o ustawieniu przecinka w odpowiednim miejscu. Grzesiek. Ps. w Twoim programie procek czeka bezczynnnie przez 1s, można to zrobić na przerwaniach - jak? poszukaj na elektrodzie, było już kilka razy.
Witam serdecznie szanowne grono programistów!!!Potrzebuje programu na atmega8 z tej strony http://www.cubeelectronics.com/lcd.php interesuje mnie identyczny "soft" chyba że ktoś potrafi mnie naprowadzić to może sam napisze w bascomie taki program tylko nie wiem czy procek sobie z nim poradzi.Czekam na wskazówki i propozycje...POZDRAWIAM Daniel
My nie wróżki. Nie mamy pojęcia co zbudowałeś i jaki program wgrałeś.
Przydał by się kod programu... Jeżeli wyłączasz timer to po jego ponownym włączeniu zaczynasz pewnie liczyć od 0 pomimo, że nie udało się doliczyć do potrzebnej wartości licznika. Ale to tylko przypuszczenia...
Obsługa 1wire w przerwaniu to porażka do tego jeszcze waitms. W przerwaniu ustawiaj tylko jakąś flage i na jej podstawie czytaj 1wire w pętli głównej. W trakcie odczytu blokuj przerwania - i tak nie są wtedy potrzebne.
No to raczej odwróc założenia gdzyz bardziej prawidłowo bedzie jak umiescisz transmisje szeregową w przerwaniu a DS włozysz w główny program
Witam jak wykonać, szczałki sygnalizujące spadek tem i wzrost temp w bascom?? Jak napisać program, aby dobrze on działał i szczałki dobrze wskazywały?
Lcd "Szerokiej Drogi!" ; To co mi się rzuciło w oczy to, że nie ma być średnia na końcu linii :D PS. A nie lepiej samemu skompilować program i zobaczyć czy działa?
Do połączenia nawet wystarczą przewody 0,5mm2 Ale długość przewodów zależy od kilku czynników. Przede wszystkim od zakłóceń oraz pojemności pomiędzy żyłami przewodu. Może to być odległość kilku metrów, a może też być i kilkaset metrów. Czy kupić same czujniki czy też gotowce z gilzą i przewodem? Czujnik kosztuje raptem kilka zł za sztukę. Czujnik z...
Witam Mam pytanie odnosnie symulacji w BASCOM. Czy istnieje mozliwosc symulowania w BASCOM PCF8583 oraz DS18B20 ? Czy o tym czy poprawnie zostal napisany program dowiem sie dopiero po wgraniu w uC ? Dzieki za wszystkie sugestje POCZATKUJACY....
Kolego emarcus, mógłbyś mi ten kod doprowadzić do poprawnej postaci i wystawić tu na elektrodzie? Przeanalizował bym sobie swoje błędy i później może bym ich nie popełniał przy pisaniu następnych programów.
Witam ! Program nie zależy od sposobu podłączenia. http://obrazki.elektroda.net/19_12582693... Pozdrawiam. Stefan
moze pokaz pierw program
Witam ! Czy możesz przedstawić zapis napisanego programu z przypisywaniem wg ID kolejności DSów ?
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ę...
Timer w przerwaniu obsługuje wyświetlacz LED i inkrementuje zmienną byte, która w pętli głównej w instrukcji Case wybiera konkretne funkcjonalne fragmenty programu do wykonania, których wykonanie czasowo mieści się pomiędzy przerwaniami od timera. W przerwaniu od timera ustawia się także flaga przerwania, która uruchamia za pomocą If Then instrukcję...
nie tylko tam bo return powoduje po wykonaniu danej etykiety powrót i dalsze wykonywanie programu a tam program kończył się wykonywać
Tylko nie wywołuj w przerwaniach tak długich bloków instrukcji - lepiej ustaw flagę, która wskaże pętli głównej programu wykonać te instrukcje. Ale co tu możemy mówić, jak widać tylko wycinek programu.
Dotychczas Bascom mi wystarczał. Mam spory program a w Atmega32 pamięć już mi się kończy. Szukam alternatywy w FastAVR. Nie potrafię w FastAVR dojść do obsługi kilku DS18B20 na jednym porcie. Podciągnięcie 18B20 do plusa jest a sprzęt działa w programie napisanym w Bascom. Proszę Was o podpowiedz lub przykład.
To po to masz to przerwanie a w nim zmienną aby własnie nie czekać na konwersje temperatury. Rób po swojemu bo nie kumasz tego co ja do ciebie mówie a najlepiej umiesc wszystko w przerwaniu to nie bedzie sz potrzebował programu głownego - czysty zysk.;-)
...Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas ... A czy zdajesz sobie sprawę z tego, że przerwania "rozwalają" Ci transmisję 1wire :?: Poza tym, co z niżej wymienionymi dyrektywami Bascom-a :?: [syntax=basic4gl]$hwstack $swstack $framesize [/syntax] Wiedz, że kod(listing) programu,...
wartości mają być też ujemne... dodaj to do programu i jakiego typo ma być wtedy zmienna?
hmm powiem tak ja tez na poczatku mialem z tym problem (ds18b20) ale problem sie zozwiazal, opoznienia --- ale jedno, ale nie przestawilem na kwarc zewnetrzny i prawdopodobnie cos bylo nie tak 1wire bo bez poprawiania programu - zadzialalo ;)
Ja jakiś rok temu zrobiłem urządzenie do pieca, tylko że nie steruje wiatrakiem, a pompką wodną. To nie ma znaczenia bo za pompkę można podpiąć wiatrak. Użyłem µC 89AT8252, przekaźnikiem włanczam pompkę, jako czujnik temperatury użyłem DS18B20 - dokładność co 0,1stopnia , a program napisałem w Bascomie. Za pomocą trzech przycisków moge zmieniać...
A może po prostu samemu napisac program ?
O wiele prościej dziękuję za pomoc kolegów i program:)
PS nie wiem czemu jest taka nagonka na Bascoma? Napisz poważny (nie jakiś zegarek lub sterownik c.o.) program w C, a później w Bascom i się dowiesz. Podpowiedź: Jak działa debudowanie w układzie pod Bascom, a jak w C? Ile czasu będziesz uruchamiał program w C (z debugowaniem0, a ile w Bascom (bez debugowania).
Błąd w logice. Twój kod czytam tak -> Dopóki zmienna nie ma 5 to cały czas resetujemy pomiar i startujemy nowy (już Select Case byłoby lepsze). Potem próbujemy to czytać jak zmienna ma powyżej 100. No daj spokój. Są tu tego tony jak to obsługiwać. Mój/nie mój sposób to dwa suby. Jeden Startuje konwersję a drugi Czyta. Sprawa polega na tym by odwrócić...
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...
Witam, Nie wiem za bardzo co można sprawdzić w tym listingu, bo nie wiadomo co ma do końca robić, ale się nie kompiluje z kilku powodów: -niezadeklarowana zmienna "T1" -zmiennej typu String "H" nie można zwiększać ani zmniejszać jak zwykłej zmiennej, także nie można jej porównywać ze zmienną liczbową -polecenie "Lowerline" nie jest równoznaczne z jednoczesnym...
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.
Dziękuję za program. Czy mój kod będzie też działał prawidłowo?
Widzę, że masz problemy nie tylko z programem ale i z czytaniem bo nie zrobiłeś tak jak Ci napisałem.
Czy to jest cały program ? Gdzie $Crystal ? czy napewno jest to DS18B20 ?
Zmiana kwarcu na 4 MHz nic nie pomogła, na każdej z płytek jest tak samo, czyli zły montaż nie wchodzi w grę. Raczej obstawiam Fusebity Jak prawidłowo ustawić fusebit KLA987 dla zewnętrznego kwarce 4 MHz, 6MHz i 8 MHz ? Programuje procesor programem wbudowanym w Bascom.
Jeśli chcesz zrobić wait na liczniku to możesz uzyskać dwa efekty. W obu ustawiasz w przerwaniu flagę. Pierwszy do instrukcja czekaj aż flaga będzie ustawiona wykonuj dalszy ciąg programu loop Generalnie w takim rozwiązaniu nie ma sensku dawać timera. Druga opcja do instrukcja if(flaga ustawiona) reszta kodu loop Oczywiście drugie rozwiązanie...
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ć.
Ja chcialem wrzucic program na arduino, chyba ze bascom tego nie obsluguje. Oryginalna aplikacja arduino w jezyku c programuje bez problemu.
Niestety na twoim programie też nie działa B Wyświetla "DS18B20" "temp: -0,1*C"
Dlaczego uparłeś się akurat na odczyt tego czujnika w przerwaniu ? No chyba że nie używasz więcej przerwań to nie ma problemu. Procedura komunikacji z DS18... jest trochę długa i może zakłócić ci obsługę przerwań jak jest ich więcej i są szybkie a to prowadzi do "runięcia" programu.
Proponuje dodać dodatkową zmienną pomocniczą której zadaniem będzie pamiętanie że program zaczął działać nie jestem pewien tego rozwiązania z bascomem miałem doczynienia dość dawno temu ale możesz spróbować tego $regfile = "attiny25.dat" $crystal = 4000000 Config Portb.3 = Output 'przekażnik Config Portb.2 = Input 'włącznik typu microswitch...
dokładnie tak tylko że to nie ma się dobrze wyświetlać tylko poprawnie działać w programie wyświetlam to dlatego że nie bangla
Tosię nazywa wyświetlacz 7-segmnetowy LED. Da się. Kup garść rezystorów, złóż programatora sample programer, kup jakiś procek AVR, zamów/kup dallasa ds18b20, polutuj, ukradnij gotowy program / naucz się pisać je sam (Książka/manual). A poza tym nie to forum. Jest dział mikrokontrolery. Co do kosztów ds18b20 6 - 10zł procek 6zł, kawałek płytki uniwersalnej...
Witam. Kupiłem termometr DS18B20 i nie mogę go uruchomić. Próbowałem już 5 przykłądowych programów w Bascomie - bez rezultatu. Za każdym razem 0 lub "brak DS18b20" w programie stąd - http://www.elektroda.pl/rtvforum/topic10... (bascom_1wire.zip/program1.bas) Jak można sprawdzić czy termometr w ogóle jest sprawny? Po podłączeniu +5\GND między...
czyli jak przykładowo dam: .... czyli flaga zmienia stan co ok. 1s,..... Z przedstawionej informacji wynika że masz w systemie tylko jeden układ DS, więc nie ma potrzeby go adresować (&H55-match ROM). wystarczy 'skip ROM'. Jeżeli flaga jest używana tylko do obsługi odczytu temperatury, to nie ma potrzeby aż tylu jej stanów (0/1/2/3; -wystarczy 0/1)....
W ISIS DS18B20 nie będzie działał ci szybciej niż chyba 2MHz. Jest to ograniczenie symulatora, poczytaj sobie w HELPIE ISISa. Też walczyłem z tym jakiś czas, potem się wyjaśniło. Przecież to tylko symulator, chociaż i tak chyba najlepszy. Ustaw w ISIS procek i program na 2 MHz i będzie śmigało, potem przy wgraniu do rzeczywistego Uc zwiększysz. Jeśli...
witam, Kolego, pobierz sobie ten program: http://www.siltegro.com/stg/sucb.zip Ma opcję generowania kodu Bascom AVR i obsługę czujników DS18B20. pozdrawiam Tomek
Dzień dobry Mam problem z termometrem DS18B20, mainowicie napisałem program w bascom i robiłem testy na płytce testowej zl2avr i na lcd miałem dziwne odczyty temperatury ale coś było. Wczoraj zrobiłem już na płytce uniwersalnej ten teromoetr z atmega wszystko pdłaczyłem jak trzeba program wgrałem na atmega w plytce testowej zl2. Program działa na wyświetlaczu...
Tu mas fajnie wyjaśnione komendy 1wire. http://www.jaglarz.com/ja/elektronika/ds... A tu jest program z komentarzami w BASCOM. http://www.portalnaukowy.edu.pl/index.ph... Numer czujnika jest 8 bajtowy czyli 64 bity. Jeśli czegoś...
Tak jak pisałem powyżej zmień tylko te fusebity które wymieniłem. Czyli CKSEL3 = 1, CKSEL2 = 1, CKSEL1 = 0, CKSEL0 = 1, CKDIV = 1. Opisałem to według dokumentacji µC. Jak to dokładnie zrobić w Bascomie to nie wiem bo nie używam tego programu.
Witam. Dzięki za podpowiedź, ja popełnilem wtedy błąd nie zwracając uwagi na czujnik DS 'a. Ja miałem DS18B20 a w programie jest DS1820. Inaczej się przelicza temperaturę.
DS-ów już działa, ale nie wiem jak dodać trzeciego. Przy sprawdzaniu ID 3 czujnika jest ono takie same jak ID 2, tak to próbowałem odczytać: Dsid1(1) = 1wsearchfirst() Do Dsid2(1) = 1wsearchnext() 'nadpisuje ID2 , ID3 Loop Until Err = 1 Do Dsid3(1) = 1wsearchnext() Loop Until Err = 1 Ja zaryzykuję stwierdzenie...
Zamiast ustawiać bity w bascomie, w którym są jakoś dziwnie poopisywane, zamiast ułatwić to utrudnia... ustawiaj bity za pomocą programu Ponyprog, działa z stk200 i bity są normalnie pokazane w tabelce
Np. tak 1wverify Dsid4(1) jeżeli urządzenie o podanym adresie ID odpowiada to zmienna err zwraca 0 jeżeli nie to 1. A wszystko w helpie opisane... Zgadza się z tym że ja już nie chę korzystać z każdorazowego odczytu adresów czujników tylko wpisac je na stałe np do tablicy w programie i nie korzystać już z komend Dsid1(1) = 1wsearchfirst()...
1. Odczekanie jest najłatwiejsze na świecie i nie ma w nim nic trudnego. Chodzi o to aby nie marnować czasu na czekanie 2. Nie ma żadnego opóźnienia ze względu na metodę. Przy braku innych czynników masz dokładnie tą samą informację o temperaturze w tym samym czasie. Nie wierzysz? Pomyśl. 3. Ale z tego co piszesz inne fragmenty programu muszą czekać...
Witam. Nie wiem po co mieszasz dwa programy, przecież w samym Bascomie bardzo dobrze i przejrzyście ustawia się Fuse Bity.
Sprawdziłem tą propozycję programu i nic z tego. Jest dobry pomiar temperatury ale wyświetlacz miga i łypkają nie potrzebne segmenty. Nawet jak dam kwarc 12MHz to nic to nie zmienia.
Szybciej zdążyłem napisać samodzielny i działający program niż uzyskałem jakąkolwiek pomoc. Dziękuję serdecznie wszystkim forumowiczom ! :) Zamykam.
Witam, też myślałem że można sobie dowolnie zamieniać czujniki DS1820 z DS18B20. Ale zrobiłem tak i temperatura była przekłamywana. Z tego co wyczytałem w karcie katalogowej to jest różnica w czasach dostępowych w DS1820 to 500 ms a w DS18B20 to 750 ms ( w Bascomie). Jeszcze nie poprawiłem swojego programu ale jak to zrobie to dam znać czy zadziałało....
Mój Bascom to 1.11.8.3, ale w nim tylko kompiluje, HEX-a wgrywam programem AVR8 Burn-O-Mat v2.
Witam, Posiadam płytkę testową wraz z programem (Atmega8) regulacji temperatury kolektora słonecznego, problem w tym iż program obsługuje czujniki DS18B20 a w kolektorze są czujniki LM35. Moje pytanie brzmi: Jak w najprostszy sposób w programie Bascom zamienić te czujniki tak żeby reszta pracowała bez zmian. Bardzo proszę o wyjaśnienia i pomoc:) Pozdro....
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,...
nie rozumiem. Tzn jakis program bascom dziala poprawnie i ten efekt nie ewystepuje wystepuje tylko jak wgrasz ten kawalek w c.
Witam. Załączam moje próby praktycznego wykorzystania modułów RFM12B. Jest to termometr bezprzewodowy na DS18B20. Program napisany w Bascomie, ale działa niezawodnie. Zasięgu max nie testowałem, ale w domu z parteru na piętro po przekątnej - bez problemu. Kod nie jest w 100% mój. Oparłem się przede wszystkim na kodzie kol. kabelek (dzięki). Całość nie...
Jeśli termometr będzie w przerwaniu np co 1 sec, to możesz usunąć : " Waitms 750 'przeczekaj czas konwersji" To opóźnienie będzie tylko spowalniało powrót do pętli głównej. Konwersja i tak się dokona bo przecież program będzie tam skakał co sekunda. Różnica jest tylko taka, że przy pierwszym włączeniu zasilania do układu termometr pokaże 85 stopni....
Zrobiłem sobie termomentr na AVR 2313 i czujniku Dallasa 18b20. Do pewenego czasu działał dobrze, ale od niedawna(nic nie grzebałem w układzie, tylko w programie) jes cos nie wporządku. Podłaczam termometr do napiecia pojawia temperatura 85C i zaczyna wzrastac najpierw 40C potem 50C i tak dalej. Niewiem co mam zrobic, czy jest mozliwe ze, czujnik poszedł...
tak wiem ale tyle to wyczytałem z datasheed może jakiś program w bascomie masz do tego i schemat?
Witam, Piszę program w DELPHI obsługujący pomiar dwóch czujników DS18B20. Mikro kontroler to ATMEGA32, program w BASCOM. Wszystko ogólnie już działa: wysyłam po UART ciąg znaków jako string i odbieram wybrane przeze mnie znaki o danej ilości funkcją Copy w DELPHI. Korzystam z biblioteki TComPort. Jedyny problem to z Label'i zrobił mi się generator:...
Nie analizując kodu przeszkadzają zapewne wszystkie instrukcje Wait, Waitms itp. Ogólnie zasadą jest, ze w programie nie powinny występować tego typu opóźnienia - stąd obsługę DS'a zrób na przerwaniu timera.
hmm ,mi wpadł inny pomysł a można by go zrobić na M8 czy M16 ,a mianowicie połączyć 4051 w kaskady dzieki czemu wystarczy kilka pinów uC do tylu czujników ,w tygodniu przetestuje pomysł.... Ps .nic nie stoi na przeszkodzie aby dopisać linie programu (np. jeden pin uC ,sprawdzany przy starcie programu ) która będzie programowała ID czujników i zapisywała...
Sorry. To jest termostat na DS18B20. W programie wydaje mi się , że jest wszystko dobrze, ale w praktyce coś histereza mi nie działa. Proszę o podpowiedzi.
Fajnie , tylko sprawdź ile pamięci programu na to zużywasz Zauważyłem , że niektórzy z kolegów są bardzo rozrzutni. Choćby takie kwiatki: Kod: 1wreset 1wwrite &H55 For I = 1 To 8 1wwrite Nr_ukladu(i) Next I 1wwrite &HBE T(1) = 1wread() T(2) = 1wread() Toż to woła o pomstę do nieba Zumek podpowiedz mniej doświadczonym jak powinno być i w czym jest problem...
http://obrazki.elektroda.net/22_12752238... Witam. Dzisiaj chciałbym zaprezentować mój projekt zegara VFD na lampie IW-18. Jest to kontynuacja wątku kolegi Pier -> http://obrazki.elektroda.net/95_12752233... Wszystko tak szybko się odbywa że wyświetlacz w ogóle nie miga :D Program został napisany w BASCOMie - zajmuje ~64% pamięci Flash....
zaaplikowałem twój kod ale jest 0 na wyświetlaczu piszesz że nie robiłbyś tego ne przerwaniu, proponujesz przenieść to do petli głównej, a reszte programu przerobić? bo nim jeszcze jest obsługa przycisków, RC5 etc. która własnie znajduje się w pętli głownej
Zrobiłem wg twojego programu, i wyłączam przerwania na czas odczytu temperatury. Termometr cały czas zwraca 0. Czy problem może tkwić w tym że korzystam z wewnętrznego kwarcu?
ds18b20 bascom bascom ds18b20 bascom przerwanie programu
antena ogrzewanie tylnej szyby miernik uszkodzony pomiar rezystancji polsat cyfrowy lista kanał
Różnice między tuszami HP45 a HP15 First 5152 - Zatrzymujące się mieszadła w wypiekaczu