Przede wszystkim. Zejdź z taktowaniem do jakiejś normalnej wartości dla ATmega16 i przetestuj czy wtedy komunikacja z DS-ką jest prawidłowa. Jeśli nie to najpierw musisz naprawić sprzęt/algorytm by wszystko działało prawidłowo. Jeśli na niskim taktowaniu komunikacja będzie w porządku to będzie to oznaczało tylko to, że specjalne makra opóźniające jakie...
Witam serdecznie !!! Mam taki problem z DS18b20 i ATmega16. Programuje w BASCOMie i wykorzystuję funkcję 1wirecount tak jak w programie poniżej i ciągle mi wyświetla że ilość podpiętych urządzeń to 0, nie wiem w czym tkwi problem. Podpiąłem zgodnie z nota katalogową tzn 1 do gnd 2 do uP i do tego 4,7k rezystor oraz 5v pod Vdd. oto 'Termometr DS18B20...
Nie wiem na które pcb patrzysz , to ostatnie do pełnej wersji z pomiarem prądu i napięcia ,patrzę i widzę że jest OK . pin40 i pin39 są podpięte do dzielnika kondensator żeby nie pływał pomiar zbytnio. nie widzę tego o czym piszesz . Wieczorem sprawdzę jeszcze raz i podam zaktualizowane . Ok jest wieczór więc zamieściłem na 2 str. schemat i pcb w eagle...
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Na moje oko kompilator ma jakiś błąd, a procedury 1Wire korzystają z jakiegoś rzadko stosowanego rozkazu procesora. I kompilator myśli że ATMEGA16 nie obsługuje tego rozkazu. Ten błąd to nierozpoznany rozkaz ASM. Żuć kodem. I spróbuj zmienić procesor na na przykład ATMEGA32.
Witam Zaczynam trenować mikrokontrolery i programowanie. Próbowałem w asm ale jakoś ciężko - próbuje teraz w bascomie - i też ciężko niestety :( znalazłem jakiś przykład programu w bascom ale coś mi nie hula. $crystal = 16000000 '$regfile = "m16.dat" Config Portc = Output Config 1wire = Porta.1 Dim Odczyt(2) As Byte Declare Sub Odcz_temp...
Poskładałem taki termometr: $regfile "m8def.dat" $crystal = 8000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B11111111 Portd = &B11111111 Config Portc = Output Portc = &B1111111 Config 1wire = Portb.0 Dim Ktorywysw As Byte Dim Dziesiatych As Word Dim Jednosci As Word Dim Dziesiatki As Word Dim Setki...
Witam! Od kilku dni siedze i nie mogę nic wymyśleć :( Bez ogrudek - podaje źródło: $regfile = "m16def.dat" $crystal = 8000000 'definiowanie zmiennych i stałych Dim T As Integer Dim Licznik_przerwan As Byte Dim Dioda As Bit 'konfigurowanie interfejsu 1Wire Config 1wire = Portd.1 'konfiguracja wyświetlacza Config Lcdpin = Pin , Db4 = Portc.6...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
Witam. Jestem w fazie pisania programu z zegarem DS3231 i atmegą16. Mam podłączone wejście INT0 atmegi z wyjściem INT/SQW DS-a. Podciągnięte rezystorem 10k do 5V. I nie wiem co robię źle ale procesor nie reaguje na sygnał przerwania z DS-a. Powiem szczerze że nigdy nie korzystałem z przerwań zewnętrznych ale znów ustawienie tego nie jest skomplikowane...
Witam! Mam problem z oprogramowaniem (które piszę sam w BASCOM) do sterownika na atmega16. Sterownik steruje na podstawie timera1 oraz ds18b20 pięcioma wyjściami 220V (za pomocą przekaźników) oraz 4 12v za pomoca bc546b. Przy ustawienu czasu, godziny włączenia, zakresu temperatur sterownik zaczyna prawidłowo pracowac ( bez obciążenia urządzeniami na...
Kolega Mad Jaro mierzy czas pomiedzy INT-em i przelicza na obroty. zablokowanie INT spowoduje pływanie obrotów( INT nie liczy impulsow). Kolega xury ma rację odnośnie jednokrotnego użycia szukania czujników. A poza tym zsynchronizuj odczyt 1wire z przerwaniem INT tzn. komunikację z 1wire podziel na max -5 bajtowe odcinki i wykonuj je po przerwaniu INT....
$crystal = 8000000 ATMega16
Problem jest w sprzęcie a nie w programie. W układzie brakuje kondensatorów ceramicznych 100nF na pinach zasilających uC, LCD, czujnika, wejściu ADC. Nie widzę też filtru na AVCC oraz jakiegokolwiek tantala/elektrolita na zasilaniu. Popraw zasilanie a zamiast analogowego czujnika użyj cyfrowego np DS18B20 na 1Wire.
Niestety nadal nic ... Napisałem (a dokładniej przerobiłem program z innej strony): [syntax=basic4gl]$regfile = "m16def.dat" $crystal = 8000000 $baud = 2400 Config Portb = 255 Portb = 0 Config Portc = 255 Portc = 255 Config Portd = 255 Portd = 255 Config 1wire = Pina.0 Cls Cursor Off Noblink Enable Interrupts Dim Lsb As Byte Dim Msb As Byte Dim Tempa...
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
Aaaale... Czy generowanie tego przebiegu ma być jedynym zadaniem twojego mikrokontrolera? Jeśli w pętli głównej będziesz chociażby odczytywać czujnik 1wire lub mocno utylizujesz przerwania, błąd nie będzie rzędu 10% (220Hz zamiast 200Hz), tylko rzędu 50%, a może i nawet 100%. Tego nie wie nikt, i nie ma takiej mocy żeby to policzyć... Co tu dużo tłumaczyć?...
Tak na szybko to powinno być: "Config 1wire = Portc.1" "8 MHz" "na razie" Gdzie masz "Config Lcd" i "Config LcdPin" ?
[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...
czujka już działa. Rozwiązałem to w ten sposób: Do Disable Int0 Disable Timer0 Dsid1(1) = 1wsearchfirst() 1wreset 'inicjacja magistrali 1WIRE While Err = 1 1wreset Wend 1wwrite &H55 1wverify Dsid1(1) 1wwrite &HBE B1 = 1wread() B2 = 1wread() T = Makeint(b1 , B2) T = T * 10 T = T / 16 If T <>...
heheh, już tak miałem wcześniej, ale przeniosłem ponownie tak ja mi napisałeś alien_audio i zastanawiałem się co mogłem popsuć, bo na logikę to po prostu MUSI działać :P Widać siedzenie do późna mi nie służy, bo... odliczanie sekundy trwało krócej, przez co 1wire nie zdążył konwertować, a już kolejne dane przychodziły do odczytu :P Tak to jest jak człowiek...
Z takim kwarcem da się zrobić programowe 20kHz. Ze sprzętowym nie ma problemu z jakimikolwiek przerwaniami. Zapewne chodziło o przerwania występujące podczas multipleksu wyświetlaczy, ale wtedy przy odpowiednim zarządzaniu przerwań także nie ma problemu z odczytem z 1Wire.Także piszę w bascomie i mam program z 4xDS18B20 na przewodzie 20m i z 15 multipleksowanymi...
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
to , że procek działa na szybszym kwarcu może wpłynąć tylko korzystnie w takim układzie. Przecież masz deklarację kwarca 16MHz w programie więc kompilator wszystko kompiluje zgodnie z tą dyrektywą.... czyli jak dobrze rozumiem to już na tym czysto wstępnym etapie programu Cls W = 1wirecount() Cls Lcd "Ile =" ; W ; "szt" Wait...
Witam Ja mam w ten sposób: Function Pomiar_temp_zew(i As Byte)as Integer 'Funkcja zwraca wartosc temperatury zewnetrznej z czujnika DS18B20 'znajdujacego sie na magistrali 1-Wire Id_urz_1wire(1) = 1wsearchfirst() 'odczytaj ID pierwszego urzadzenie 1wire For I = 1 To 8 'wpisz do tablicy ID 8 bajtów Print Hex(id_urz_1wire(i));...
Właśnie tak jak wcześniej napisałem z elektroniką w praktyce dopiero zaczynam. Więc reguł , które właśnie wymieniłeś wcześniej nie znałem. A schemat starałem się zrobić czytelnie tylko ,że nie umiem jeszcze dobrze operować miejscem które daje eagle. A co do postu powyżej to pin 9 ze złącza lcd to masa tak samo jak 6,7,8,10 tylko ale jest to podłączone...
Witam dopisałem ale coś nie działa do zmiennej T nie mogę się odnieść ponieważ wyrzuca mi błąd odwołałem się do zmiennej S ale program nie działa poprawnie. Co robię źle ?. [syntax=basic4gl][/syntax] $regfile = "m16adef.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.7 , E = Portc.6 , Db4 = Portc.5 , Db5 = Portc.4 , Db6...
Spróbowałem, wyrzuciłem ten kawałek, w efekcie czego mam pomarańczowe "0" świecą czerwone i zielone diody. Nie mam pojęcia jak to inaczej zapisać. Przez to, że "luz" nie "leci" przez Uc nie ma możliwości sterowania tranzystorem T3 przez program. Dzisiaj jeszcze coś mi się posypało z 1wire, nic przy nim nie ruszałem a nagle przestał działać jeden czujnik....
Witam Nie wiem czemu po dodaniu do kodu serw mikrokontroler zaczyna zachowywac sie kompletnie "niespodziewanie" Generalnie Atmega chodzi na kwarcu 16K obsługuje wyświetlacz alfanumeryczny i 11-Czujników (1wire) Zrobiłem małe menu ,po przejściu do odpowiedniej zakładki uruchamiane jest pierwsze 8 czujników albo gdzie indziej inne 3 , jest też zakładka...
Witam Mam pewien problem chciałem napisać program do obsługi termometru na DS18B20 ale z możliwością ustawienia temperatury w menu przy której dany pin w atmedze włączy stan wysoki. Chodzi mi głównie o to ze by np przy temperaturze 30 stopni włącz wentylator i poniżej 30 stopni wyłącz. Ale chodzi o właśnie o te ustawienie tej temperatury w menu Program...
Moi drodzy, po co kłótnie, Po co wasze swary głupie, Wnet i tak zginiemy w zupie! Może krótko i merytorycznie wyjaśnię Bascom`owe podstawy a zacznę od komend Set i Reset. Otóż potrafią one ustawiać tylko jeden bit na raz. Jeśli numer bitu nie jest wskazany to zawsze będzie to bit numer 0. Dlatego wskazane piny portów PINx, PORTx, DDRx i inne ustawiają...
Ja też miałem takie cyrki z przerwaniem. napisałem więc program w ten sposób: '///////////////////////////////////////... '////////// TERMOSTAT /////////////// '///////////////////////////////////////... $crystal = 4000000 'rezonator 4MHz $regfile "attiny2313.dat" 'attiny 2313...
witam serdecznie Tak używam przerwań (z TIMER0), ale są uruchamiane tylko gdy są potrzebne tzn. wykorzystuję do tego instrukcję Start/Stop Timer0. Co ciekawe ten fragment co wyżej to fragment większej części programu i jak zamienię pętle "do loop " na np. [syntax=vb] while a=0 i tutaj to co wyżej..... wend[/syntax] oraz dodam drugi warunek [syntax=vb]...
Witam! Mam taki problem: Skleciłem oto taki kod i nie bardzo działa $regfile = "m16def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Porta = Input : Porta = &B11111111 Config Portb = Output : Portb = &B11111111 S1...
$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 =...
ajj mój błąd! gdzieś mi się rozmnożyło jedno 0 :P faktycznie rs232 teraz śmiga że miło :D niestety 1wire nadal nie zaskakuje :( jeszcze posprawdzam timingi działa ... mam to na płytce szybkiego montażu i nie zauważyłem że nie połączyłem jednego toru "-" i do ds nie było to podłączone -.-' teraz śmiga :) więc się biorę za pisanie programu :D
koledzy, zlitujcie się :) Zamiast dyskutować akademicko, może byście poratowali po prostu prawidłową funkcją :) Pewnie,że sam powinienem się wgryźć w ten 1wire, ale nie mam teraz czasu na to. Przejrzałem wszystko co się dało znaleźć na elektrodzie, i nie znalazłem łopatologicznego wyjaśnienia, dlatego po prostu zrobiłem jak mi się wydawało ok. No ale...
Masz rację na forum jest to tylko cześć okrojonego programu. Wklejam składowo pełny program, wyciąłem tylko poszczególne obliczenia. Może teraz będzie coś więcej wiadomo co może być przyczyną. [syntax=vb]'--------------------KONFIGUR... $regfile = "m16def.dat" 'informuje kompilator o pliku $crystal = 8000000...
Nawet nie wiedziałem że nowych wersjach Bascoma można robić takie rzeczy. Czyli , czy miało by to wyglądać tak: ? 'DS-y na pinach B.0 - B.7 '***************************************... '*********************************1 WIRE SET*************************************... '***************************************...
Ok, a teraz jeszcze jedna sprawa: Zmodyfikowałem trochę program by wyświetlał na multipleksowanych wyświetlaczach LED 4x7 odebraną komendę. Jak zwykle trochę chodzi, ale nie do końca - założenie jest takie: odbiera komendę z rc5 i wyświetla ją na led, efekt jaki uzyskuję: odbiera komendę, wyświetla na ułamek sekundy, potem wyświetla 95, czasem się zdarzy,...
Witam!!! Ale nie wiesz sie cały program tylko RC5, zrobiłem to bez przerwania i działa bez zarzutu, moj progam wyglada tak kod: $regfile = "m162def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs...
Witam wszystkich forumowiczów dobrej woli :). Mój układ składa się z atmegi16 i czujnika ds18b20, całość złożona na płytce stykowej. Problem polega na tym, że przy odczycie temperatury sczytywany jest LSB a zamiast MSB otrzymuję 0 (słownie "zero"). Czujnik testowany w temperaturze poniżej zera, w temperaturze pokojowej i we wrzątku i cały czas otrzymuję...
Hmmm... Tylko Programuję kontroler programatorem ZL2PRG i w Bascomie mogę tylko resetować z komputera uC, a nie działa mi wgrywanie programu do niego, ani nawet odczytywanie modelu, albo mam coś źle poustawiane... uC programuję PonyProgiem i tam mam Fusebity i np przy CKSEL3 mam tylko okienko do zaznaczenia, ale nie mogę tam podawać żadnych 1 ani 0....
Taki mi się urodził problem. Mam tutaj M162, w dość prostym układzie (TQFP 44). Programator USBasp. Kłopot jest taki - spod mkAVRCalculator ustawiłem sobie fusy na : lfuse FF, hfuse D9, extended FF. Mam kwarc na 11.059 MHz. I teraz tak - zarówno spod avrdude, jaki i spod mkAVRCalculator mam poprawną komunikację. Mogę sobie odczytać fusy, flash itp....
http://obrazki.elektroda.pl/4776361100_1... Witam wszystkich, jest to mój pierwszy projekt opisywany na tym forum. Przedstawiam projekt mojego autorstwa, zegar z termometrem wyświetlający aktualną datę, godzinę oraz temperaturę z 3 czujników. Założeniem projektu było zbudowanie zegara wyświetlającego godzinę oraz temperaturę wewnątrz...
Jarosław J --> dzięki za opinię. Ja wprawdzie zaczynałem i zwykle zaczynam poznawanie każdej rodziny procków jeśli się już za nie biorę od asemblera. Ale jednak zanim zacząłem działać ostro w C - to wcześniej przeszedłem BASCOM'a. Przyznam ci, że w Bascomie próbowałem kiedyś robić podobny projekt i to na procku ATmega32. Wprawdzie nieporadnie ale jakaś...
OlekM klawiatura jest czyszczona za każdym razem gdy jakaż komenda z pilota leci do procka co pokazuje część kodu : If Address = 0 And Command = 16 Then Cls Incr Strona End If If Address = 0 And Command = 17 Then Cls Decr Strona End If If Address = 0 And Command = 33 Then Cls Downigora = 1 End If If Address = 0 And Command = 32 Then Cls Downigora =...
Witam. Zmuszony jestem znów zapytać Kolegów gdzie robię błąd w obsłudze SHT11. [syntax=basic4gl] $regfile = "m16def.dat" '$crystal = 400000 '**************KONFIGURACJA LCD***************** Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portd.0 Cursor Off Cls Deflcdchar 0 ,...
...wracam do walki z Atmegą i 1Wire (pod asm żeby było trudniej ;) ) Chyba łatwiej , no ... może tylko dłużej.Masz pełna kontrolę nad prockiem , jeśli wiesz co robisz ;) W językach wyższego poziomu , kompilator jedynie wie , co będzie robił procek , a programista zakłada tylko , że wyniki pracy procesora , będo zgodne z jego życzeniem.Jednakże często...
Daj się przekonać do $crystal. Jeśli częstotliwość zadeklarowana jest różna od rzeczywistej to nici z 1Wire. Gdzieś czytałem, że przy 16MHz 1Wire w Bascomie nie chce chodzić.
atmega16 1wire 1wire bascom bascom 1wire
niebieski matryca blaupunkt selenowy bambino urlich instrukcja
schemat wyłączników monostabilnych ariston przycisk
Regulator temperatury Audi 80 B3 1.8S – budowa, działanie, typowe usterki Siemens EQ.500 TP507R04 kod E 8233 – błąd jednostki zaparzającej, czyszczenie i reset