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ł...
Wiem że zostanę pewnie wyklnięty ze społeczności za ponowne poruszanie tematu 1-wire ale przerobiłem trochę działający kod który sam kiedyś popełniłem na armie na potrzeby atmegi i kurcze nie chce to działać... siedzę i myślę co może być nie tak i szczerze nie mam już pomysłów, więc chciałbym prosić aby ktoś zerknął na kod i powiedział gdzie ewentualnie...
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...
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...
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...
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...
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...
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, 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??
atmega8 1wire 1wire atmega8 1wire bascom
profile śmigieł pompa powietrza wanna satel integra rolety
toshiba 32l2433d toshiba 32l2433d
Schemat magnetowidu Aiwa HV-DK510 MkIIKE - gdzie znaleźć? Resetowanie pilota Pioneer XXD3184 - instrukcja krok po kroku