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
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
http://obrazki.elektroda.pl/8267947700_1... Ponad 20 lat temu jako amator hobbysta budowałem proste układy elektroniczne. Studia i styczność z informatyką spowodowały, że porzuciłem hobby pod nazwą "składanie elektroniki" na rzecz "składanie programów komputerowych". W bieżącym roku (2011) dzięki uprzejmości kolegi Jacka.M, który okazał...
Może błąd tkwi w kodzie :)
czytałem wolniej i efekt ten sam:(
Znam C a wolę pisać w B4A, B4i, B4R, Bascom czyli w Basic, ale kiedy coś mi nie działa to odpalam analizator stanów logicznych albo oscyloskop. Nie zwalam na język programowania. https://obrazki.elektroda.pl/6883372000_...
W uC należy odpowiednio ustawić FUSE BITY!!! Poczytaj przyklejony temat.
Możesz spróbować [syntax=basic4gl]CONFIG LCD = 16 * 2 , CHIPSET=KS077[/syntax] ..albo spróbować jeszcze zmienić FuseBity na 8MHz i w kodzie wtedy też. Widziałem takie chińskie Megi, że nie chciały z 1Wire działać na 1MHz. Może jakieś zależności czasowe poza tolerancją.
Nie jestem pewny czy procesor zdąży wykonać to co masz w tym przerwaniu , zanim przyjdzie następne (mam na myśli wszystko ).Program w przerwaniu ma być krótki , chyba że pierwsza linijka jest taka " Disable timer0 " , ale w twoim programie taka instrukcja raczej odpada. I jeszcze jedno , co się dzieje jeżeli podczas transmisji po i2c lub 1Wire przyjdzie...
Jak napiszesz bardzo skąpy kod w asemblerze to raczej tak. Jeśli bascom to zdecydowanie proponuję atmega8 - koszt niewielki a za to i2c jest sprzętowe można dać zegarek pcf8573 lub podobny i 8 kB pamięci to zdecydowanie więcej .
No i gratulacje. Tak podpowiem jak ktoś wykorzystuje tylko połowę UART`u, na przykład tylko nadaje temperaturę do jakiegoś modułu to pin RX jest bezużyteczny (nie działa na nim 1Wire ani dosłownie nic) Można go śmiało uruchomić wyłączając odbiornik (na przykład) w UCSR0B.4 = 0 który normalnie ma wyższy priorytet niż DDRB :) Przydaje sie taki myk też...
jesli chodzi o transmisje to lepiej SPI lub i2c, nigdy 1wire - ten jest zdecydowanie za wolny do zastosowan ADC... Najlepiej po prostu najpierw ustalić rozdzielczość docelową, policzyć napięcie odniesienia dla tej rozdzielczości i wtedy dobrać przetwornik. Nawet 8-bitowy moze miec krok 0.02mV o ile dostanie odpowiednio male napięcie odniesienia....
Kolega ma nowy procesor. Prosto ze sklepu. Trzeba ustawić fuse-bity by pracował z zewnętrznym kwarcem - takim jaki jest podany podczas kompialcji. Inaczej cała transmisja 1wire idzie w maliny. Ewentualnie najpierw proszę zmienić zapis w dyrektywie $CRYSTAL na: $crystal = 1000000 Jek będzie dobrze to przycyzną jest taktowanie. ps. A swoją drogą. Tyle...
Witam. Poszukałem trochę w sieci, poczytałem polskiego helpa do Bascoma i zlepiłem taki program: [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.0 , Rs = Portc.1 Cursor Off Cls Deflcdchar 0 , 14 , 17 , 17 , 14 , 32 , 32 , 32...
Mcucr = Mcucr Or 2 W helpie wyczytałem że procesory serii Mega mają przerwanie INT0 tylko na niski poziom i wykonują się w kółko jak poziom jest niski. Z drugiej strony ATmega8 Bascom tolerował, ATmega32 już nie. Dokumentacja mnie wprowadziła w błąd. Omawiając przerwania jest odesłanie do strony z opcjami uśpienia, a powinno być dużo dalej do zegara...
Mruga tylko raz po kilkunastu sekundach a potem juz nie czyli nie nadaje ? Sprawdziłem dokładniej i po każdym resecie po ok 38 sekundach mrugnie ale potem już nie mruga, tak jakby się zawieszał program. Tak wygląda teraz program w odbiorniku ; [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 16000000 $hwstack...
Hmm... Spróbuj regularnie migać LED, jednocześnie komunikując się z PC, obsługując pomiar temperatury za pomocą 1wire (DS18B20) i wyświetlać ją na LCD, używając waitXX... ;) Timer0 jak nic do zastosowania... Tymczasem małe co nieco w załączniku (miganie LED z użyciem timera), zarówno dla ATmega8, jak i na ATmega8515. Ponieważ ATmega8 nie posiada przerwania...
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 [...
Tu masz prosty programik, który kiedyś pisałem. Przedstawia obsługę zarówno wersji B jak i S. [syntax=basic4gl] $regfile = "m8def.dat" 'deklaracja procesora $crystal = 8000000 'deklaracja czestotliwosci taktowania Config Lcd = 16 * 2 'typ wyswietlacza i konfiguracja pinow Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5...
Tak DS podłączony jest prawidłowo - po 3 przewodach i na lini sygnałowej 4k7 do Vcc... Poniewaz mozna sprawdzic czy DS juz pomierzyl temperature (po stanie nozki sygnalowej) program mam napisany tak ze zaraz po pomiarze program czeka az DS zmierzy temp i dopiero odczytuje... wsadzilem to w petle z licznikiem i sprawdzilem ile trwa petla... A wiec odczyt...
Witam! Od kilku dni nie mogę poradzić sobie z takim dziwnym problemem. Zbudowałem system z ATmega8 z podpiętym do niego (poprzez TWI) PCF8583 (generuje przerwanie na INT0 co 1s), do systemu dołączony jest wyświetlacz LCD 2x16 oraz poprzez 1-Wire (portd.0) czujnik DS18B20. System działa poprawnie, nie ma wad sprzętowych, wyświetlacz działa, RTS działa,...
http://obrazki.elektroda.pl/1523592300_1... W schemacie pominąłem zasilanie i podłączenie LCD. Kod: (został wzięty z książki M. Wiązania - "Programowanie mikrokontrolerow AVR w jezyku Bascom", usunąłem kod od obsługi LCD bo mam go ustawionego w bascomie) $regfile = "m8def.dat" $crystal = 8000000 Config 1wire = Portc.5 'konfiguracja...
kolego manekinen i remzibi przestańcie już proszę narzekać i płakać nad tematem usunięcia postu, jak dzieci. No stało się, może i nie dobrze ale widać, że przez pomyłkę, skoro moderator nie usuwa waszych dalszych wypowiedzi. Które wy widzę trkatujecie jak jakieś tajne konspiracyjne informacje z czasów stanu wojennego. tymaczasem kolega pisze: Dopisze...
Witam :) Na wstępie dziękuje wszystkim za pomoc.Odpaliłem LCD, i nawet działa :D Teraz zamierzam zrobić sobie termometr na LCD z DS18b20.Tutaj zaczynają sie schody.Napisałem program(zlepek różnych). Skorzystałem z tego schematu: http://obrazki.elektroda.net/58_12468141... DS18b20 dodałem do nóżki Atmegi 8 do PD5.Program ma działać tak że, po...
Mógłby ktoś zerknąć na kod? Portami się nie przejmujcie. Z góry dzięki! $regfile = "m8def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.4 , Db5 = Pb.5 , Db6 = Pb.6 , Db7 = Pb.7 , E = Pb.3 , Rs = Pb.2 Config Portd = Output Config 1wire = Portb.0 ' termometr ds18b20 Dim I As Integer 'zmienne do...
Czy ATMEGA8 i jej 8kB wystarczy mi do obsługi wyświetlacza LCD z NOKII 3310 i wyświetleniu paru informacji ?? Oglądam i czytam informacje na temat obsługi wyświetlacza z Noki 3310 w bascomie i nie znajduje niczego co było by dla mnie czytelne. Dlaczego dla języka C jest mnóstwo różnego rodzaju kursów do obsługi tego wyświetlacza a dla bascoma jest tak...
Witam masz tutaj programik do histerezy moze Ci pomorze :D $regfile = "m32def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.4 , Db5 = Pb.5 , Db6 = Pb.6 , Db7 = Pb.7 , E = Pb.3 , Rs = Pb.2 Config 1wire = Portb.0 Config Portd.0 = Output Declare Sub Odcz_temp Dim Temperatura(2) As Byte Deflcdchar...
Witam, jestem początkującym programistą w bascom, chciałem przetestować wykorzystanie układu PCF 8583, napotkałem jednak na problem z którym nie mogę sobie poradzić w żaden sposób, mianowicie miesiące wyświetlają się jak chcą, tzn są to liczby z kosmosu wzięte, np 49, przeskakują razem z dniami itp. pewnie to mój błąd w kodzie, ale nie mam pojęcia gdzie,...
Witam. Zrobiłem termometr taki jak w temacie http://www.elektroda.pl/rtvforum/topic33... tyle że zamiast AT90s2313 dałem ATmege8, taktuje go wewnnetrznym oscylatorem 4MHz ponieważ portb jest zajęty dla wyświetlacza. Po uruchomieniu na wyświetlaczu pojawiają się "niepełne" cyfry coś podobne do 2 lub innej cyfry. Programu nie zmieniałem...
Witam, napisałem prosty programik do obsługi ds18b20, który miałby mierzyć temperaturę i według zadanych kryteriów włączać ew. wyłączać urządzenia (narazie to tylko diody, ale docelowo będą to przekaźniki). uP Atmega8 Po uruchomieniu programu napotkałem na następujący problem: W przedziale od 10 do 20 świeci jedna dioda ale ogrzanie czujnika nie powoduje...
dzięki działa:) dodałem jeszcze buzzerek, ale mam takie pytanie układ ma działać jako termometr informujący o danej temperaturze i bliskości zagotowania wody w obiegu. Kod napisany teraz po przekroczeniu temperatury 70 C zacznie odgrywać melodyjkę, po przekroczeniu 80 inna, a 85 na bardzo piskliwą. Ale potrzebuje coś aby spełniało taka cechę: np. idę...
Udało mi się coś zrobić i nawet działa, ale: -jak uruchamiam układ powinno pisać w dolnej linii Ustaw godzine , a jest jak na fotce niżej, -ustawianie godziny - jak trzymam przycisk w pilocie cały czas wysyła sygnał, a układ odbiera kod raz na 3 sek - wcześniej było 250ms (tak jak jest zdefiniowane w programie). http://obrazki.elektroda.net/19_12181272...
procesor maga8 nie wyswietla bledow w bascomie-avr dziala niby poprawnie... wiec problem jest taki: temperatura ok. gdy na port Pc.1 podam stan wysoki 12v przez stabilizator 5v nic sie nie dzieje tak samo jak z reszta ktora jest pod linia ------------- zaczynam dopiero zabawe wiec nie mam pojecia co z tym nie tak na dodatek nie wyswietla bledow:) ale...
Nie mam pojęcia jak te znaki definiować. A może ktoś już znalazł w tym kodzie te linijki które musiałbym wpisać w kod termometru ? Chwila chwila... To nie ten kod wam wysłałem... Tu jest prawidłowy i te znaki chyba są tam zdefiniowane :) Tylko prosił bym o wyszczególnienie dokładnie najpotrzebniejszych znaków do pokazywania Temperatury :) [syntax=basic4gl]'**********************...
Witam, postanowiłem dodać do programu pomiar temperatury mam czujnik DS18B20 , tylko że kod programu odpowiedzialny za sterowanie czujnikiem opóźnia działanie encodera ,gdzie jest tutaj błąd może czegoś nie uwzględniłem w tym kodzie ? poniżej cały kod [syntax=basic4gl] 'Filename Encoder_100.bas 'Version 1.00 'Date 2012-03-19 'Purpose Test of ALPS STEC11B13...
Witam, mam zrobiony termometr na Atmega8 i program napisany w Bascom. Co powinienem zmienić aby zamiast kropki przed ujemnymi temperaturami pojawiał się - . Poza tym wszystko jest ok, i świetnie działa. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 'Config Pind.1 = Input 'Config Portb.0 = Output ' cyfra1 'Config Portb.1 = Output ' cyfra2...
http://obrazki.elektroda.net/26_12188856... Termometr domowy wersja 2.0 by skomy Termometr wykonany jest z wykorzystaniem procesora Atmega8 (oprogramowanie w BASCOM): - posiada interfejs 1wire - do podłączania czujników DS18B20 (programowo ograniczone do 4) - wejście odizolowane galwanicznie transoptorem - do wyciszania aktywnych alarmów -...
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...
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.
Troszkę stary ten post piotrek198o, ale użyłem programu na swojej PCB (zmieniłem konfigurację LCD i 1wire) i program działa.
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)...
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...
Ręce to opadają i masz rację ;) Masz błąd w definicji zmiennej do której wpisujesz ID czujników to nie jest jeden bajt tylko tablica 8x8bitów czyli 8 bajtów. Adresujesz nie istniejące czujniki bo ich adresy sa niepoprawne, wysyła procek ciagle ten sam bajt. Dim Adres1 As Byte 'adres pierwszego Dim Adres2 As Byte 'adres drugiego Dim Adres3 As Byte 'adres...
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...
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...
Witam Kolega dondu ma racje dioda i tranzystor jest potrzebny ale jeśli chcesz na szybko sprawdzić kod czy działa zamiast wentylatora podłącz LED i w ten sposób sprawdzisz czy kod jest poprawnie napisany bo jak dla mnie raczej nie Sprawdź ten kod zmień sobie Porty w LCD i 1Wire oraz Wentylator czyli LED w programie. $regfile = "m8def.dat"...
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.
Poniżej przykład. Zwróć uwagę, że w tym przykładzie komenda konwersji temperatury występuje na końcu, a nie na początku. Odczytana temperatura będzie zatem tą która została konwertowana po poprzednim odczycie. To oczywiście nie ma znaczenia dla tego jak adresować czujniki. Powodzenia ! PL Config 1wire = Portd.6 Dim Adresy(16) As Byte Dim T1 As Byte...
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??
A to się w ogóle kompiluje? Bo chyba nie:> config 1wire - Portc.3
Jak już temat o 1wire i DS1820 to się podłącze. august_a Twojego problemu nie umiem rozwiązać niestety, ale na pewno ktoś to zrobi. Ja natomiast mam pytanie takie: Jaki mikrokontroler można wykorzystać do układu w którego skład wchodzą dwa czujniki DS1820 i LCD, na którym dane są wyświetlane? Mam atmega8, ale chyba do najtańszych nie należy i pewnie...
Witam! A co z deklaracją 1wire w przypadku czujników na osobnych portach procesora? W przypadku 2 czujników na jednej linii u mnie było po prostu Config 1wire = Portd.7 a jak będzie w przypadku który opisał kolega hotdog?
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...
Biblioteka której użyłeś nie ma możliwości dowolnej konfiguracji pinów. W załączniku masz bibliotekę prosto z Rosji :D Chiński wyświetlacz sam mi się uszkodził ale coś tam wyświetla :D http://obrazki.elektroda.pl/6257086800_1... Kod którego użyłem do zrobienia tego zdjęcia [syntax=vbnet] $regfile = "m8def.dat" ' specify the used micro...
Witam. U mnie ten program pracuje na wewnętrznym oscylatorze 1MHz. Sprawdź czy masz dobrze podłączony DS do pinu zadeklarowanym w programie. Config 1Wire = Portd.5 i tu ma być podłączony DS.
Zablokuj przerwania na czas odczytu temperatury, powinno pomoc. Druga opcja to wykorzystać przerwanie zegara i od razu po odczycie czasu wykonać odczyt temperatury i potem wysłać rozkaz konwersji temperatury do DS. Jak podczas nadawania po 1Wire program wykona jakieś przerwanie to będą problemy z DS (przynajmniej ja takie miałem)
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
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ść....
Atom dzięki, że zwróciłeś mi uwagę na 1wread. Wcześniej wyłączałem przerwania na każdej komendzie 1wire, ale podczas testów i modyfikacji programu zapomniałem tego wstawić z powrotem. Jak dopiszę kod do obsługi Timer1 i kwarcu to się odezwę czy to działa jak powinno.
...Nie działa mi rc5 ;/ gdy naciskam odpowiedni klawisz nic się nie dzieje, po ok 2 minutach program automatycznie przechodzi do mierzenia temp. $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Pinc.1 , Rs = Pinc.0 Config Rc5...
Config 1wire zrób na początku po co za każdym razem go konfigurować. Po za tym DS potrzebuje 750ms na konwersję a nie 500. Program napisany dość poprawnie z wykorzystaniem podprogramów.
Propozycja zmian $regfile = "m8def.dat" 'program jest pisany na procesor atmega8 $crystal = 8000000 'procesor będzie pracował z kwarcem bądź na wewnętrznym oscylatorze 8Mhz '---------------------------------------... Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc. 4 , Db6 = Portc.3 ,...
No to by było najprostrze :) ale nie mam jeszcze zbudowanego układu. Czujniki sa podpiete na 1 lini 1wire. Odstepy sa dobrze zachowane, poniewaz odczyt, konwersja i deklaracje sa wziete z dzialajacego kody :) Ogolnie to nie jestem pewien do przekazu danych do tego wyświetlacza... Wyświetlacz bezpośrednio do CGRamu :)
Witam Mam takie pytanko o konfigurację pinu do obsługi magistrali 1wire. Czy w obsłudze protokołu 1wire trzeba ciągle zmieniać konfigurację pinu jako wejściowy/wyjściowy w rejestrze DDR czy istnieje inny sposób, żeby uprościć sprawę i nie przekonfigurowywać co chwilę pinu ? O tyle to dla mnie istotne, że wszystkie procedury piszę samodzielnie w asm...
"config 1wire=Portx.x" tez pewnie masz ? Mam :) ale i tak nic :/ ALE ZMIENIŁEM FUSY I TERAZ WIDZI DSa, tylko nadal mam problem, ponieważ nie moge z niego nic odczytać. Teraz mam zewnętrzny oscylator 8MHz (przed zmiana dawalem na wewnętrznym 1MHz) w programie wywala mi błąd CRC tak, że nie mam pojęcia co robić dalej, ale dzięki za pomoc (już widzi DSka...
Dzięki za pomoc. Zastanawiam się, czy nie lepszym rozwiązaniem będzie podanie SCK mastera dodatkowo na INT0 slave. Tak żeby pierwsze zbocze zegara wywoływało przerwanie. Czy wtedy transmisja przejdzie bez problemów? I bezbłędnie przy użyciu samych poleceń SPI IN/OUT? Zależy mi na transmisji od razu 8 bajtów. A jak jest z UARTem? Nie miałem okazji jeszcze...
[url=http://www.elektroda.pl/rtvforum/to... post [/code] 100% podobny problem naj efektywniej będzie zrobić emulator ds18b20 2 przewody mnogość czujników standardowe procedury obsługi na różnych platformach Jetem z okolic Gostynia mam kody emulatorów w asm , c , i bascom potrzebuje pomocy przy przekonwertowaniu dla atmega8 bo takie mam...
Szczerze mówiąc nie ma z tym problemu :D Ponieważ w C też programuję, jednak co do komunikacji I2C i 1wire pod C się jednak nie za wygodnie piszę. A nie mam zbyt wiele czasu, żeby bawić się w to od początku, bo tak bym dawno napisał program w C :) A możesz powiedzieć jak to ostatecznie zadziałało :?:
1. warto użyć przerwań chociażby dla obsługi RC5 2. do obsługi 1wire nie potrzeba wykorzystywać przerwań choć można 3. Jeśli do tego będziesz miał jakiś wyświetlacz multipleksowany LED to bez przerwań się nie obejdzie 4. Jeśli użyjesz wyświetlacza LCD to do jego obsługi przerwania nie są potrzebne - tak więc procek w rękę, rzut oka na niektóre przykłady...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Witam. Właśnie robię kuchenny minutnik z zegarem. Urządzenie to nie byłoby cały czas podłączone do prądu dlatego poszukałem trochę i dowiedziałem się że istnieje taki układ "real time clock" pobiera bardzo mało prądu i wysyła dane za pomocą magistrali 1wire, i2c i spi. I teraz problem jaki układ mam wybrać (chodzi tylko o godzinę) jak podłączyć i jak...
Na pierwszy rzut oka widac czemu kod wykonuje się długo: bo jest jak na ten kompilator ogromny, używasz wielu peryferii i opóźnień programowych. Spróbuj poskracac opóźnienia, np. ten przy ponownym odczytywaniu 1wire: myślę że nawet możesz wywali ten postój. Poexperymentuj z wszystkimi czasami zaczynając od wywalenia, a jeśli program zacznie się sypac...
Chyba wyważasz otwarte drzwi. Ja osobiście zastosowałbym Ds18B20, łatwo sie z nik komunikować po 1wire, są gotowe procedurki http://www.elektroda.net/download/file30... .Prawdopodobnie bedziesz pisał w bascom tak więc masz gotowy układ tylko posklejać w całość
Czy to może być wina częstotliwości kwarcu ?. A gdzież tam kwarcu? :( ... tylko i wyłącznie programu. To może działać zupełnie swobodnie nawet bez kwarcu tylko na wewn. oscylatorze np 8MHz. Zobacz tutaj: http://mirekk36.blogspot.com/2011/09/fak... wprawdzie w nieco innym języku ale widać, że odczyt temperatury 1wire...
Ja bym polecał wywalić standardową obsługę LCD bez RW na pełną z tą biblioteką. $lib "lcd4busy.lib" Const _lcdport = Portd Const _lcdddr = Ddrd Const _lcdin = Pind Const _lcd_e = 3 Const _lcd_rw = 2 Const _lcd_rs = 1 Config Lcd = 20 * 2 Waitms 1000 Initlcd Cursor Off Miałem podobny problem. Zresztą może 2 tematy niżej, tyle, że z VFD. Raz...
witam mój problem jest tego typu, że ma termometr, który wykorzystuje właśnie18d20 i wyświetla temperaturę na lcd tylko że nie liniowo;/ co jest nie tak podłączony jest przez rezystor podciągający a o to jak wygląda kod programu $regfile = "m8def.dat" ' zdeklarowane dla Atmegi8 $crystal = 8000000 ' Taktowanie wewnetrzne 1mHz Config 1wire =...
Z tego co napisałeś jak masz właczony rezonator wewnętrzny na 8MHz, i jak masz zadeklarowane te 8M w crystal to masz śmieci? A jak natomiast ustawisz crystal na 11005900 (czemu taka wartość, nie masz na myśli 11095200) to działa Tobie wszystko OK? To bardzo dziwne, bo wtedy procesor raczej nie będzie odczekiwał poprawnych czasów. Będzie wtedy ten czas...
Przy dołączonych peryferiach 1wire jest pewna przeszkoda w komunikacji. Należy na czas komunikacji z układem wyłączyć timer( czyli zatrzymać odmierzanie czasu, sam sprawdź na czas komunikacji zrób disable timer0, a po zakończeniu komunikacji enable timer0). Dlatego do odmierzania czasu powinieneś wykorzystać timer w trybie asynchronicznym, np.: Config...
hej niech ktoś podpowie czy dobrze rozumiem wywoływania jednego ds-a 1)RESET() - 1wire 2)wysłanie 0x55 3)wysłanie adresds18b20[0x28] -0 bit 4)wysłanie adresds18b20[0x..]-1 bit 5)wysłanie adresds18b20[0x..]-2 bit 6)wysłanie adresds18b20[0x..]-3 bit 7)wysłanie adresds18b20[0x..]-4 bit 8)wysłanie adresds18b20[0x..]-5 bit 9)wysłanie adresds18b20[0x..]-6...
Podejrzewam, że błąd będzie gdzieś w samym schemacie/płytce, ponieważ przed chwilą złożyłem na stykówce na szybko układ: - Atmega8 - 1x DS18B20 - dioda led i wrzuciłem w niego program: Dodano po 3 Problem z wykrywaniem czujnika rozwiązany. Powodem całego kłopotu okazało się jedno ze złączy (przy magistrali 1Wire), które było uszkodzone i nie stykało....
http://obrazki.elektroda.pl/2943283900_1... Witam wszystkich, przedstawiam ciekawy twór mojego autorstwa oraz kolegi. Mieliśmy zaproponować coś ciekawego, innowacyjnego, a zarazem prostego na zaliczenie. Mając, jak to na studiach, strasznie mało czasu na całe przedsięwzięcie. Zaczęliśmy poszukiwania na forum, z którego teraz my się...
Proszę bardzo (szkoda kolejnych kilkunastu postów na omawiany wielokrotnie temat), kod zmodyfikuj wedle własnych potrzeb: $regfile = "m32def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.4 , Db5 = Pb.5 , Db6 = Pb.6 , Db7 = Pb.7 , E = Pb.3 , Rs = Pb.2 Config 1wire = Portb.0 ' termometr ds18b20...
Witam! Posiadam układ Si4711 (3x3mm) który jest na raz generatorem RF, syntezerem, cyfrowym koderem stereo, koderem RDS, przetwornikiem A/C, cyfrowym limiterem audio, posiada wejścia audio analogowe i cyfrowe. Możliwa jest komunikacja za pomocą SPI, 2wire i 3wire. Do tej pory w mojej praktyce korzystałem tylko z 1wire bawiąc się zazwyczaj DSem do pomiaru...
Byłby ktoś w stanie mi z tym pomóc? Miałoby to wyglądać tak: * sterowanie wentylatorami czasowo * sterowanie poprzez odczyt temeratury 2 osobne funkcje (działa albo jedno albo drugie). Do tego co mam dołożenie wł/wył czasowego (w zupełności wystarczy najprostsze z możliwych) OK, Popatrz na swój program; sterujesz ustawienia trzema przyciskami, z których...
Za dużo kombinujesz już mówiłem ;) podłączanie DS18B20 pod PCF'a żeby go obsługiwać w Bascomie to jeszcze bardziej karkołomny pomysł niż podłączanie LCD. Bo o ile LCD się da to o 1wire zapomnij Możesz sobie dodatkowe diody czy przekaźniki podłączyć A ten kod który pokazałeś to asembler ale nie dla AVR'ów tylko dla '51 A nawet jakby był dla AVR - to...
Mam dziwny problem z ATmega8515 i obsługą szyny 1wire w Bascomie AVR 11.7.4. Prosty program zbudowany w oparciu o nieznacznie zmodyfikowany przyklad z helpa do odczytu temp. z ds18b20 działa na AT90S2313, a nie działa na ATmega 8515. Sposób podłaczenia jest ten sam, próboałem też konfigurować szynę 1wire na różne porty. Problem jest zawsze ten sam -...
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...
$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 =...
Niestety program kolegi wojnar również mi nie chce działać poprawnie. Po zmienieniu $regfile i $crystal i zaprogramowaniu Atmegi wyświetlacz wskazywał że temp. wynosi 3.3°C, ale po dotknięciu palcem temp. rosła czyli jakaś reakcja była. No nie mogę za chiny dojść dlaczego odczyt jest niepoprawny :cry: Na Attiny2313 działa na 100%. Ale próbowałem też...
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 'Podłączenie LCD Config 1wire = Portb.1 'Podłączenie DS18B20 Cursor Off Dim Temptxt As String * 7 Dim Temp As Single Dim T As Word Dim Wynik(9) As Byte Cls Do...
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...
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejcia magistrali 1-wire Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5 'Deklaracja wszystkich zmiennych potrzebnych do pracy programu Do 1wreset 'reset...
Witam. Problem tak jak w temacie, po prostu troche mnie to tym razem przerosło. Ogólnie to działać ma to tak: 'Program do wytrawiarki natryskowej. $regfile = "m8def.dat" $crystal = 8000000 'Konfiguracja 1wire: Config 1wire = Portb.0 'DS18B20 'Deklaracja zmiennych: Dim Temperatura As Word Dim Temperatura_trawienia As Word Dim Czas_trawienia...
Witam Przerzucam się z Bascom na C. Niestety jest to odrobinę bolesne. O ile LCD już ogarnąłem, to kłopot sprawia mi DS18b20. Zaraz po uruchomieniu układu, temperatura wyświetla się w miarę dokładnie. Niestety po kilkudziesięciu sekundach wyświetlana jest temperatura ujemna (!). Czyli najpierw pokazuje ok 22-23 st. i nagle przeskakuje na -8st. Wygląda...
Poprawcie mnie jak się myle, ale tym poleceniem to raczej wewnetrznego oscylatora nie przestawimy bo takiej opcji po prostu nie ma !! wiec kolega W.K chyba cos namieszal... "Oscillator is voltage dependent as shown in “ATmega8 Typical Characteristics”. The device is shipped with CKSEL = “0001” and SUT = “10” (1 MHz...
Witam.Mam taki problem.Posiadam program Termometru (Atmega8+DS18B20)pokazujący temp.dodatnie i ujemne.I nie mam pojęcia jak go przerobić pod (2X DS18B20).Temp.z dwóch układów na jednej 1Wire.Proszę o pomoc:) $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7...
Witam, Po wielu próbach uruchomienia wyświetlacza abc016004a01 poddaję się i proszę o pomoc. Program to: http://obrazki.elektroda.pl/4798052100_1... Procesor dobrze zasilony, Fuse dobrze ustawione (dioda miga co około 1s, na innym programie 1wire i komunikacja po rs działa). Fuse: http://obrazki.elektroda.pl/5461858400_1...
Witam Potrzebuje pomocy przy programie termostatu. Mam napisany program lecz niestety nie chce mi załączyć wyjścia PB.0 załączam kod programu $regfile = "m8def.DAT" $crystal = 1000000 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 Config Portb.0 = Output...
wITAM. Napisałem program bo pomiaru temp. Problem mam taki, że na wyświetlaczu pojawia się więcej tekstów coś w tej formie: Temp = 21,1C Temp = 21,1C Temp = 21,1C Temp = 21,1C i tak przez cały wyswietlacz i przesuwa się w prawo. kod: $regfile = "m8def.dat" $crystal = 16000000 Config 1wire = Portb.1 'port do którego podpięty jest termetr Config Lcdpin...
atmega8 1wire 1wire atmega8 1wire bascom
pixma ustawić wydruk wydajność excel zbiornik zmywarka
naped elektrobim kompresor kowal
Projektowanie odbiornika AM 118-174 MHz: kluczowe elementy Niski pedał hamulca w wózku widłowym Hyundai - przyczyny i diagnostyka