Ehhh... uparta bestia. Powiem tak: dalej to samo, nawet na tej biblotece delay'a. Co prawda mialem optymalizacje o2 i na niej zachowuje sie jak mowilem powyzej. Zmienilem na oS i teraz caly czas wskazuje -0.1. Cos sie nieźle rozjeżdża. Może coś w czasach zamotałem. Jak sie sprawdza te czasy w symulatorze AVRStudio ?
Witam Czy jest możliwe do zrobienia symulatora czujnika temperatury 1-wire DS18B20 wykorzystując jakiegoś AVR-ka (np. Atmega8)? Chodzi o tylko o odczytywanie temperatury w taki sam sposób jak się to robi z DS18B20.
Sprawdź z wyższym zegarem np. 4MHz, przy 1MHz wykonanie każdej instrukcji trwa 1us, opóźnienia przy odczycie mogą być za duże - sprawdź na symulatorze w AVR Studio.
Jeszcze wprowadziłem pewną modyfikację,tak aby kolejny wentylator włączał się dopiero przy wyższej temp. Jest to zrobione poprawnie? To ci może pracowac; czy jest poprawnie?............ Owszem, wentylatory bedą włączac się stopniowo, ale wyłączenie ich nastąpi jednocześnie po osiągnięciu temp poniżej 'min'. Ten fragment programu powyżej może powodowac...
Symulator jest czescia AVR Studio. Radzio
Witaj. Zacznij od tego, że symuluj (w odpowiednim miejscu Twojego programu) prawidłowe (według Ciebie) wartości pomiaru i wyświetlaj je na wyświetlaczu. Uwzględnij newralgiczne przypadki jak np. zero oraz dodatnia i ujemna temperatura. To pozwoli Ci na ustalenie czy przyczyną są funkcje wyświetlania, czy odczytu temperatury. Następnie drążysz temat...
Jeśli testujesz wyżej przytoczony przykład w symulatorze BASCOM'a to dodaj na jego końcu pętlę DO-LOOP lub komendę END i będzie OK. Dim Temp As Integer Dim Disp As String * 5 Temp = 366 'odczytana wartość temperatury Disp = Str(Temp) Disp = Format(Disp , " 0.0") ' dwie spacje (kasowanie zer nieznaczących) + 0.0 Locate...
A dekrementacja zmiennej, badanie warunku i skok do początku pętli to niby bez cykli się wykonują? Dlatego najpierw poleciłem skrócenie delay'ów ;) Nie wiem jak dla MSP ale bardzo przydatne są wszelkiej maści symulatory..
A masz oscyloskop? Jakiego środowiska używasz? Np. w uVision Keil'a jest całkiem dobrze działający symulator z analizatorem graficznym. Możesz jeszcze wrzucić kod z "ds18b20.h". Na którym pinie masz 1-wire?
Arktik1, tak na marginesie: Ten kod nawet nie bada, czy tempereatura jest ujemna, a co dopiero o jej obliczeniu To wrzuć go do symulatora i zobacz. Poza tym mam kilka urządzeń zrobionych na tym kodzie.
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...
sam nie wiem [; warto znac assemblera, wiec taka znowu strasznie zla ona nie jest, choc do liczenia cykli akurat prosciej uzyc symulatora [; w jakim srodowisku pisany jest kod? 4\/3!!
Ok, istotnie jeśli dopiero zaczynasz przygodę z AVR, to fakt, że AS5 jest niedoróbką, wersją beta ,którą Atmel postanowił ze sobie tylko znanych przyczyn wypuścić jako produkcyjną, mógł ci umknąć. Nawet nie tyle AS5, co załączony do niego toolchain z AVR-libc 1.7.1, które zawiera m.in. błąd z delay. Jeśli się postarasz to znajdziesz odpowiedni bug report,...
Sprawdzałem w symulatorze jeżeli jest źle jest zdefiniowany LCD 16*1a wyświetlają się bzdury, jak użyłem Print funkcja Read działa poprawnie.
Szybsze opóźnienia? Czyli co, 1 sekunda będzie trwała tylko 0,5s?:) OW uruchamiaj stopniowo. Odbierasz prawidłowo presence pulse? W przykładach do książki o C z mojej stopki masz gotowe i działające kody OW. BTW, masz analizator stanów logicznych? To sprawdź co się dzieje na magistrali - jeśli nie masz to sobie zbuduj, przyda się. A jeśli nie możesz...
... delay_1_wire((480/7)-6); ... } Ciekawym , skądeś wytrzasnął takie wyliczenia , bo mnie za nic nie daje to 480 uS ;) Po skompilowaniu bez optymalizacji miast 480 uS wychodzi >1000 uS , a dla optymalizacji -Os 319 uS.Najlepiej zaprząć symulator i wtedy wszystko jest jasne ;) Piotrek
A rodzaj zmiennej ma znaczenie w tym przypadku? Bo kombinuje i z byte i integer. Zdecydowanie ma , a także znak liczby.Jeżeli spodziewasz sie pomiaru temperatur ujemnych, to całe Twoje obliczenia temperatury i podzielenia je na "cyfry" , biorą w łeb :| Radzę poeksperymentować w symulatorze - można nieźle się z(a)dziwić :)
Nie to, że chcę robić komuś jakąkolwiek reklamę, ale Pan Mirosław Kardaś (na elektrodzie Mirekk36) opisał ten problem i sposób na jego rozwiązanie w swojej pierwszej książce. Sposób z tego co zrozumiałem na takiej zasadzie jaką opisuje kolega BlueDraco. Polecam na zapoznanie się z tą pozycją (np. jak masz dostęp do biblioteki z tą książką, albo masz...
Witam, pozwoliłem sobie na drobną modyfikacje Twojego kodu. Dobrze się przyglądnij, porównaj działanie w symulatorze a zobaczysz gdzie jest błąd. Powodzenia!!! $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config...
Witam podłącze się pod temat. A jak odmierzasz czas ? Ja stosuję 2 sposoby. #define LOOP_CYCLES 8 //Number of cycles that the loop takes #define us(num) (num/(LOOP_CYCLES*(1/(F_... inline __attribute__((gnu_inline)... void delay_us(unsigned int delay) { while(delay--)...
Dopiero teraz mogłem sprawdzić działanie układu wg Ciebie kolego WOBI. Rzeczywiście działa bez pudła jak zastosuje połączenie 3przewodowe:) Mogę prosić o podanie programu, gdyż chciałbym go zmodyfikować wg własnych potrzeb:) Mam jednak jedno zastrzeżenie, zastosowałem rezystor 1k podciągający, i teraz odświeżanie wyników jest nieco wolniejsze niż przedtem,...
Hmm faktycznie są to same jedyneczki ... W takim razie mam 3 możliwości. 1 DS18B20 nie nadaje i pullup trzyma cały czas stan Hi. 2 DS18B20 nadaje, ale nie umiem odczytać bitu/bajtu prawidłowo 3 Niepoprawnie nadaje sygnał rozkazu. Żeby wyeliminować punkt 2, z założeniem, że DS jest sprawny więc 1 odpada i że nadaje prawidłowo, będę po wysłaniu rozkazu...
Witaj tmf! Miałeś rację :D Przyczyną "wariowania" czujnika przy wysokich temperaturach były złe timingi - zarówno slotów "write" i "read". Do policzenia dokładnych czasów wykonania procedur wykorzystałem wbudowany w AVR Studio 5 symulator. Okazało się, że większość czasów była niemal o połowę za krótka. Na przyszłość: jeśli ktoś uważa przebiegi czasowe...
Dla jednego czujnika daj 4,7k i zmień częstotliwość procka. Jeśli chcesz się naocznie przekonać, że 1MHz to za mało to polecam zabawę z symulatorem i analizę czasów wykonania programu. Jak na talerzu będziesz miał podane, że czasy niestety są błędne. I polecam używanie makr / funkcji - kod będzie znacznie czytelniejszy i łatwiejszy do poprawki. P.S....
Tiny13 ma najczęściej niedokładny wewnętrzny oscylator. Można to sprawdzić każąc mu policzyć np. 1s i sprawdzając oscyloskopem lub tanim analizatorem Saleae. Obstawiam więc zależności czasowe. Np potrzebujesz odliczyć 25us. Tam w projekcie mieli kwarc 4MHz więc dokładniej... Ten oscylator można kalibrować, ale trzeba mieć czym ->jakiś przyrząd pomiarowy->oscyloskop/analizator....
Chyba niektórzy tutaj sobie posty nabijają albo nie umieją czytać ze zrozumieniem. Chwilowo jestem na wyjeździe i nie mam dostępu do sprzętu żeby to sprawdzić w realu ale sprawdziłem w symulatorze. Wykonanie takiego fragmentu: [syntax=basic4gl] 1wreset 1wwrite &H55 1wverify Dsid1(1) 1wwrite &HBE I1 = 1wread(2) [/syntax] Trwa niecałe 20ms. Ale większość...
Sprawdzę rozmiar. Zgłoszę to tutaj. Zrobię "recenzję" DS18B20 w przyszłym tygodniu (mam nadzieję). Następnym razem będę dość zajęty. Dodano po 1 . Właśnie sprawdziłem niektóre rozmiary plików: Brak widocznej zmiany rozmiaru dla Beken-N - czy jest on wyściełany? W800 jest powiększony o 128 bajtów BL602 jest powiększony o 144 bajty Obejmuje to nowe sprawdzanie...
Po co symulator/emulator do takiego projektu. Choć oczywiście są i LCD + DS obsłużą bez problemu: https://www.youtube.com/watch?v=QVn9u9vg... Bierzesz płytkę Arduino Nano i podłączasz 1 czujnik, wgrywasz program przykładowy z bibliotek DS18B20 + rezystor 4,7 i testujesz - od razu masz wyniki pomiaru na terminal i test poprawności załatwiony. Potem...
Ok to chyba już wiem co dalej trzeba zrobić. Ponieważ trudno wnioskować cokolwiek po odczycie temperatury 0xFFFF bo jest to kodowane w U2 i nic nie wymyślisz z tym więc spróbuj coś prostszego na początek odczytaj numer seryjny bodajże komenda 0x33 ale nie pamiętam dokładnie więc spójrz w dokumentację. Jeśli tym razem otrzymasz same 0xFF to oznaczać...
Poczuliśmy się wywołani do tablicy tą dyskusją. Wynika z niej trochę nieporozumień odnośnie Vamgrafa - pozwólcie, że je sprostujemy: - Vamgraf nie jest (jak to słusznie zauważył kolega powyżej) uniwersalnym programem do programowania procesorów. W pierwotnych zamierzeniach w ogóle nie planowaliśmy wspominać o ATMega32 (były brane pod uwagę inne procesory)....
A dlaczego nie działa Ci debuger/symulator ? Nigdy nie rozumiałem takich postów na forum, gdzie ktoś oczekuje, że ktoś inny poprawi jego kod. W czasie oczekiwania na posty zrobił byś z 100 testów i poprawił buga. A sprawa jest banalna, jeśli w tym przypadku masz co najmniej takie bloki jak odczyt temp, transmisja, wyświetlenie na LCD. Sprawdź czy jak...
Jeżeli ktos posiada DS1820 lub DS18S20 to mam prośbe aby przetestowal program zamieszczony ponizej poniewaz posiadam DS18B20 a w nim inaczej odczytuje się temperature. Sprawdzałem to na symulatorze w Bascomie AVR i działa. Odczyt temperatury z dokładnośćią 0.5 st C bo mam wątpliwosci czy z DS-a o przetworniku 9-cio bitowym da się wycisnac dokładniej...
Witam. Temat odgrzebany ze względu na brak czasu nad pracą i nauką mikrokontrolerowania się :) Więc tak, po poznaniu już podstaw działania mikrokontrolerów napisałem program który jest gotowym projektem napisanym w Programmer's Notepad. Przejrzałem już wszystkie wątki na temat tego czujnika temperatury i sprawdziłem każdą z możliwych kombinacji ustawień...
unsigned char odbierz1w(void) // READ_BYTE { unsigned char i; unsigned char value = 0; for (i=0;i<8;i++) { if(odbierz()) value|=0x01<<i; } delay_us(119); return(value); } void zapisz1w(char val) // WRITE_BYTE { unsigned char i; unsigned char temp; for (i=0;...
Witam! Ja sciagnalem udalo sie odpalic ldc, klawisze tez, ale ds18B20 juz nie. Moze ktos probowal juz w PIC Simulator to zrobic? Pozdrawiam Witam jeżeli chodzi ci o prosty sposób na kod programu obsługujący wyświetlacz, to moja propozycja jest taka: Sciągnij sobie Oshon Pic Simulator
Różnica jest taka że jeśli chcę wpisać ten numer: Sid = &H28C2F8A602000098 = błąd--rzeczywisty czujnik ale ten: Sid = &H2830C5B80000008E = ok.--Symulator Natomiast jeśli wpiszę tak: Ds2(1) =&H28 Ds2(2) = &H30 Ds2(3) = &HC5 Ds2(4) = &HB8 Ds2(5) = &H00 Ds2(6) = &H00 Ds2(7) = &H00 Ds2(8) =...
dzięki Piotrek ;-) nie pomyślałem a to bardzo ułatwia sprawę :) ustawiasz w portX.pX na 0 (na stałę) a kierunkiem operujesz zamiast ustawiać stan na wyjściu (na jedno wychodzi "programowo") Dodano po 3 no to uruchomiłem transmisję i podprogramiki - w symulatorze AVRStudio wszystko działa poprawnie, czasy są dobre (wg noty aplikacyjnej układu DS18B20)...
Ad1 Jak ja podgrzejesz ponad 125 °C to teoretycznie możesz ją zepsuć. Ad2 Słyszałem, że można popsuć tak czujkę, sam osobiście tego nie sprawdzałem. Pamiętaj, że odpowiednie dobranie czasu ma tu kluczowe znaczenie! Ja miałem z tym pewne problemy. Najlepiej sprawdzić w symulatorze ile dokładnie wykonuje się funkcja wait_us(250); czy faktycznie 250us...
Wklej i zapuść symulator Bascoma: Dim Mbt As Byte 'młodszy bajt temperatury Dim Sbt As Byte 'starszy bajt temperarury Dim Dz As Byte Dim T1 As Integer Mbt = &HF8 : Sbt = &HFF 'wartości z tabeli w dokumentacji dla temp. -0.5 'warto spróbować wstawić inne Do T1 = Makeint(mbt , Sbt) T1 = T1 * 10 : T1 = T1 / 16 Dz = T1 Mod 10 T1 = T1 / 10...
nadal nie dziala jak powinno... Co ty gadasz ;) Zapuść ten program testowy , a dododatek masz w załączniku log z symulatora Bascoma. $regfile = "m8def.dat" Dim Ttt As Integer , Tm As Integer , St1 As String * 5 Config Lcd = 16 * 1a Cls For Tm = -880 To 2000 Step 16 ' pełen zakres DS-a -55.0 do 125.0 Ttt = Tm Ttt = Ttt * 10 Ttt = Ttt / 16...
No więc już pisze: 1) chcąc ułatwić pisanie wstawek jest w bascomie coś takiego: zamiast pisać adres zmiennej można napisać jej nazwe w nawiasie klamrowym. wszystko ok ułatwia to sprawe. Dim var As Bit SETB {var} Jest jedno ALE. spróbuj zadeklarować inną zmianną niż BIT lub BYTE. Przy odwołaniu do niej przez nawias kompilator nie wyświetki błędu tylko...
Witam, ok wycofuje wstawkę z while(delay--); oraz zmiana makra z // get 1-wire bus input (bus released) #define OWR PINC & OWMASK na // get 1-wire bus input (bus released) #define OWR (PINC & OWMASK) Po przeanalizowaniu przyznaję rację użytkownikowi TMF. Przepraszam za wprowadzenie w błąd. Proponuję zastąpić tylko...
100ms to strasznie długi czas ale skoro w pdf'ie nie ma nic o czasie maksymalnym pomiędzy wysyłaniem a odbiorem itp to chyba może być. Ja mam identyczne zestawienie jak Ty (DS+ATMEGA8) i piszę w assemblerze. czasy mam wszystkie wg pdf potwierdzone symulatorem, przerwania powyłączane puki co, też wysyłam/odbieram od młodszych do starszych, tylko, że...
Na początku tak konfiguruje rejestry MOV IE, #10001011B;PRZERWANIA: TIMER T0, INT0 SETB IT0 ;INT0 REAGUJE NA ZBOCZE SETB TR1 SETB PT0 Przerwania od T0 i INT0 zajmują kilka cykli. Krytyczne jest natomiast przerwanie od T1 gdzie multipleksuje wyświetlacz, sprawdzam klawiature i co jakiś czas odczytuje DS18b20. Timer ładowany jest wartoscią D8EFh....
http://obrazki.elektroda.net/45_12649697... Witam Przedstawiam konstrukcję sterownika pompy do pieca CO. Konstrukcja powstała w listopadzie zeszłego roku. Ale po kolei... NA POCZĄTKU BYŁO LATO Projekt powstał na prośbę znajomego posiadającego dom z piecem c.o. Zaczęło się od prośby: „Wiesz, idzie zima a ja potrzebuję czegoś do sterowania...
Witam. Wiem, że temat był już poruszany niejednokrotnie i liczę się z "niemiłymi" odpowiedziami, ale już mi wszystko jedno. Nad tym problemem siedzę już od kilku dni, a z przerwami to nawet od kilku miesięcy. Chcę dogadać DS18b20 z ATmega128 16MHz. Po resecie DS zgłasza się poprawnie, ale to wszystko, nie reaguje na żadną komendę. Opóźnienia działają...
Czasem mnie śmieszą różne zlecenia. Ludzie myślą że zrobienie prostego urządzenia to 2 godziny roboty + części za 100zł to mogę dać 150zł. Lepiej poszukać gotowego sterownika akwarium. Zaprojektowanie od podstaw całości wraz z częściami to jak dla mnie 1000zł. Dięki ale nie skorzystam... Pewnie rybki by się ugotowały ...:):) Na prośbę autora zamieszczam...
Mam swój program bardzo podobny i też właśnie na symulatorze dobrze pokazuje. A mógłby ktoś powiedzieć jaki dodatkowy pin trzeba podłączyć?? .:EDIT:. Już wszystko ładnie działa. Pokazuje wszystkie 4 linie Zmodyfikowałem program DUCHa. Został on przerobiony do LCD 4 liniowego oraz dodana obsługa temp. ujemnych http://img178.imageshack.us/img178/1674/...
Witam Ten temat pewnie tysięczny raz jest poruszany, ale nie udało mi się jak dotąd znaleźć wyjścia z sytuacji. Sprawa wygląda tak: mam podpięty czujnik Ds1820 do portu D pin 4. Standardowe podłączenie: VCC - VCC DATA - PIND.4 GND - GND z pinu PIND.4 portu opornik i na VCC. Kolega użyczył mi kawałek kodu w Bascomie do obsługi 1-wire, i sprawdziłem i...
https://obrazki.elektroda.pl/6547532500_... OpenBeken może być używany do tworzenia prostych automatyzacji obejmujących wiele urządzeń bez Home Assistant. Nie jest wymagany żaden centralny serwer, wystarczy mieć sflashowane urządzenia Tuya. Tutaj pokażę jedną z takich automatyzacji, w której wykorzystywane są dwa urządzenia - pierwszym...
Witam. Przejrzalem CALE forum w poszukiwaniu rozwiazania mojego problemu. Probowalem wszystkiego co bylo podane w postach. Mam problem z polaczeniem tn2313 z ds18b20. zegar: kwarc 4MHz (testowalem juz na wew 1-8MHz bez rezultatow - ckdiv8 konfigurowalem poprawnie 1dis 0 en) podlaczam do portu d pod rozne piny. Od strony programowej tez powinno byc all...
Cześć, Dostałem od prowadzącego zajęcia z układów cyfrowych zadanie odczytu temperatur z 3 termometrów DS18B20 podpiętych do 1-wire przy pomocy spartana 3. Niestety zajęcia są bardzo rzadko, a w domu nie mam dostępu do sprzętu. Przygotowałem sobie projekt na podstawie znalezionych artykułów i przykładu znalezionego na tym forum (niestety nieskończonego)....
Witam! Napisałem program na obsługę DS18B20 jednak jak zwykle on nie działa. Pod pin D0 podłączony jest DS, temperaturę chcę pokazać na porcie B, program ciągle pokazuje 85 st C..... Procesor (Attiny2313) taktowany jest 10MHz, pętle opóźnień sprawdzałem w symulatorze i trwają odpowiednią ilość czasu. Mógłby ktoś spojrzeć na program i sprawdzić co robię...
Mam program z moim aktualnym programem... po wgraniu na procka mierzy on temperaturę tylko mam problem z przyciskami... MÓJ program: If Portc.4 = 0 And Portc.5 = 0 Then czemu to nie działa a na symulatorze jest ok?? Przyciski prosto z masy mam poprowadzone do portów
symulator czujnika ds18b20 symulator jagoda symulator przekaźnika
polskie znaki telefonie ostrość telewizor zamiennik łożyska electrolux
Zanik zasilania w kasie fiskalnej - kod 10000 Jak napisać przykładowy post techniczny?