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.
Stara mega32 da radę, ale dla pewności taktowałbym ją zewnętrznym generatorem kwarcowym (taniocha) a nie kwarcem. Bascom to przeliczy. Widziałem 1wire jak działa z Bascom w Xmedze na 48MHz. Wystarczy dobrze zadeklarować prędkośc taktowania, co obstawiam jeśli reszta protokołów działa. Dalej obstawiam błąd w oprogramowaniu przez programistę :)
Najpewniej w tabeli masz złe wartości. Przykładowo 0 ma tu kod 3=00000011B czyli na pewno portb.0 = 1 i portb.1 = 1 jeśli portb.1 jest podpięty pod segment A to jest błędnie.
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...
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...
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?...
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...
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
W uC należy odpowiednio ustawić FUSE BITY!!! Poczytaj przyklejony temat.
Porty L i G należą do rozszerzonych. Przeczytaj rozdział w Helpie Bascoma - Config 1Wire. Skonfiguruj dowolny pin jako 1Wire i dopisz po przecinku - Extended. Powinno się coś zmienić ;)
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
$crystal = 14745600 Czy oprócz podłączenia takiego kwarcu ustawiłeś odpowiednie fuse bity? Następna rzecz to nie musisz robić resetu 1wire. Największy błąd polega na tym że nie czytałeś helpa bo gdybyś to zrobił to dowiedziałbyś się że zmienna do której zapisujesz ilość urządzeń koniecznie musi być typu WORD lub INTEGER. Na koniec radzę ci skorzystać...
Trzeba dopisać warunek co ma uC zrobić jak zmienna osiągnie "0". Mikroprocesorowi musisz wskazać jak się ma zachować w każdej z możliwych sytuacji bo on niestety nie chce myśleć za Ciebie.
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.
I i $crystal=
Witam... Jesli moge w czyms pomoc... Dorzucam programik z wlasnego termometru. Wprawdzie wykorzystuje DS1820, ale latwo przerobic go na DS18B20 - przykladowe procedury i kody mozna znalezc na www.mcselec.com - bylo to na pewno. Mam nadzieje, ze przyda Ci sie... Pozdrawiam.
Witam Co do przeliczania wartości na temperaturę nie będę się wypowiadał bo w wielu publikacjach było to prezentowane. Natomiast zajmę stanowisko w sprawie wyświetlacza LED. Proponowałbym z obsługi przerwania usunąć procedurę pobrania znaku do wyświetlenia. O wiele lepiej zrobić to w programie głównym. Zbyt długie przebywanie w obsłudze przerwania może...
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
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...
Jasne, że się da :) np tak: If Pind.1 = 1 And Pind.2 = 1 Then Waitms 500 'oczekiwanie żeby odrazu nie wyjść z pętli Do 'nieskończona pętla Lowerline 'ustawienie kursora Lcd "Histereza:" ; H ; Chr(0) ; "C" 'wyświetlenie histerezy If Pind.1 = 1 Then 'jeśli guzik wciśnięty to zwiększ H = H + 1 Waitms 200 'odczekaj chwile,...
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...
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,...
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...
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ąć...
Witam Nie wiem czy trzeba zmieniać coś jeszcze w Fusebit, czy porostu problem jest po stronie wyświetlacza? Pozdrawiam Wyświetlacz powinien pracować zupełnie dobrze także przy 1 Mhz taktowaniu processora. W zależności od deklarowanej F(clk), Bascom kalkuluje odpowiednio timingi do stadardu HD44780 display controlera. Przy błednej konfiguracji (lub...
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, 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...
Za swego czasu opis takiego układu pojawił się na łamach EDW w dziale Bascom College. Z tego co sobie przypominam był tam kompletny kod źródłowy. Serię tych artykułów możesz ściągnąć ze strony: http://www.edw.com.pl/index.php?module=C... Wiele gotowych projektów ukazywało się również w miniprojektach...
...Czy istnieje jakiś sposób, aby ostateczną zmienną 'Ss' (string) zapisać w zmiennej typu Single (lub innej?) aby umozliwic porównanie jej z tą zapisaną w eepromie? A może ktoś zna inną metodę na rozwiązanie tego problemu? Z Twojej wypowiedzi wynika , że nie wiele masz wspólnego z programowaniem uC - ale mniejsza z tym. Zmienna string jest potrzebna...
Panowie zamiast brać oscyloskop w rękę żeby sprawdzić czy czujniki na pewno działają - to weźcie sobie na chwilę Bascoma - napiszcie 2-3 linijki kodu i od razu sprawdzicie, że wam DS'y działają. Bascom ma gotowe i dobre procedury - więc sprawdzenie za jego pomocą czujników to pikuś nawet dla kogoś kto nigdy dotąd nie używał Bascoma. Jednak dla ludzi,...
No to powodzenia z obsługą 1-wire w assemblerze. Jeszcze przez początkującego. Mój nauczyciel bawił się okrągły miesiąc i udało mu się :). I2c można dosyć prosto obsłużyć z poziomu asm, ale co do 1-wire to jak nie znajdziesz gotowca w assemblerze to sam nie zrobisz. Dla chcącego nic trudnego. Nazwy procedur mówią same za siebie. Magistrala na P1.7...
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...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
Używam jednego ADC do pomiaru napięcia stabilizatora dla kontroli jego sprawności bo miałem przypadek kiedy napięcie spadało wraz ze zwrostem temp. stab. .Miałem wolne piny to dlaczego nie wykorzystać . Ustawiłem pady tak aby można było przerobić na DS18B20 na dwa lub trzy przewody. A faktycznie. No ale to raczej dla zabawy bo ten stabilizator nie...
Jarosław J --> ja się nigdy nie rozpisuję czy nie krytykuję nikogo za to, że czegoś tam jeszcze nie potrafi, nie umie, czy źle napisze kod - natomiast zawsze mi się włos jeży gdy ktoś pisze takie rzeczy jak to, że: 1. a to Bascom się nie wyrabia 2. a to, że wina przerwań wszystko tylko nie ja ja sam się cały czas uczę programować - ale jak coś mi nie...
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.
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...
Witam, chcialbym sie podlaczyc po ten topic gdyz mam pewien problem z obsluga DS1820 i DS18B20 z ATMega128 Mianowicie, po podlaczeniu w trybie 2wire (1 - GND, 2 - PinB.7/PinE.7 itp., 3 - Vcc 5V) do ATMega128 z kwarcem zewnetrznym 10MHz (innego uzyc nie moge) po wykonaniu komend w Bascom AVR: config 1wire= portb.7 dim rgn(8) as byte 1wreset wait...
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...
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"...
http://obrazki.elektroda.pl/8267947700_1... Ponad 20 lat temu jako amator hobbysta budowałem proste układy elektroniczne. Studia i styczność z informatyką spowodowały, że porzuciłem hobby pod nazwą "składanie elektroniki" na rzecz "składanie programów komputerowych". W bieżącym roku (2011) dzięki uprzejmości kolegi Jacka.M, który okazał...
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
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...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
Dziękuję za zainteresowane. Tak , grafiki będą wyświetlane zawsze w tym samym miejscu, na pełnym ekranie o formacie 240*128. Bitmapy jakie konwertowałem są monochromatyczne 1 bitowe. Rzeczywiście rysuję je ręcznie, piksel po pikselu (masakra) . Jeśli jest możliwość abym nie musiał ich konwertować to by było idealnie gdyż mogę sobie na bieżąco zmieniać...
Kod dla 18B20 1wreset 1wwrite &H55 1wwrite Adres(1) 1wwrite Adres(2) 1wwrite Adres(3) 1wwrite Adres(4) 1wwrite Adres(5) 1wwrite Adres(6) 1wwrite Adres(7) 1wwrite Adres(8) 1wwrite &HBE Odczyt(1) = 1wread(2) T(p) = Makeint(odczyt(1) , Odczyt(2))...
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,...
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....
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.
Masz podany schemat podłączenia. V1 to np napięcie zasilające lub lepiej Vref, V0 podajesz na wejście przetwornika ADC i mierzysz napięcie. W pdf jest podana formuła wiążąca wszystkie niewiadome.
Dodaj sprawdzanie CRC danych z czujnika.
Witam serdecznie. Mam taki problem, otóż: Zaprojektowałem sterownik do pieca c.o. i kolektorów. Do pomiaru temperatury zastosowałem 3 x DS18B20 na magistrali 1Wire. Program napisany w języku BASCOM. Jeżeli jest taki przypadek, że nastąpi przerwa w torze transmisji jednego z czujników np.DS1 (nóżka Data) to mikroprocesor nadpisuje wartość temperatury...
Zobacz to: http://www.elektroda.pl/rtvforum/topic18... Jest tam kod który sprawdza czujniki po włączeniu urządzenia. Można go przerobić by sprawdzał co jakiś czas :D
Albo zrób przerwanie od timera np: co 2,5ms i np 1 przerwanie 1wreset; 2 przerwanie następny rozkaz do ds-a po start konwersji kolejne przerwania czekasz na zakończenie konwersji i dalej tak samo kolejne przerwania odczytują temperaturę; jedno przerwanie jeden rozkaz, nie zapomnij o crc. Sam niedawno tak robiłem ( w ramach walki z nuda 6 ds-ów ) i bardzo...
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. 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...
Witam. Sprawdź tutaj: http://www.elektroda.pl/rtvforum/topic57... No i spróbuj w opcji szukaj wpisać "ds1820 bascom"
Witam Jeżeli chodzi o wskazanie i dokladnie wiesz ze to jest zawyzanie o 2 stopnie to jaki problem przy koncowym wyniku odjac te 2 stopnie i wyswietlic go ? ;) Pozdrawiam Niby masz rację. Ale ten kawałek kodu skopiowałem z innego projektu i wiem, że w okolicach 20 st zawyża o 2. Ale nie wiem bo chwilowo nie mam jak sprawdzić co będzie w okolicach 40...
Witam Chciałbym przy użyciu dwóch przycisków ( nawet jednego, bo pewnie tak się da ) zmieniać czujnik DS18B20, a właściwie wskazania które pokazuje. Mam dwa układy DS18B20 i przy założeniu ( teoretycznym ), że mam mało miejsca na wyświetlanie, więc dobrze by było mieć możliwość zmiany ( na przemian jednym przyciskiem lub dwoma - pierwszy-drugi ). Samo...
Trzeba kupić licencjonowaną wersje.
ustaw na podstawie innej atmegi jeśli posiadasz. Jeśli nie polecam temat przyklejony o fuse bitach. Niestety nie pomogę ci, fusy ustawiam w bascomie, co nawiasem mówiąc jest proste i zrozumiałe. I nie polecam grzebanie w fusach jeśli nie wiesz dokładnie co od czego jest.
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...
Też bym reflektował na kodzik
Spróbuj odbierać dane do 2 zmiennych Byte - nie wiem czy Bascom nie wykłada się na zapisie do integer;-)
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Uporałem się w końcu z problemem. Temat zamykam. Pozdrawiam.
powiem ci ze dziwne te twoje programy, nie zebym sie znal na tym jakos specjalnie, ale mnie uczono tak: w przerwanie wchodz na chwilke i jak najszybciej je opuszczaj! wedlug tej zasady wydaje mi sie bardziej racjonalne zrobienie programu tak by petla glowna programu byla uruchamiana co 1sekunde, w petli glownej rob wszystkie przeliczenie razem z pomiarem...
czytałem wolniej i efekt ten sam:(
http://obrazki.elektroda.pl/8609137500_1... Witam, przedstawiony układ umożliwia: -pomiar zarówno dodatnich, jak i ujemnych temperatur, -wybór jednej z dwóch częstotliwości powtarzania pomiaru, -pamiętanie najniższej temperatury (wyświetlanie po wciśnięciu przycisku, kasowanie po resecie uC), -prezentację wyniku na 4-cyfrowym wyświetlaczu...
Witam Mam pytanie: Na jakiej zasadzie bascom przypisuje do zmiennej tablicowej identyfikator kilku czujników DS18b20 podpiętych do jednego portu? Przykładowo mamy cztery czujniki. W poniższym przykładzie Dim Dsid1(8) As Byte Dim Dsid2(8) As Byte Dim Dsid3(8) As Byte Dim Dsid4(8) As Byte Dsid1(1) = 1wsearchfirst()...
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??
Z nieczytania postów (szukaj/google).
A ustawiałeś?
Ale komendy CC i 44 wysyłaj tylko raz - zareagują na nie wszystkie czujniki. I tak samo czekaj tylko raz te 750ms. Chyba, że każdy czujnik zrobię w oddzielnym podprogramie, to wtedy za każdym razem trzeba.
Przypominanie o swiatlach ? Zadne problem, sprawdzasz stan jednej nogi i jesli jest tam stan niski (swiatla zgaszone) i jednoczescie na kablu od stacyjki jest wysoki (wlaczony zaplon) znaczy sie pokaz na 5 sec np. napisa wlacz swaital. I sprawdasz rozniwz czy napewno silnik jest wlaczony, jesli okaze sie ze stacyjka jest wylaczona wywalasz komunikat...
To chyba nie ten dział !!!
O ja... Przepisujesz (a nawet porównujesz!) Stringi. Porównuj temperatury jako liczby Integer. W ogóle to tą zabawę w wyznaczanie znaku też mógł byś sobie darować. Przecież liczba Integer zawiera znak sama w sobie i wyświetlenie jest jako takiej na LCD samo zagwarantuje dodanie bądź nie dodanie znaku "-".
https://obrazki.elektroda.pl/2189061300_... Jakiś czas temu postanowiłem stworzyć prosty termometr, który będzie wyświetlał temperaturę zewnętrzną na telefonach domowników. Miałem już przeprowadzoną skrętkę komputerową, która pierwotnie miała posłużyć do zewnętrznej anteny radiowego internetu, ale że internet mam rozwiązany inaczej,...
Dobra uporałem się z problemem. Zmieniłem kwarc na 8MHz i ruszyło.Wcześniej nie wykrywało karty sd.
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?
Witam XYPIT - u mnie jest np. 2m i 3m
tablica jest odpowiedni zadeklarowana, a bascom automatycznie inkrementuje wzkaźnik w tablicy, więc polecenie: Bd(1) = 1wread(9) powoduje, ze pierwszy odczytany bajt ląduje w Bd(1), kolejny w Bd(2), aż ostatni (dziewiąty) w Bd(9)
Bo to post dla niedowiarków którzy uważają że bascom to tyko do migania ledami sie nadaje. W myśl zasady, że złej baletnicy przeszkadza nawet spódnica.... Brawo. Super pomysl i urządzenie.
...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...
Ok skoro nie nawiązałeś komunikacji ze wszystkimi dallasami to wykonaj kolejny krok tzn. pozostaw jedynie jedenego dallasa i zrób to po kolei sprawdzisz czy numery Ci grają. Jak już tak pojedynczo sprawdzisz to podłącz kolejnego tak żeby były 2 na jednej linii i tak pokolei do przodu. Spokojnie do wszystkiego się dojdzie. Pozdrawiam. PS. Z Bascomem...
Dodaj flagę , zwiększaj ją w przerwaniu, a w pętli głównej sprawdzaj czy osiągnęła już równowartość 750ms.
Witam. Napotkałem drobny problemik. Po wpisaniu id czujnika: Sid = &H28C2F8A602000098 BASCOM wywala błąd 49. zmiana deklaracji zmiennej Sid nic nie daje. Cały czas pisze że nie mieści się w zmiennej, BYTE, WORD, LONG... Co z tym zrobić?
W Bascom ,będzie trudno ,a C szybciej zmusisz proca do tego , ale z drugej strony po co tak kombinować , 4 DS'y z rezystorem 1.5k podciągnięte do +U ,pracują na skrętce u mnie na dystansie 70mb bez problemu
Ok poradziłem sobie tylko teraz wyskoczył mi inny problem , a mianowicie nie wiem dlaczego nie mogę korzystać z funkcji LINI i Boxfill wyświetlacz szaleje :-) a chciałbym wykorzystać te dwie funkcje w programie poniżej kod programu [syntax=basic4gl] '***************************************... '* Code to test DS18x20 '* The 1-wire bus pin is Port...
No to koledzy mnie uspokoili trochę :) Tak sobie czytam datasheeta od atmegi 162 i nie mogę się połapać z tymi PWM-ami... Bo widzę tak : timer/counter0 z PWM timer/counter2 z PWM i co dalej ? Gdzie te pozostałe PWM ? Może któryś kolega byłby tak miły i mógłby w miarę łopatologicznie wyłożyć - jak to się je :) Czy Bascom wspiera sprzętowy PWM w ogóle...
...czy ktoś z Was ruszał te pastylki? A czy Ty , zaglądałeś do dokumentacji tej "pastylki" :?: Wątpię :| Przecież jedyne co potrafi DS1990A , to podanie swojego numeru seryjnego(ID) , natomiast Ty , nakazujesz mu zmierzyć i podać temperaturę. Poza tym , na zmienną typu INTEGER , Bascom rezerwuje 2B , a Ty na siłę chcesz wepchnąć 8B.A więc poczytaj...
No nic prostrzego chyba juz nie ma do zrobienia. Deklarujesz 2 zmienne i najpierw dokonujesz odczytu i zapisujesz do jednej zmiennej, a nastepnie po min. 0,7sek bo chyba tyle potrzebuje DS z tego co pamietam dodkonujesz nastepnego pomiaru i wartosc zapisujesz do zmiennej nr 2. Pozniej tylko warunek: jesli [t2>t1] wtedy wyswietl strzalke...
co prawda w C, ale zasada ta sama: http://mikrokontrolery.blogspot.com/2011...
Ten program jest dziwnie napisany i być może po czasie brakuje mu stosu. Już wyjaśniam. 1. Po pierwsze powinno się deklarować wielkość stosu #hwstack bo inaczej to masz tam tyle ile masz wpisane w IDE a tam możesz mieć dalej jakieś Tiny2313. 2. Po drugie użycie instrukcji GoTo by przeskoczyć z jednego Sub do drugiego lub wyjście z Sub do pętli głównej...
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ł...) ?
Panowie mam debilne pytanie bo nie rozumiem tego a sporo się naszukałem i nie znalazłem wyjaśnienia. Chodzi mi o to: kody rozkazów do ds18b20 w manuału są takie: ' 1 Wire commands: ' 1. Read ROM - 33h ' 2. Match ROM - 55h ' 3. Search ROM - F0h ' 4. Skip ROM - CCh ' 5. Alarm Search - ECh ' Convert T - 44h ' Read Scratchpad - BEh ' WriteScratchpad - 4Eh...
Tego nie wiedziałem:D, co trzeba zrobić aby działał na 18b20 ?? Napisac nowy/własny od początku, albo skopiowac jeden z wielu gotowych, chocby tu na 'elektrodzie, albo wpisz w 'google': "bascom ds18b20 termostat"(bez " "). albo; - poproś ładnie(!), - to nivea ci napisze...; a jak dłużej pociągniesz temat (będziesz udawał nie pojętnego nicponia), to...
Witam serdecznie! Poniżej zamieszczam program regulacji PID oparty na kodzie AN #109 - PID Controller ze strony: [url=http://www.mcselec.com/index.php?op... oraz wzorowany na niektórych liniach kodu "Regulator PID Atmega8 + Bascom" Piotra Ludwikowskiego. Zadana temperatura oraz współczynniki PID są na stałę...
Pomysł malona jest chytry- i nie wiem jak go zdemolować. To że pierwszy odczyt powinien być błędny- rozumiem. Nie wiem jak to otrzymać-u mnie jest dobry od początku. Sterownik pieca reagujący po 750ms? To jest piec- a nie procesor. Ostatecznie robiłem to w przerwaniu- da się- w pierwszym poście- proszę o sposób na zdemolowanie programu. Dodano po 18...
bascom ds18b20 ds18b20 bascom ujemny bascom ds18b20 schemat
podłączyć tubę telefon livebox canon mp550 głowica
autosan adblue naprawa erbauer
JavaScript: ładowanie stron do iframe, obsługa zdarzeń, bezpieczeństwo Pralka pierze, ale nie wiruje - przyczyny i rozwiązania