Witam koledzy! Mam problem z pomiarem temperatury, przeszukałem forum i internet n razy w poszukiwaniu odpowiedzi ale nie natrafiłem na żaden trop. Sądzę, że błąd leży gdzieś w kodzie. Wynik pomiaru docelowo jest prezentowany na LCD 2x16. Pomiędzy VCC a DQ mam rezystor 4,7k zgodnie z notą DS'a (nie w trybie pasożytniczym) Atmega podłączona zgodnie z...
Od pół roku zajmuje się programowaniem AVR, niestety znam tylko asembler. Chciałbym w zegarze który robię zastosować ten czujnik. I tu pojawia się pewien problem, nie mogę znaleść gotowej procedury napisanej w asemblerze, zrobiłbym ją sam gdybym znał angielski i mógł doładnie zrozumieć notę katalogową- od jutra uczę się angielskiego ale to troche potrwa....
Witam, napisałem prawie całą obsługę tegoż urządzenia w assemblerze, ale niestety po odbiorze bajtów scratchpada mam same zera, podejrzewam, że problem leży w procedurzeodbioru bajtu, prosze spojrzeć: readbyte: push R16 push R17 push R18 clr R18 clr R16 ldi R17,8 read: cbi PORTB, 0 sbi DDRB, 0 ldi R18, 1 rcall waits ;procedura mikrosekundowa...
Witam, właśnie pragnę podłączyć dwa czujniki do szyny 1-wire, problem w tym, że przy sekwencji odczytu 64bitowego romu, nie zgadza mi się CRC (jeden czujnik podłączony) i po zaadresowaniu go na szynie, nic się nie dzieje, odbieram same jedynki. przy odbiorze scratchpada crc oczywiście poprawne i wszystko biega... menu: in R16, SREG push R16 rcall...
Raczej tak. Opoznienia z delay.h sa w assemblerze (glownie) wiec wiadomo dokladnie ile taktow sie wywoluja, sa tez sprytnie optymalizowane, tak, zeby odmierzane czasy byly jak najdokladniejsze. Twoje procedury sa o tyle gorsze, ze sa czesciowo w C, wiec opoznienie bedzie zalezec od wersji kompilatora, ustawionej optymalizacji (-O) i humoru kompilatora....
Witam:!: Nie znam się na programowaniu w Assemblerze.:| Zamieszczam schemat jak podłączyć więcej czujników. Temp odczytuje przez Mother Board Monitor (dwa czujniki: 1w zasilaczu 2za oknem) nie wiem czy o to ci chodziło. Jeśli to co napisałem ci pomogło to bardzo się ciesze :D pozdrawiam
Mam podłączone 8 DS , są podłączone w odległości od 3 do 8 m.Połączenie 3 przewodowe, z pull-up. Wszystko działa w pełnym zakresie na max rozdzielczości.Żadnych problemów.Program w assemblerze.
A czy istnieje jakakolwiek mozliwosc odpalenia tego na 1MHz? Zalezy mi zeby procesor wlasnie tak byl taktowany. Hmmm... napisałbym to(zapis/odczyt bitu) raczej w assemblerze. Piotrek
1.Możesz wziąść kod w C i zobaczyć co kompilator spłodził - będziesz miał kod w assemblerze. 2.Z tym zaokrągleniem to najłatwiej jest zrobić tablicę 16bajtową w której będzie zapisana cyfra 0..9 określająca temperaturę zaokrągloną do 0.1C dla każdej możliwej wartości. Proste, małe i b.szybkie. Inny sposób to zrobić ze najważniejszy bit to zawsze dodajesz...
Mam ten sam problem, tylko że piszę w assemblerze. Dzisiaj będe miec oscyloskop więc może rozwiąże ten nasz wspólny problem.
Witam. Jestem nowy na forum i nie mam zbyt duzego doświadczenia w programowaniu mikrokontrorów wiec z gory przepraszam za błedy. Otóż mam do napisania projekt w którym mam DS18B20i za nic w swiecie nie moge dokonać odczytu z czujnika. Analizowałem datasheeta dosc dlugo i nie widze błedu.Przegladałem również tematy na forum, próbowałem różnych rzeczy...
1. Plik HEX przeniesiony bezpośrednio z M8 na M88 NIE ZADZIAŁA - wynika to z różnic w rejestrach i ich adresach. 2. Program napisany w C, po zmianie nazw rejestrów i dostosowaniu do M8 i ponownej kompilacji dla M8 powinien zadziałać. Dokładnie tak. Poza tym taka właśnie jest idea C. Jest on dość niskopoziomowy, ale jednak pare rzeczy robi. Pozwala...
maxymalna ilosc znakow (czyli ewentualny znak, czesc calkowita, kropka, czesc ulamkowa [wliczajac zera wiodace!] ) + 1. dodac nalezy, ze jesli chcesz ulamki, to musisz sobie ich obsluge zrobic sam, co nie jest takie trudne [; cala liczbe traktujesz wtedy jako przemnozona (na przyklad) przez 100 - daje ci to dwa miejsca po przecinku. czesc calkowita...
Dobrze że już działa, ale mała obserwacja. Nie mam pojęcia o PIC'u i Assemblerze, ale zauważyłem, że DS18B20 daje odczyt 85 C, jeśli podłączy się do niego zasilanie i nie wyda polecenia konwersji temperatury. To jest jakby jego wartość początkowa. PL
Mam nadzieję, że piszę w dobrym dziale. Chciałbym zrobić termometr na: - Atmega8, - Kilka Ds18b20 - Wyświetlacz LED Miało by to (mniej - więcej) działać tak: Termometr ma mierzyć pewną temperaturę. Po przekroczeniu pewnej temperatury załączyć się powinny wiatraki i l293d ???? Na wyświetlaczu mają się wyświetlać odczytane temperatury. Dodam, że napisałem...
Witam Władziowek coś Cie boli Raspberry jak widzę .... Ktoś następny spyta czemu Atmega skoro lepiej na PICu. A tak ogólnie to chciałbym widzieć jak robisz na płytce uniwersalnej serwer webowy z podłączeniem 81 termometrów DS18B20, chciałbym nawet zobaczyć jak rysujesz schemat serwera, tylko o zgrozo nie używaj gotowych płytek LAN do Arduino tylko zrób...
Witam. :) Chciałbym mierzyć temperaturę przy pomocy Procesora 8051 ( AT89S52) przy współpracy z czujnikiem DS18B20 . Mam w miarę opanowanego Assemblera do tego procesora. Chciałbym prosić was o pomoc, ponieważ nie wiem w jaki sposób odczytywać temperaturę z tego układu. On ma trzy nóżki Vcc Gnd i wyjście na komunikacje. Ale nie wiem w jaki sposób ten...
void Dellay_us(unsigned char czas)//odmierza czas co 1us { for(;czas!=0;czas--) {;} } nie znam PICow, ale jestes pewien, ze dekrementacja, porownanie i skok zajmuja 1 us? jesli Twoj kompilator generuje pliki .asm to zeknij tam, odszukaj funkcje Dellay_us, znajdz petle, poszukaj w jakiejs dokumentacji do assemblera na PICe ile instrukcje wykonywane...
Nie ustawiać jako wyjście bitów obsługujących magistralę i diodę symulującą podciąganie w stanach różnych w szczególności pinu diody na 1 i pinu magistrali na 0. A czym kompilujesz te programy w C, bo AVR studio to zdaje się tylko assembler trawi ?
... a co do używania plików w innym środowisku to z tego co pamietam... Pamięć Cię zawodzi :( to definicje funkcji są w plikach .c, w .h są tylko deklaracje (czyli wszystko tak jak powinno być przy programowaniu) W CVAVR , funkcje wymienione w pliku 1wire.h , nie są dostępne w żadnym pliku.Na dokładkę , napisane są w assemblerze i "zaszyte" w kompilatorze...
#define _NOP() __no_operation() Drobny problem - to definiuje _NOP a nie __no_operation ;-( Więc zakładam, że odpowiada to emulowanej instrukcji NOP MSP430 - czyli 1 cykl maszynowy ( 125 ns dla 8MHz) Co do zegara to nigdize w programie nie zmieniam jego taktowania, zakładam ze jest 8 MHz, Zobacz co pisze na kwarcu, zakładam ,że 8MHz jezeli sie mysle...
Nie zamiesciles kodu procedury Delay() wiec nie oczekuj ze ktos ci powie jakie generuje ona opoznienie. Jesli piszesz w keil to tam podczas symulacji masz okienko z kodem procka w assemblerze wiec mozesz policzyc dokladnie cykle. Mozesz tez zrobic tak: P1 = 0xFF; Delay(1); P1 = 0x00; I podczas symulacji ogladac z analizatorze logicznym port P1 a pozniej...
Witam. Główkuję już 3 dzień nad programem który pozwoli na zmierzenie temperatury za pomocą układu DS18B20. Piszę program w assemblerze. A tu są moje wypociny: 1wire equp1.3 mov a,#'t' call lcd_data mov a,#'e' call lcd_data mov a,#'m' call lcd_data mov a,#'p' call lcd_data mov a,#':' call lcd_data setb1wire aa: jbp1.3,aa mova,#44h ;wysłanie...
Dawid nie wydaje mi się, napisałem kiedyś właśnie prosty zegar gdzie w funkcji przerwania od wewnętrznego licznika wykonuje się minimum 100 cykli + opóźnienie 150ms i nic się złego nie dzieje. Fakt że miejsce w pamięci na wektor przerwania jest niewielkie, ale C to nie assembler i kompilator jakoś to sobie ułoży.
Assembler, przemysl zanim cos napiszesz, bo pleciesz od rzeczy. Oryginalna implementacja Dallasa jest m.in. oparta o UART, tak dziala sterownik 1-wire pod linuxa, Windows itd. Jest to najprostsze rozwiazanie. Jesli nie rozumiesz tej implementacji i chcesz zapytac o takie podstawy to zaloz stosowny watek, tutaj jest to OT.
Problem rozwiąże, odmierzanie czasu przez timer, a nie przez wait czy delay (nie znam BASCOMa). Jak już ktoś wspomniał odczyt i zapis bitu na 1-wire jest dość krytyczny czasowo. Miałem z tym problem w assemblerze i ADuC841. Przerwanie od multipleksowania wyświetlaczy skutecznie zakłócało transmisję. Polecam też sprawdzanie CRC, żeby ustrzec się przed...
Przeglądam mnemoniki assemblera avr i nie widzę instrukcji operacji na zmiennym przecinku, czyli implementacja takich obliczeń zżera sporo czasu jednostki. Niestety :D Dlatego od floatów z daleka się trzymam, zwłaszcza, że póki co jeszcze nie potrzebowałem tego typu. :) Pozdrawiam
Z tym opóźnieniem to kolega ma rację. Przy moim zegarze nie da się dać większego opóźnienia jak ~262 ms. Wracając do tematu to w miejscach gdzie jest opóźnienie 1 us zrobiłem wstawki z assemblera, zmieniłem wszystkie sporne opóźnienia i nadal jest to samo. Nie ma jednego bajtu z wartością temperatury:(. Normalnie to jest masakra z tym moim czujnikiem....
(at)hotdog przejrzałem źródła i funkcję delay równie dobrze mógłbyś wykonać na NOP'ach. while (TIMER->TCR & 0x01); jest troszkę bez sensu, bo poco korzystać z Timera skoro i tak program wisi na while? Używanie timera ma swoje uzasadnienie. delaye zrobione na nopach nie są dokładne i kompilatory mogą je zoptymalizować przez co czas odmierzany...
Witaj Mirko Spokojnie i bez nerwów. Mój przykład jest pełny i działający i nie z internetu tylko z głowy. Ma podstawowy cel, by człowiek zrozumiał co robi i nie ograniczał się do bajtów czy rejestrów tylko na dowolnej długości. Dopiero wtedy jest to podprogram uniwersalny. Jeśli chcemy odjąć liczbę w kodzie BCD od liczby w kodzie BCD na dowolnej długości...
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...
co napisaliscie jako swoj pierwszy program na dany uC w danym jezyku (rozbudowy sie licza, byle by wciaz byla to ta sama baza) n. n. - literka, cyferke z przodu dodam sam. zachowujcie chronologie w swoich dokonaniach na roznych platformach jezykowych i sprzetowych, tak aby to mialo sens! ____________________ 0x1-a. Freddie Chopin - migacz diodkami o...
Ok. Przeprowadziłem eksperyment. Jeżeli chodzi o Cortex M3 to dodałem plik z rozszerzeniem cpp i kompilacja przebiegła bez błędów. Tylko nie działa standard C++11 tylko jakiś starszy. Sprawdziłem to dodając słowo kluczowe auto, które podobno jest elementem języka od chwili pojawienia pojawienia się standardu C++11. Poniżej zdjęcie ilustrujące pewne...
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...
Witam. Przedstawiam układ wykonany niedawno. Elektroniczny termostat z możliwością modyfikowania: temperatury zadanej, histerezy i trybu pracy (np. grzanie-chłodzenie). Modyfikacja parametrów odbywa się za pomocą trzech przycisków. Budowa: Zasilanie z zakresu 9-15V DC podawane jest najpierw przez diodę zapobiegającą uszkodzeniu przy odwrotnej polaryzacji...
Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było. Wybór padł na popularne układy: procesor z rodziny AVR ATMEGA16...
Witam miłośników CA80, w ostatnim czasie zainstalowałem sobie dwa gadżety na CA80 – RTC DS3231 /do aktualizacji czasu i daty, z możliwością ustawiania czasu i daty na RTC/ oraz termometr DS18B20. O ile z tym pierwszym nie ma problemów ze sterowaniem /wg I2C/, to z termometrem mam mały problem. Mam program na odczyt temperatury i działa prawidłowo...
Faktycznie, taki zegarek akurat do domu nie bardzo się nadaje :) A co do reszty to: 1) Programuje praktycznie tylko w C/C++, a to dlatego, że jak się ma jednocześnie do czynienia z 4 rodzinami procesorów to już trudno assembler spamiętać (szczególnie w przypadku ARM'ów) :) Do AVR'ów używam WIN-AVR opartego na GCC. 2) W tym przypadku pomiar temperatury...
Witam, chciałbym wszystkim przedstawić projekt sterownika matrycowego wyświetlacza LED. Na początek proszę tylko o nie ocenianie wykonania płytki (na płytce uniwersalnej/pająk) bo jestem świadomy jak ona wygląda i jak ją wykonałem. Historia Pomysł projektu narodził się, gdy jakieś pół roku temu nabyłem od Kolegi assembler z forum matrycę LED o rozmiarach...
Dzięki za podpowiedź. Będę mógł sprawdzić dopiero pod koniec tygodnia. Niestety dopiero teraz, jak "mam mokro w gaciach" wczytałem się w datasheet i wyględa na to, że zupełnie niepotrzebnie kombinowałem, bo miałem ustawione wszystko jak należy. Mam jeszcze jedno pytanie, ale dotyczy ono raczej assemblera i 1wire. Mianowicie kopilator FastAvr z instrukcji:...
Wystarczy wejść na stronę producenta układu DS18B20 i nie sposób nie znaleźć gotowego programu dla PIC16F628 (w assemblerze). Dla innych układów firma też zamieściła "gotowce". Ciekawe jak wyglądały te tygodniowe poszukiwania :wink:
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
Tak, wytrawny elektronik nie przepala ścieżek, ale nie chodzi o przepalanie. Tylko o odklejenie się ścieżki podczas zdejmowania komponentów. Tak tylko dodałem taką dygresję. Nie jest to istotne. Poza tym świetny projekt. Miałbym pytanie odnośnie obliczania temperatury z DS18B20, mam napisany program i odbieram 2 bajty temperatury, i tutaj są schody...
Termostat, zasilanie 230V, praca w pomieszczeniach suchych, temperatura 20..30 stopni Celsjusza. Wejścia: 3 termometry ds18b20, max 100m (można stosować repeatery, konwertery protokołów czy zdalne termometry RF). Wejścia zabezpieczone przed uszkodzeniem, i zwarciem. Awaria jednego termometru nie może wpływać na pozostałe. Klawiatura lokalna foliowa...