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...
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...
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....
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 ?
Skoro znasz już składnię assemblera, to jedyne czego potrzebujesz, to: - datasheet Atmega8 - datasheet Ds18b20 - opis standardu komunikacji 1wire Nie wiem jak jest z gotowcami, ale na assembler to bym za bardzo nie liczył. Skoro kiepsko u ciebie z angielskim, to zacznij chociażby od tego: http://www.1-wire.rms.biz.pl/
Zapoznaj się z kompilatorem SDCC. Będzie łatwiej pisać a kod, po niewielkich modyfikacjach, będzie przenośny. http://sdcc.sourceforge.net/ Tutaj masz opis sposobu działania czujnika jak i program w C. www.jaglarz.info/ja/elektronika/ds18b20....
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...
ten programik nie działa, widzę w nim błąd. mov a,crc do czego się odnosi te crc?? To nie jest programik, tylko procedury (część większego programu) i jako takie same nie działają. Jeżeli pytasz do czego odnosi się CRC w transmisji 1wire to jest źle. Potrzebujesz chociaż odrobiny informacji o specyfice 1wire, ale tu nie miejsce na wykłady. Szukaj,...
Chcialbym to zrobic ma procku at89c2051 i na czujniku ds18b20 i jak dobrze wszytsko pojdzie to dopiac jesce zegarek pcf8583??chyba ten wlasnie zbieram informacje na jego temat i szyny i2cMam nadzieje ze to wytarczy Pozdrawiam A kompilator ? Assembler,Bascom,C ? Ja używam Bascoma i Asm. Piotr Sz.
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.
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
2 Przeanalizować skompilowany kod assemblerowy. assembler MSP jest chyba jednym z najprostszych ktore istnieja - analiza tego co tam kompilator naprodukowal jest bardzo prosta. pozatym wystarczy uzyc symulatora wbudowanego w kazde sensowne srodowisko, aby zmierzyc ilosc cykli poswiecanych na ta instrukcje. 4\/3!!
Mam kilka pytań a propos obsługi 1-wire w ASEMBLERZE dla 8051. Pod tym linkiem , masz w zasadzie wszystko co Ci będzie potrzebne, by "rozgryźć" magistralę 1wire, w assemblerze MCS-51. A tak na marginesie, to twórcy Bascom8051, też z tych źródeł korzystali ;) Piotrek
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.
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
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...
W Elektronice Praktycznej z września 1994 r. jest dokładnie opisana taka kostka PCF8583. Na dodatek zamieszczony jest też listing programu w assemblerze dla mikrokontrolera 8031/8051 do "rozmawiania" z tą kostką po magistrali i2c. Jak znasz kilka słów po angielsku to ściągnij z sieci data sheet (.pdf) tej kostki a dowiesz się wszystkiego.
Okurzyłem ten projekt i.. Mam pytanie czy są jakies instrukcje w Assemblerze którymi mógłbym odczytywać to i owo? Jak podłączyć więcej termometrów?
Jak przyśpieszyć ? To proste ! Naucz się C i w nim napisz, albo lepiej w assemblerze. Te uC programowane w BASCOMIE są takie zamulone...
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.
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 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...
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:
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...
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....
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....
http://obrazki.elektroda.pl/1998348900_1... 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...
Próbowałem z tą zmianą w PortDelay kiedyś, ale wpisywałem chyba zbyt duże wartości, bo teraz mam ustawione na 20 i lepiej śmiga, zobaczym na jak długo. Bo czasem jak mi sie programator "rozkręcił" to nie wyskakiwał ten błąd prawie w ogóle. Dzięki za info :) Co do tych języków to w szkole "liznąłem" assemblera też trochę ale nie tyle co Bascom, a i uczyłem...
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...
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...
(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...
... 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...
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...
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. 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...
http://obrazki.elektroda.pl/3926653300_1... 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. http://obrazki.elektroda.pl/6166078300_1...
http://obrazki.elektroda.pl/8074733100_1... 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....
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...
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
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...
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:...
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...
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...
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...
assembler darmowy assembler assembler przerwa assembler opóźnienie
pilot uniwersalny zaprogramować jakie zelazko niedziela wyswietlacz
plyta indukcyjna electrolux piekarnik elektrolux
Samsung SyncMaster T220HD – brak obrazu, działa podświetlenie, obraz zanika Pioneer SC – co oznacza symbol SC w amplitunerach klasy D?