Witam ! Skopiowalem sobie z Helpa bascomu taki oto kod... chce to skompilowac ale wywala blad najpierw przy: W = 1wirecount(ar(1)) pozniej: Ar(1) = 1wsearchfirst() Ar(1) = 1wsearchnext() Posiadam taki procesor jak jest zadeklarowany w kodzie...ale za Chiny nie chce to ruszyc :( '---------------------------------------... ' 1wirecount.bas...
1WIRECOUNT Przeznaczenie: Zwraca liczbę urządzeń podłączonych do magistrali 1Wire. Składnia: [syntax=basic4gl]zmienna = 1WIRECOUNT( ) zmienna = 1WIRECOUNT( port , pin )[/syntax] A także: [syntax=basic4gl]1wverify Reg_no(1) Print Err 'Err=1 gdy nie ma takiego numeru[/syntax] Zwróć uwagę na tajemniczą zmienną Err, która jest zaszyta w programie.
Wielkie dzięki - działa po zmianie częstotliwości generatora. :-) Dodam, że przeszedłem cały rozdział pocżwszy od 1wirecount poprzez ...search itd i nic a problem tkwił w generatorze. Tak mam na pewno podpięty 4k7 do vcc i pod nogę środkową. Teraz działa. A możesz mi napisać gdzie się zmienia fuse bity, żeby wykorzystywał zewn generator? Z petlą jak...
Cytat: "Jeżeli Twój Bascom "obsługuje" 1wirecount,1wsearchfirst,1wsearchnext to sprawa jest prosta , w przeciwnym razie ... jest więcej roboty(trzeba napisać obsługę Search Rom) , ale nie jest beznadziejnie" Mam Bascom 8051 v.2.0.11.0 Obsługuje te funkcje.
I tak już dużo napisałem gotowców. Pomyśl nad funkcją 1wirecount z dokumentacji BASCOM'a.
1wirecount() też zwraca 0?
Ja bym wyszukiwanie zrobił tak Dim Ids(64) as Byte 'Maksymalna liczba czujników * 8 Dim I as Byte Dim J as Byte Dim L as Byte Dim Count as Byte Dim TempCount as Byte ' Wyszukiwanie Count = 0 TempCount = 1wirecount() If TempCount > 0 Then I = 1 J = I + 7 Ids(1) = 1wsearchfirst() Do If Ids(J) = Crc8(Ids(i),...
A z jakiego powodu na osobnych liniach ? Masz tak dużo wolnych pinów ? Przeczytaj o 1WIRECOUNT( ) Pozdro :)
Również przyłączam sie do prośby o procdury. Nie moge uruchomić tego czujnika :/ gdy wywołuję funkcję 1wirecount() zwraca ona 0 :( Nie wiem już czy ten czujnik jest uszkodzony czy ja coś xle robie
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...
no widzisz u mnie nie wykrywa tego błędu. Wersja mojego 2.0.6.0 full wersion :) Zgadza się v2.0.8.0 też nie protestuje 8O A tak apropos Bascom-owego assemblera czy wiesz że można korzystać z wbudowanych w niego asm-owych procedurek :idea: Do wersji 2.0.11.0 (jeśli się nie mylę)Bascom nie miał takich przydatnych funkcji 1wire jak: 1wirecount(),1wseachfirst(),1wsearchnext...
Zacznijmy od początku. Czy posiadasz podpięte czujniki DS do jednego pinu ?, czy do 4 ? Z tego urywka programu nie mogę tego wywnioskować. Jeśli do jednego pinu to polecam [url=http://avrhelp.mcselec.com/index.ht... Natomiast, jeśli do 4 pinów to polecam [url=http://avrhelp.mcselec.com/index.ht... Niestety posiadasz...
Dzięki za cenne uwagi. Teraz wiem czego szukać. Generalnie zmiana kontrastu pokaże że dolna linia nie działa. Szpilki na zasilaniu przy LCD mogą się pojawić, nie dałem dodatkowego kondensatora. Inicjalizacja wyświetlacza co pewien okres czasu na pewno pomoże. Poprawki wykonam w Piątek lub Sobotę i się odezwę za tydzień. Kontrast jest regulowany dla...
W Bascom, jest magiczna zmienna systemowa "Err" (moze Error ale raczej Err), którą wiekszość programistów ignoruje. Nawet o niej nie wiedziałem. Nigdy nie jest za późno aby się czegoś nauczyć :-) Swoją drogą to ZTCP bez czujnika zwracał 85*C (po konwersji danych na temperaturę w *C z rozdzielczością 0.1*C). Tak samo przy pierwszym pomiarze zawsze zwracał...
witam powiem tak to co ja czytalem odwoluje się tutaj do AVR nie wiem jak jest z '51. Ale jesli chodzi o AVR to moze byc jeden pin 1-wire tylko mozna do tego podpiac kilka ukladow wire bo jest takie cos jak ID urzadzenia. Czyli zapomoca ID mozna wybieraz urzadzenia z ktorego ma byc czytana informacja Tak oczywiście. Zdaje sobie sprawę z istnienia:...
to , że procek działa na szybszym kwarcu może wpłynąć tylko korzystnie w takim układzie. Przecież masz deklarację kwarca 16MHz w programie więc kompilator wszystko kompiluje zgodnie z tą dyrektywą.... czyli jak dobrze rozumiem to już na tym czysto wstępnym etapie programu Cls W = 1wirecount() Cls Lcd "Ile =" ; W ; "szt" Wait...
Witam wszystkich na forum. Buduje układ który miałby sprawdzić ile urządzeń podłączonych jest do magistrali 1wire (termometry ds18b20) i wyświetlałby kolejno odczytane temperatury. Do rzeczy, problem tkwi w tym ze mój atmel po wykonaniu instrukcji : 1wreset Il = 1wirecount() zawsze znajduje max. 2 termometry nie zależnie od tego ile jest podłączonych....
witam wszystkich jestem początkujący w programowaniu uC i dla tego mam mały problem a mianowicie chciałbym aby na wyświetlaczy pokazywała mi sie temperatura a przy okazji można był sterować różnymi urządzeniami za pomocą pilota RC5 podczas kompilacji w bascom-avr wersja demo program wywala mi błąd error: 61 line: 176 label not found $regfile = "m8def.dat"...
mam podlaczone dwa termometry ds18b20 do magistrali 1wire, steruje tym z basoma oto krotki fragment kodu Config 1wire = Portb.0 1wreset Dim W As Word Dim Id_cz1(8) As Byte Dim Id_cz2(8) As Byte W = 1wirecount() Id_cz1(1) = 1wsearchfirst() Do Id_cz2(1) = 1wsearchnext() Loop Until Err = 1 po tych...
Nie wiem czy chcesz się nauczyć czy potrzebujesz program. Na początek te uwagi: 1. Nie wiem co tam robi dyrektywa $eeprom. Jest niepotrzebna w tym kodzie 2. Zmienna Ds jest zwiększana w przerwaniu niezależnie od tego czy jesteś w Menu czy nie. Tak więc po powrocie z Menu już na pewno nie zdążysz załapać się na warunek If Ds = 2 i wyzerować jej wartość....
Niestety nadal nic ... Napisałem (a dokładniej przerobiłem program z innej strony): [syntax=basic4gl]$regfile = "m16def.dat" $crystal = 8000000 $baud = 2400 Config Portb = 255 Portb = 0 Config Portc = 255 Portc = 255 Config Portd = 255 Portd = 255 Config 1wire = Pina.0 Cls Cursor Off Noblink Enable Interrupts Dim Lsb As Byte Dim Msb As Byte Dim Tempa...
Witam Robisz tak : Deklarujesz macierz czy tam tablice zwał jak zwał o x zmiennych byte. 1wreset W = 1wirecount() Adres(1) = 1wsearchfirst() Adres(9) = 1wsearchnext() 1wreset itd itd. Masz w tej tablicy adresy kilku czujników a później: 1wreset 1wwrite &H55 ' Będę wysyłał adres 1wwrite Adres(1) , 8 ' Wysyłam...
Źle mu podpowiadasz. Uzależniłeś odczyt temperatury od flagi B=0 (!) Nie byłoby w tym nic złego, bo stan flagi '0' lub '1' może być umowny, ale ten aktualny stan w tym przypadku zerowy będzie sie utrzymywał przez dośc długi czas (prawdopodobnie blisko 1sec. bo coś może trwać pod "jakieś instrukcje") co pozwoli na wielokrotne 'przewijanie" pętli a w...
Staram sie napisać programik w Bascom, który odczyta mi numery seryjne z termometrów dallasa DS1820 (docelowo 3-4 termometry) ma go zapisać w pamieci eeprom procesora, a nast ma być odczytany. Na końcu użyłem komendę dla wyświetlenia na lcd ale jakoś mi to podejżanie działa ponieważ nie wyświetla mi znaków a tylko jakieś "9". Może źle odczytuje lub...
Takie mam pytanie... Mam urządzenie wykorzystujące DS18B20 z Atmegą 162, pod Bascomem. I pytanie jest takie - czy mogę zastąpić ten DS18B20 przez DS1820 ? Bo jak patrzę w datasheety, to wydawałoby się, że niby to samo ? A jednocześnie znalazłem tu na elektrodzie informację, że program dla DS18B20 i DS1820 powinien być nieco inny. Moje procedurki są...
No to jedziemy dalej :) Problem polega na tym, że nie bardzo chcą działać przyciski P_tryb, start, stop. O ile opóźnione działanie P_tryb jest chyba związane z trzema komendami WAITMS 330 w pętli głównej, to nei rozumiem dlaczego dwa pozostałe przyciski niezbyt chcą być obsługiwane. To jest tak, że jak przytrzymam dłużej, to czasami zaskoczy, a czasami...
Trochę przerobiłem ten kod. Teraz wygląda to tak (pokazuje temp. po przecinku): Dim Adresy(16) As Byte Dim Temp As Byte Dim Temp_str As String * 6 Dim W As Byte Dim T As Integer Dim Wew(9) As Byte Dim Zew(9) As Byte Adresy(1) = 1wsearchfirst() Adresy(9) = 1wsearchnext() W = 1wirecount()...
Witam. Mam taki problem ze po probie skompilowania programu przepisanego z ksiazki marcina wiazani. wyskakuja mi bledy ktore wskazuja na ostatnia linie kodu: Error : 31 Line : 185 Invalid datatype [ 0] , in File : C:\PROGRAM FILES\MCS ELECTRONICS\BASCOM-AVR\term.BAS Error : 93 Line : 185 Variable not dimensioned [...
Dopisze sie do tego tematu po podobny do mojego problemu... zrobilem sobie termometr i na jednym czujniku dziala swietnie ale podlaczylem drugi i zmienilem program i jest jakas lipa :/ sprawdzam czy widzi 2 czujniki i program pokazuje ze 2 czujniki sa, ale nic mi nie wyswietla :( wiecie moze co moze byc przyczyna? Liczba_ukl = 1wirecount() If...
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...
Spróbowałem, wyrzuciłem ten kawałek, w efekcie czego mam pomarańczowe "0" świecą czerwone i zielone diody. Nie mam pojęcia jak to inaczej zapisać. Przez to, że "luz" nie "leci" przez Uc nie ma możliwości sterowania tranzystorem T3 przez program. Dzisiaj jeszcze coś mi się posypało z 1wire, nic przy nim nie ruszałem a nagle przestał działać jeden czujnik....
ok tadzik juz dziala :D Pomogles znaczy doradziles z tymi fusebitami Nalaeza ci sie te pkt ale jak bys jeszcze pomogl mi w polaczeniu tych kodow : $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'linia PB2 jako wejściowa Config Lcd = 16 * 1a 'konfiguracja typu wyświetlacza...
Dzięki wielkie za pomoc, zrobię na jednym pinie 2 czujniki. Teraz został tylko problem z programem. Aha, z tymi dwoma zerami już sobie poradziłem. Powodowala je komenda Lcd Hex(dsid1(8)) Dodano po 2 $regfile = "2313def.DAT" $crystal = 1000000 '$lib "mcsbyte.lib" Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Portb.0...
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...
Witam Chciałem dorobić termometr do samochodu z temp. zew. i wewn. i wyświetlaczem LCD 2x8 . Przerobiłem trochę kod z forum tylko że był on do atmegi8 i niestety nie chce się "zmieścić" do Attiny2313. Jak zoptymalizować kod programu co pozmieniać ? Co zajmuje najwięcej pamięci ? Flash used 129 % Attiny2313 $regfile = "attiny2313.dat" $crystal...
Witam To moze zaczne od kodu: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2 Cls Config Servos = 1 , Servo1 = Portc.5 , Reload = 10 Config Portc.5 = Output Config Portd.0 = Input Set Portd.0 Cursor Off Dim Serworuch...
Ds18B20 ma programowalną rozdzielczość 9 - 12 bitów, czyli rozdzielczość pomiarowa = 0,0625 st.C, ale ich dokładność to 0,5 st. C Tu masz procedury do 4 czujników: Odczytaj_id: 1wreset T1_id(1) = 1wsearchfirst() If Err = 1 Then T1_id(1) = 0 End If T2_id(1) = 1wsearchnext() If Err = 1 Then T2_id(1)...
$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega16 $crystal = 8000000 'deklaracja cześtotlwiości pracy 'Deklaracja portów od wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Cursor Off '**** Termometr **** Config 1wire =...
Witam. W dziedzinie mikrokontrolerów jestem początkujący więc proszę o wyrozumiałość. Mam problem zaprogramowaniem Atmega8. Programator zrobilem sobie według schematu z tego posta 'Termometr 4 punktowy DS18b20 $regfile = "m8def.DAT" $crystal = 1000000 'Deklaracja portów od wys'wietlacza LCD Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1...
Witam. Znamy sie juz z mojego wczesniejszego tematu :) gdzie pytalem o cos podobnego ale dla jezyka C. Z racji braku supportu dla polaczenia 1wire-8051-jezykC postanowilem wykonac zadanie w BASCOMIE dla 8051. Usiadlem przerobilem troche kodu z C i oto efekty: $crystal = 12000000 Wysw Alias P2 'a-h W1 Alias P0.1 ' 3 anody dla 3 wyswietlaczy W2 Alias...
Tworzę sterownik który będzie operował na 4szt DS18b20 Program jest pisany w bascom Czy w bascomie można zadeklarować tablicę dwu wymiarową Tablica (4)(8) Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu. Podobno po wysłaniu za pierwszym razem numeru układu inne milczą a wskazany nadsłuchuję 1wreset 1wwrite...
To jest program który ma obsługiwać mi dwa termometry, wgrywam i pojawia się ,, 298 " te wszystkie zmiany wprowadzałem aby sprawdzić czy ruszy. $regfile = "m8def.DAT" $crystal = 8000000 Config Portb = Output Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Pind.1 , Rs = Pind.0 Initlcd Wait...
Oj kolego, poważny błąd - zasilaj prawidłowo mikrokontroler: http://mikrokontrolery.blogspot.com/2011... Dzięki za upomnienie, faktycznie gdzieś to przeoczyłem, na schemacie ideowym nawet masa wisi :) Poniżej zamieszczam poprawiony schemat ideowy i płytkę w EAGLE. Widząc duże zainteresowanie kodem wrzucam wsad w BASCOM....
Dzięki kolego Zumek za wskazówki, teraz już dzialają 3 czujniki, jeśli byś mógł to doradź coś o optymalizacji kodu, bo w takiej wersji wsad zajmuje 7,77KB a chce coś jeszcze do tego dorzucić i nie wiem czy sie zmieszcze w 8KB $regfile = "m8def.DAT" $crystal = 1000000 '$lib "mcsbyte.lib" Config Lcdbus = 4 Config Lcdpin = Pin , Db4...
Witam, Nabyłem moduł MMega01 firmy http://www.propox.pl/index.phtml?lang=pl Problem polega na braku komunikacji z urządzeniami 1wire... Probowałem podłączyć termometr DS18b20(nie jeden - myślałem że ten co mam jest uszkodzony) i nic... taktowanie procka to ok 16MHz. Jako rezystor podciągający na magistrali 1wire daje 2,2k np w ATmega32 zawsze wystarczało....
Witam! Na tą chwile (brak czasu) udało mi się sklecić coś takiego: $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja portów od wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3...
Witam Szukałem w internecie odpowiedzi na swoje pytanie ale nie znalazłem konkretnej odpowiedzi. Straciłem 3 dni na doświadczenia i nic mi nie wychodzi. Pracuję nad urządzeniem które odczytuje temperaturę w czterech różnych miejscach. Dopóki wszystkie czujniki działają nie ma problemu. Jeżeli padnie któryś z czujników pojawia się problem bo po jego...
Witam[syntax=basic4gl]' ----------------------------------------... ' The support for this display has been made possible by Peter Küsters from (c) Display3000 ' You can buy the displays from Display3000 or MCS Electronics ' ----------------------------------------...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
Jak w temacie - czytalem gdzies, ze trzeba zminic stan portu podczas pomiaru, ale ja jestem w tym temacie zielony, dlatego prosze o pomoc. PS. Potrzebuje jeszcze dodac funkcje z przecinkiem i znakiem - wydaje mi sie, ze wynik wyswietlany jest bez nich. $regfile = "m8def.dat" $crystal = 4000000 Declare Sub Init Declare Sub Convallt ' Convert...
bascom bascom enkodera bascom projekt bascom bascom bascom enkoder
hyundai falujące obroty zamienniki tranzystory bc549 regulator ciśnienie paliwo corsa
Transformator głośnikowy do wzmacniacza lampowego 12W push-pull Domowe sposoby na smarowanie uszczelek samochodowych