Witam Obsługuję czujnik DS18B20 w Bascomie. Czy czas pomiędzy kolejnymi poleceniami, tj. 1wreset , potem 1wwrite &H55 , potem 1wwrite &HCC ... itd. może być dowolnie długi, przykładowo -np 6 minut; 5 godzin; 10godzin czy też 10dni .... ? Oczywiście wysyła 1 polecenie, czeka, wysyła drugie itd. do końca... Czy są ograniczenia? NIE! Te czasy (timingi)...
Brak kropki w deklaracji pinów wyświetlacza ma byc: DB6 = portb.1 Następnym razem sprawdz dokładnie tego typu błedy i nie dodawaj tematu z tak błahego powodu
Kolega Mad Jaro mierzy czas pomiedzy INT-em i przelicza na obroty. zablokowanie INT spowoduje pływanie obrotów( INT nie liczy impulsow). Kolega xury ma rację odnośnie jednokrotnego użycia szukania czujników. A poza tym zsynchronizuj odczyt 1wire z przerwaniem INT tzn. komunikację z 1wire podziel na max -5 bajtowe odcinki i wykonuj je po przerwaniu INT....
Możesz zrobić co chcesz byleby polecenie Config 1wire było już po konfiguracjach portu. Co do UARTu to też nie ma znaczenia, bo jeśli Bascom wykryje użycie w kodzie Config Serialin/Serialout lub nawet samo użycie Print to kompiler ustawi je sam automatycznie.
W uC należy odpowiednio ustawić FUSE BITY!!! Poczytaj przyklejony temat.
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...
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.
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ę :)
Witam wszystkich. Robię obsługę 1wire na 2 osobnych portach... Pozdrawiam. Poczytaj [url=http://www.elektroda.pl/rtvforum/to... topic Piotrek
masy się łączą, odległość na razie to jakieś 30 cm ale docelowo ma być ok 30 m Drogi kolego omen_s ;) Szkoda Twojego cennego czasu na komunikację pomiędzy prockami magistralą 1wire , przy pomocy Bascom-owych funkcji 1wire , bo tak się po prostu nie da . Te funkcje pracują w trybie MASTER , a procek który ma odbierać dane powinien pracować w trybie...
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",...
No to mamy winowajcę. Robienie czegokolwiek długotrwałego w przerwaniu to chory pomysł, ale problem polega na tym, że procedury obsługi LCD nie blokują przerwań na czas wykonywania operacji na LCD - dołóż blokowanie i odblokowanie przerwań na prymitywach LCD i zadziała (jako proteza). żeby zadziałało dobrze - przenieś obsługę 1Wire do pętli głównej.
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
Obsługa 1Wire w BASCOMie nie jest obsługiwana w przerwaniach. Możesz spróbować czegoś takiego: cli 1wreset 1wwrite &H55 sei cli 1wwrite B2 sei cli 1wwrite &H44 sei Chodzi oczywiście o porozdzielanie wszystkich instrukcji 1Wire sekwencjami sei,cli.
Przerwanie_0: 'co 2ms If Liczniczek_przygotowanie_odczytu < 400 Then Incr Liczniczek_przygotowanie_odczytu If Liczniczek_przygotowanie_odczytu >= 400 Then 'co 800ms odzyt DS Liczniczek_przygotowanie_odczytu = 400 Flaga_przygotowanie_odczytu = 1 End If End If Flaga_dodatkowa = 1 'do wykorzystania w innym sub- też co 2ms- to Twoje sterowanie...
Przy ostatnej dyskusji na forum dowiedzałem się, że jeden drut w Bascomie na 16MHz się nie wyrabia. Spróbuj przełączyć się na wewnętrzny generator i 8MHz. aby sprawdzić.
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ć ;)
$crystal = ? ;)
zrobiłem błąd bo ogladałem kod całego programu. ma on ponad 10kB. nie przyszło mi do głowy, żeby skompilować tylko procedury 1wire. PC
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.
Zamierzam podłączyć 3szt. DS18B22 na jednym 1wire układu AT89C4051. Tyle, że utknąłem już na 2szt. Korzystam z Bascom'u. Wprawdzie nr ID odczytywane są prawidłowo, natomiast temp odczytywana jest tylko z jednego i to niepoprawnie. DS-y na pewno sprawne, pojedynczo działają bez zastrzeżeń.Program na jeden czujnik DS, który wklepałem wielokrotnie przedstawiany...
Tylko w bascom colage nie byl opisywany problem porzadkowania balaganu na magistrali jedenoprzewodowej (!WIRE), gdy podlaczony byl wiecej niz jeden czujnik :D
Czy do układu DS18B20 masz podłączone zasilanie +5V, czy pracuje on w konfiguracji dwupinowej? W karcie katalogowej jest wzmianka "If the DS18B20 is powered by an external supply, the master can issue read time slots after the Convert T command and the DS18B20 will respond by transmitting a 0 while the temperature conversion is in progress and a 1 when...
Db5 = Portb.6 Config 1wire = Portb.6 To też nieciekawie wygląda :D
Procedury odczytu wire w bascomie nie korzystaja z timerow masz blad w programie
Witam, czy ktoś posiada działającą procedurę odczytu licznika z układu 1wire DS2423 w Bascom? Pozdrawiam Darek
W tym kursie co podalem sa gotowe procedurki w C obslugi SPI, 1wire, I2C.
to podeslij mi jesli mozesz na golll(at)poczta.onet.pl
Zobacz sobie krótki opis [url=http://bart-projects.cba.pl/multipl... Zacznij krok po kroku i w 20 minut opanujesz temat. Co prawda tam akurat nie multipleksuję w przerwaniu chociaż tak to właśnie robię najczęściej. Spowodowane to było tym że akurat musiałem pogodzić multipleksowanie sześciu wyświetlaczy z odczytem 1Wire i czasem "naciągałem"...
Np. tak: Set Flaga : While Flaga = 1 : Wend to umieszczasz raz lub kilkakrotnie w odczycie z DS-a. Część umieszczona poniżej tego wykona się dopiero jeśli flaga zostanie zresetowana. Flagę resetujesz po wykonaniu przerwania.
Nie ma się nad czym zastanawiać- zdecydowanie C. C jest językiem uniwersalnym, kompilatory Bascoma powstały tylko pod mikrokontrolery AVR. W pewnym momencie okazuje się, że język bascom zaczyna być mądrzejszy od właściciela i nie da się go okiełznać. Nie mówiąc o tym, że kod wynikowy C jest dużo mniejszy. Bascom, owszem ma swoje zalety- na przykład...
ale temperaturę pokazuje ok (dodatnią) jeżeli wyrzucić linijki związane z timerem... poprawie to ale to i tak nie rozwiązuje mojego problemu. W tej postaci na obu wyświetlaczach mam krzaki...
Muszę cię zmartwić ale nie ma gotowych poleceń i super prostych rozwiązań jeśli chodzi o Bascom dla takiego zastosowania ultradźwięków. Trzeba sobie samemu zrobić jakiś układ, podpatrzeć jak to inni robią - być może użyć dodatkowo jakichś wzmaczniaczy operacyjnych dla wzmocnienia odbieranych czy nadawanych sygnałów (zależy jaki chcesz mieć zasięg) no...
Nie musisz czekać. Musisz zacząć trochę inaczej myśleć niż "linijka po linijce"... Dokładnie i nie jest to wcale takie proste :cry: Inaczej będzie to wyglądać dla prostego 'termometru', a zdecydowanie inaczej jeśli 'w tle' pracuje kilka przerwań, które rozwalą komunikację na 1wire na amen. Zerknij co kiedyś wykoncypowałem :D , żeby przerwanie obsługujące...
U mnie działały dokładnie jak inne układy 1wire.
Myślę, że w Bascom obsługa 1wire koliduje jakoś z przerwaniami. Miałem kiedyś na tapecie projekt z regulacją fazową i DSem, jak nie zapomnę to odkopię to wieczorem ;-) EDIT : Przepraszam, w tamtym projekcie miałem czujnik temperatury analogowy...
Gotowiec w asemblerze (nie mój, chociaż większość kodu piszę w asm, to akurat 1wire ubsługuje mi Bascom): http://www.boerde.de/~matthias/m8051/ds1...
A gdzie ty wyczytałeś, że to można zrobić w bascomie? Nie ma slave dla 1wire w bascomie. Np dla I2c slave jest ale już płatny i do tego do d.... . Trzeba to sobie zrobić samemu od podstaw i najlepiej w asm albo w C jeśli już się za to zabierać.
A z jakiego powodu na osobnych liniach ? Masz tak dużo wolnych pinów ? Przeczytaj o 1WIRECOUNT( ) Pozdro :)
Głównie interesuje mnie to "Waitms 750", bo zegar będzie do.. niczego Będzie działać poprawnie jeśli cały ten kod umieszczę w kodzie wyrażenia warunkowego gdzie warunek będzie spełniany co 750ms? Do tego właśnie można wykorzystać timer i zapomnieć raz na zawsze o wait. Czy w ogóle w takim układzie jest sens dawać odbiornik RC5 i DS18.. pod piny bez...
Z procka, z tego co wiem, to nie. Mozesz kupic sobie EEPROM z identyfikatorem unikalnym np. [url=http://ww1.microchip.com/downloads/... Mozesz sobie tez podlaczyc scalak o podobnej funkcjonalnosci na 1wire (sa takie). Dla pocieszenia powiem, że większość nowych ARMów ma unikalne serial numbery w krzemie ;]
A nie chodzi o odczyt klawisza/klawiszy ?
Może błąd tkwi w kodzie :)
Jeżeli Twój program jest napisany w Bascomie , Atmega8 pracuje na wewnętrznym oscylatorze 1MHz to przestaw oscylator na 4MHz.Mi 1Wire nie chciało działać na 1MHz.Chyba nie tylko mi: http://www.elektroda.pl/rtvforum/topic12...
Daj się przekonać do $crystal. Jeśli częstotliwość zadeklarowana jest różna od rzeczywistej to nici z 1Wire. Gdzieś czytałem, że przy 16MHz 1Wire w Bascomie nie chce chodzić.
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...
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...
Witam, Programuje w Bascomie i chcialbym zrobic uklad slave dla magistrali 1wire dla 90S2313, w bascomie jest malo instrukcji do obslugi 1wire, ja chcialbym nadac mojemu uC unikalny numer id i ukladem master moc modyfikowac w nim jakas zmienna Ma moze ktos jakies pomysly jak to zrobic? Pozdrawiam,
Napisz co konkretnie zmieniłeś w momencie jak przestało działać. A jak nie wiesz to powoli wracaj do wersji kiedy działało. Np. zacznij od kodu który tylko odbiera kody od pilota a potem dodawaj po kawałku obsługę I2C, wyświetlacza, 1Wire, itd.
tak przegladam program... widze ze wysylanie po 1wire do nokii tez nie realizujesz za pomoca bascomowego 1wwrite. to zaszlosc ze stosowania rozwiazania na attiny12 (ktore ponoc nie do konca jest kompatybilne z 1wire bascoma), czy sa problemy nawet w tym attiny13 z odbiorem 1wire bascomowego?
A jakich kwarców używacie :?: Wewnętrzne procedury 1wire w Bascomie 8051 , napisano dla kwarcu 11059200 i przy innych częstotliwościach taktowania proca występują problemy. Piotrek
Troszkę stary ten post piotrek198o, ale użyłem programu na swojej PCB (zmieniłem konfigurację LCD i 1wire) i program działa.
Hej! Twój problem polega na specyficznej konstrukcji magistrali 1Wire i tego że wszystkie czujniki są podłączone za pomocą jednej lini i w momencie gdy chcesz pobrać dane z jednego to zgłaszają ci się wszystkie na raz lub ten który jest szybszy. Miałem podobny problem gdy w układzie miałem podłączony czujnik temperatury oraz pastylkę dallasa i efekt...
Jeśli chodzi o 1Wire na porcie F i Bascoma z Atmega128 to moja praktyka pokazuje że nie zadziała. Jakiś czas później znalazłem : http://www.mcselec.com/index2.php?option... Pozdrawiam
$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ć...
!! Bascom WYKŁADA sie przy kompilacji kodów dla proców mega64 i mega128 :) Mialem kiedys taki przypadek: pisałem sobie kod na szybko w bascomie, i chciałem użyć PF.3 jako pin 1wire. Skonfigurowalem w bascomie 1wire na ten pin i.... LIPA, odczyt udawał sie raz na 100x a jak juz odczytal to jakas przekłamaną wartość... Po przepisaniu kodu do c i dopisaniu...
Teraz mam inny problem.... [syntax=basic4gl]$lib "xmega.lib" : $external _xmegafix_clear : $external _xmegafix_rol_r1014[/syntax] Przenieś na koniec kodu.
Wklej komenty 1wire, bo ten fragment kodu nic nie mówi.
Czy masz może w twoim kodzie: Config 1wire = Portb.0 (konfiguracja linii magistrali)
Wyłącz przerwania na czas transmisji 1wire
Tylko ważna uwaga: takie podejście to już zalążki tzw. pseudowątkowości. Wobec tego w programie nie możesz używać żadnych "normalnych" opóźnień. Sęk w tym, że Bascom z większością swoich gotowców (zawierających ukryte opierniczanie się w pętli) - w tym i obsługa 1wire to jedno wielkie opóźnienie... :P
ło matko ;) po opisie kolegi atom1477 i po tej informacji, że "Bascom coś kombinuje" można by uznać, że napisanie sotu do obsługi 1wire to rzecz prawie niemożliwa dla zwykłego śmiertelnika. Tymczasem to co robi Bascom to absoultnie nie żadna kombinacja tylko normalne zachowanie - ponieważ to podtrzymanie stanu wysokiego na pinie portu jest niejako przygotowaniem...
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...
A czy zdajesz sobie sprawę z tego, że przerwania "rozwalają" Ci transmisję 1wire :?: Poza tym, co z niżej wymienionymi dyrektywami Bascom-a :?: A jak powinno być poprawnie ??
Czy jest możliwy błąd podłączenia? Tutaj oczywiście zmieniłem na PB.1 Tak, wszystko jest możliwe... Spróbuj ten code: [syntax=basic4gl] 'DS18B20 - ROM reading test from single sensor DS18B20 $regfile = "m8adef.dat" $crystal = 4000000 $hwstack = 80 $swstack = 80 $framesize = 40 Config 1wire = Portb.1 'Config 1wire = Portd.5 Dim N As Byte Dim Dsid1(8)...
(at)poorchava - a co polecasz 13latkowi, który zaczyna eksperymentować z uC? BASCOM w tym momencie daje najwięcej oczekując najmniej. Oczekując najmniej od programisty oczywiście. Od MCU wymaga całkiem sporo, jako (moim zdaniem) dość ciężki do zoptymalizowania przez kompilator język. Niemniej można zrobić łatwo i przyjemnie dużo rzeczy bez potrzeby...
Z mojego doświadczenia z DS18B20 wynika: Procedury 1wire w Bascomie działają bez zarzutu. Oscylator wewnętrzny 8MHz jest jak najbardziej dobry i w niczym nie przeszkadza. Podciąganie 4k7 dla jednego DS na krótkim przewodzie jest zupełnie wystarczający. Dla np. 4 DS na kilkunastometrowych przewodach przydaje się 1k. Po co w instrukcji 1wwrite portc.1...
Jeśli te funkcje będą następować po sobie (niezależnie jak długi jest odstęp, bo na taki pozwala specyfikacja 1wire), to będzie to działać. Jeśli coś jakaś aktywność na linii będzie pomiędzy, to całą komunikację zerwie. Przygotowanie danych to 1wreset 1wwrite &HCC ' SKIP ROM czyli do wszystkich 1wwrite &H44 ' Start conversion i po 750 ms możesz odpytywać...
Osobiscie robilem cos takiego na kosciach maxima MAX6651, do tego pomiar temperatury tez Maxim(Dallas) na 1wire, napiecia... Calascia sterowal AVR + display 2x16. Uklad kontorluje sobie chlodzenie wzmacniaczy w zabudowie CarAudio :) MAX-y dostaniesz jako probki :) Soft powinno ci sie udac napisac w Bascomie (praktycznie obsluge wszystkiego co potrzeba...
Witam. Poniżej zamieściłem program w bascomie który właśnie pisze (jeszcze nie skończony) i mam taki oto problem: Twój problem , to notoryczne ignorowanie pliku pomocy Bascoma ;) Powiedz mi , co to ca dziwolągi przy definiowaniu :?: '----KONFIGORACJA WYSWIETLACZA----.' Config Lcdpin = Pin , Db4 = Pa.5 , Db5 = Pa.4 , Db6 = Pa.3 , Db7 = Pa.2 , E = Pa.6...
Ad 2. magistrala 1wire pozwala na wysyłanie komendy do wszystkich podpiętych urządzeń z pominięciem adresowania - wtedy 1 komendą mamy zlecone dokonanie pomiaru przez wszystkie czujniki. Co do problemu - możesz wykorzystać arytmetykę stałopozycyjną i ręcznie dokonywać konwersji.
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...
... Nie wiem już czy ten czujnik jest uszkodzony czy ja coś xle robie Może Twój DS , jest ustawiony do pracy w trybie termostatu.Spróbuj przełączyć go w tryb 1wire. Piotrek
Koledze raczej nie o to chodziło.. Jednym z wyjść jest konfiguracja pinu zaraz przed odczytem/zapisem. Port jako wejście też może nadawać :D tylko na małym obciążeniu. Potrzebujesz to do 1wire czy coś innego?
Przypomniał mi się jeszcze jedno. Miałem duże problemy z programami kompilowanymi w nowych wersjach Bascom (zachowywały się dziwnie głównie obsługa 1Wire i uart) . Najstabilniejszą wersją jaką używałem była wersja 1.11.9.
I jesteś pewien, że masz wszystko poprawnie podłączone. Rezystor podciągający szynę 1Wire (środkowa noga DS18B20) do zasilania około 4,7k jest? Pod który pin(numer nogi) procesora masz podłączoną szynę 1wire? Jaki masz kwarc na płytce?
1wire equp1.3 Co się dzieje, w czym pomóc ? Nazwa w programie (portu, podprogramu itp.) nie może zaczynać się od cyfry. Takie rozwiązanie spotyka się tylko w Bascomie (właśnie 1wire).
Nie mogę tego zrobić przerwaniu z OC1A, bo bruździ mi to w trasmisji 1wire. Zgrywam ją z przerwanie INT0 i to wystarczy. PL
Ad 1 jak nie ustawię to bascom sam je ustawi na wejście... I już tak chyba miałem, ale sprawdzę jak chodzi. Ad2 jak podłączyłem przez ULN2803A to niestety było to samo. Czujka daje 1 w momencie wystąpienia sygnału, czyli do tego czasu wejście wisi... A jak rezystor to jakiś 4,7k jak 1wire czy coś rzędu kiladziesiąt ohm??
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...
Jeśli będziesz miał przerwanie o czestotliwości 10 kH to nigdy nie uda Ci się porozmawiac z DS-em. Czasu nie rozciągniesz (he he ). Natomiast przy przerwanich z częstotliwością nie większą niż czas potrzebny na obsługę DS-a zmieścisz się ze wszystkim, tak jak piszą wyżej. Nie mów nigdy... Kwestia spojrzenia na problem z innej perspektywy. Jeżeli zależności...
Mam taki pomysl zeby na jednym procku np2051, zrobic jeden czujnik np. obrotow na drugim temperatury na trzecim cisnienia na czwartym poziom paliwa na ..... a calosc podpiac do jednego np2051 z LCD i wyswietlac wyniki pomiaru z innych procesorkow (jako zmienne) ,przez 1wire (???) Mam zamiar napisac to w Bascom'ie Jak to widzicie?
No nic. Szkoda. Myślałem że skoro istnieje coś takiego jak I2CDELAY to może i jakieś LCDDELAY się znajdzie. Ale jak nie to trudno. W takim razie nie pozostaje nic innego jak napisanie własnych procedur do 1Wire, bo to łatwiejsze niż obsługa wyświetlacza LCD.
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...
Jak da się go podłączyć do uc poprzez I2C, SPI, 1Wire czy RS232 lub inne to tak.
No właśnie odległość nie jest mała, Matryca żarówkowa na dachu, (lusterkowe 15W 60V) A układ zegarowy na dole, w portierni. Więc raczej zakłócenia mogą występować. Myślałem na RC5 i światłowodem (mam go dużo) albo 1wire i kabel antenowy. Które rozwiązanie jest lepsze ?
Według mnie to procedura odczytu powinna wyglądać tak Odczyt_1czujnik: Config 1wire = Portc.3 1wreset Temp = 1wread Upperline Lcd Temp ; "'C" Odczyt_2czujnik: Config 1wire = Portc.4 Iwreset Temp1 = 1wread Lowerline Lcd Temp1 ; "'C" lecz moge się mylić bo nigdy nie używałem 1wire
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
Dzięki za pomoc. Mój program był ok. nie dałem 2,2k (1wire - vcc) i dlatego nie chciał czytać
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,...
piszesz portd.0 i jest ok. moze przyslij listing to sie zobaczy. sprawdz w EP 11/2004 tam jest prawie wszystko na temat 1wire
Masz do dyspozycji UART, 1WIRE, I2C, SPI. Polecam UART, 2 linie sygnałowe i masa. Przykład znajdziesz w helpie.
Jakieś czujniczki dallasa na 1wire, każdy z innym adresem, prosty program pod Bascomem i śmiga.
Po prostu raz odczytujesz id termometrów i potem na stałe zapisujesz je w odpowiednich tablicach, zamiast stosować instrukcji wyszukujących układy na magistrali. --- Choć z tego co wiem o magistrali 1wire czujniki powinny być zawsze wyszukiwane w tej samej kolejności, stąd może masz jakieś błędy w komunikacji (np. poprzez za długi kabel złej jakości...
Tak przerwania mogą zakłócać komunikację 1wire. Na czas komunikacji z DSem blokuj przerwania.
Tak na szybko to powinno być: "Config 1wire = Portc.1" "8 MHz" "na razie" Gdzie masz "Config Lcd" i "Config LcdPin" ?
bascomowi nie robi różnicy czy to attiny czy atmega - należy tylko wybrać odpowiedni typ procesora w opcjach i ustawić fusy. Nie jest tu kluczowe ile tych 1w bo numery urządzeń można by nawet do eeprom wrzucić ale same biblioteki obsługi 1w w bascomie to kawał pamięci .
Dopisze jeszcze coś na temat nieszczęsnego ATTiny13. W ogóle ATtiny13 i bascom to jest tragiczne połączenie. Jeśli program ma tylko migać diodami, to ok. Ale napisać coś bardziej złożonego, to niestety nie w bascomie. A tym bardziej jeśli użyjemy jakiejś bascomowej instrukcji do obsługi 1wire lub podbnej - od razu mamy połowe pamięci flash w plecy :/...
Witam Zaczynam trenować mikrokontrolery i programowanie. Próbowałem w asm ale jakoś ciężko - próbuje teraz w bascomie - i też ciężko niestety :( znalazłem jakiś przykład programu w bascom ale coś mi nie hula. $crystal = 16000000 '$regfile = "m16.dat" Config Portc = Output Config 1wire = Porta.1 Dim Odczyt(2) As Byte Declare Sub Odcz_temp...
bascom 1wire eeprom 1wire bascom atmega8 1wire bascom
turbina pompy myjącej zapalać check mercedes zaworek myjka
układy zasilające adapter bluetooth
Programy nie startują na komputerze - diagnostyka Błąd A 66.10 w wózku Still - czujnik kąta skrętu