No bo zmienne nie mają nieskończonej dokładności. A liczba 0.1 w kodzie binarnym nie jest liczbą okrągłą i musi być zaokrąglana.
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:)
Dobrze jest pisać jaka wersja Bascom bo czasem rozmowa jest bezcelowa jak ktoś używa ver 1.1 coś tam spolszczonej. Funkcja Round zaokrągla do najbliższej wartości czyli z 2,4 zrobi 2 a z 2,6 zrobi 3 Jeśli chcesz zwykłą zmienną to wystarczy przepisać wartość z Single i program zrobi automatyczne rzutowanie i obetnie to co po przecinku. Kwestia potrzeb...
Użyj funkcji do zaokrąglania FUSING
To może koledzy mają jakiś inny sposób na zamianę liczby z postaci zmiennoprzecinkowej w całkowitą? No to w końcu chcesz mieć liczbę całkowitą w zmiennej zmiennoprzecinkowej czy liczbę całkowitą w zmiennej całkowitej? Jak to drugie, no to Round: Dim Co2_w As Single Dim Co2_int As Long ... Co2_int = Round(co2_w) Niezgodnie z Helpem BASCOMa,...
Kol. _Matik_ określił przyczynę problemu, ja natomiast chciałem zasugerować rozwiązanie. W Bascomie jest instrukcja ROUND(x). Sądzę, że to jest najprostsze wyjście.
Tutaj masz wsaszik do atmegi 8. Tylko delikatnie zamotane jest zaokrąglanie liczby.
Ogranicz ifami, zaokrągla się funkcją round.
Zainteresuj się poleceniem FUSING. Przeczytaj helpa i zobaczysz, że da się zrobić.
Jak dla mnie to nie bascom, to skończona dokładność...
Właśnie czas pomiedzy impulsami da ci wiarogodny wynik. Chyba, że czas pomiaru będzie na tyle długi, że da ci zadowalającą dokladnosc. Np. na wolnych obrotach w samochodzie(ok 900 obr/min) masz 15 obr/sek (co ok 60ms) natomiast przy 10000obr/min masz impuls co 6ms. Przy podstawie pomiaru 50us (liczenie czasu pomiedzy impulsami) masz dobrą dokładność...
Dzięki za tak ekspresową odpowiedź. Jeszcze takie jedno pytanie: Czy jest taka funkcja, która zaokrągla do 0,01?
Zaokrąglenia single... na LCD. Powiem szczerze ze pomysłów mi już brakło. Spróbuj więc takiej funkcji: CONFIG SINGLE = SCIENTIFIC , DIGITS =1 co obcina zbędne miejsca zmiennej 'single' do jednego miejsca po decimal point. Zamiast 1 może byc dowolna wartośc w zakresie 1 do 7. albo jak wyżej "FUSING". e marcus Ta funkcja również zaokrągla ?, działa przy...
:) Komenda mod to taka reszta z dzielenia czyli: zmienna = liczba mod 4 zmienna - miejsce gdzie zostanie wpisana reszta z dzielenia liczba - zmienna która jest dzielona przez 4 (w miejsce 4 możesz wstawić inną liczbę lub zmienna) Dodatkowo w Bascomie są dwa rodzaje dzielenia znak / i \ pierwszy (/) używamy do dzielenia z resztą (w przypadku zmiennej...
Poradziłem już sobie z uśrednianiem wyniku, ale mam dalej problem z tym zaokrąglaniem. Nie ma jakiegoś prostego sposobu na zaokrąglenie liczby ułamkowej ? Te funkcje round i int nie działają poprawnie. Zaokrąglają, ale pozostaje przecinek i zero na końcu, którego chcę się pozbyć.
No tak, tu obliczenia robi na liczbach całkowitych i z pewnością wystąpi z tego tytułu niedokładność jakaś przez zaokrąglanie, ale nie sądzę aby to było jakieś 20% wyniku i tylko w dolnym zakresie.
Takie mam problemik. Otóż mam w stringu wartość typu "843.30" - przecinek może być na różnej pozycji, czyli może to być np. "3.423" Potrzebuję toto zamienić na wartość liczbową, więc przepisuję do zmiennej typu SINGLE. Ale - dla stringu "84.2" otrzymuję wartość zmiennej 84.199996946 Jak sądzę, jest to problem konwersji do single - czy jest jakiś sposób,...
Round() zaokrągla do najbliższej wartości całkowitej) w tym przypadku 13,9.... do 14 Powinieneś (jeśli dobrze zrozumiałem funkcje) użyć INT()
Można to zoptymalizować i nie przeliczać na Volty w ogóle, ale tak bedzie prościej zobrazować. Jeśli napięciem odniesienia jest AVCC to znaczy że 5V trzeba teoretycznie podzielić przez rozdzielczośc 1024 i wyjdzie 0.00488 no i to się często zaokrągla do 0.0049 Teraz żeby odczytać napięcie wystarczy pomnożyć odczytany wynik przez te 0.0049, ale to wymusza...
Witam! Jak zaokrąglić liczbę typu single (6 miejsc po przecinku) do 1 lub 2 miejsc po przecinku, tak aby to można później wyświetlić na LCD. Jest jakiś inny sposób niż komenda format?
Błąd chyba tkwi w sposobie liczenia a dokładniej w sposobie zaokrąglania liczby, napisz dokładnie w jakis sposób liczysz część ułamkową. Przypuszczam że gdzieś zaokrąglasz coś w góre a przy sumowaniu to zaokrąglenie powoduje "przekręcenie" się licznika częsci dziesiętnej temperatury.
Istnieje funkcja Round(), która zaokrągla zmienną do najbliższej wartości całkowitej. Może wystarczy daną wartość pomnożyć przez 100, zaokrąglić i podzielić przez 100?
niestety ujemnych liczb cgba nie obsługóje , chociaz może ??? co do zaokrąglania to mozna dać Lcd Fusing(Wynik , "#.##") i powinno działać pozdrawiam
Więc pytanie zasadnicze. Jak zaokrąglić otrzymany wynik zmiennoprzecinkowy w bascomie AVR? Wykorzystywanie liczb zmiennoprzecinkowych do odczytu temperatury z DS18B20 jest lekko mówiąc mało rozsądne, zwłaszcza że "po przecinku" może być tylko 16 różnych wartości. Takie rzeczy to się zaokrągla na etapie pisania programu, który potem operuje wyłącznie...
Dzięki za odpowiedź ale nim wpisałem pytanie na Elektrodę to sporo męczyłem się z tym (przesuwanie przecinka, mnożenie, dzielenie) ale niestety bez rezultatów. W bascomAVR jest polecenie "Round" ale ono zaokrągla wynik do liczby całkowitej i tym samym odpada. Może jest jeszcze jakieś polecenie coś w rodzaju formatowania wyniku, którego jeszcze nie znam/znalazłem...
Może w przypadku wagi trzeba obcinać. Ale normalnie to raczej wypadało by zaokrąglać. A funkcja zaokrąglająca zajmuje z tego co sprawdzałem, mniej. W zasadzie sama funkcja jest jedna, a wyboru dokonuje się na podstawie wzorca (czyli w procesorze siedzą i tak obydwie wersje). Ale to było dawno jak sprawdzałem i już nie jestem pewien.
Co do konfiguracji portu C hm mam najnowszego bascoma i nie ma żadnych błędów po kompilacji i robot zaprogramowany tylko z czujnikiem lini lub tylko z czujnikiem wykrycia przeciwnika działają poprawnie. Co do zmiennej Word to jest to liczba całkowita bez znaku, od 0 do 65535, ok zgodzę sie bo zmienna Volt nie będzie całkowita i jest zaokrąglana do 0...
Niewiem czy dobrze rozumiem ale chyba będzie problem bo na moim kalkulatorze wychodzi że 16000000/15000=1066,7 a w nocie pisze że dla Timer1 prescaler może być max 1024 75 ? Czy to się jakoś zaokrągla do pełnej liczby?
Odnowie temat bo teraz mam bardzo podobny problem. Mianowicie chodzi o uzyskanie coś w rodzaju pętli histerezy czyli mając zmienną np i=13,14,15,16,17 chcę zaokrąglić ją do dziesiątek (teraz już żaden problem) jednak chcę się pozbyć migotania cyfr (gdy zaokrąglamy liczbę 15 uzyskujemy 10 a gdy 16 wychodzi już 20). Moje pytanie to: czy jest sposób na...
Witam. Założenie jest proste czyli zwykły licznik w zakresie 0 - 99 km/h. Czujnikiem ma być powiedzmy kontaktron. Niestety mam problem z napisaniem programu. Wg mojej koncepcji przerwanie od timera ma zwiekszać stan zmiennej co 1ms. Po wykryciu sygnału od czujnika wartość czasu ma być przepisana do kolejnej zmiennej i dalej liczona dopiero predkość...
O zasilaniu czy sprawności kodu nie pisałem z prostych przyczyn: Piszącego w Bascom interesuje tylko to by program działał a nie ciągnął mało prądu (zasilanie bateryjne i Bascom? Nigdy nie słyszałem by ktoś to łączył) Piszącego w Bascom interesuje by progam działał niezależnie czy musi użyć procka z 16kb czy 32kb Ja wolę by program mieścił się w 1kb...
Witam serdecznie! Mam problem z inkrementacją zmiennej Z, ponieważ wszystko opiera się o dokładność przedstawiania liczby zmiennoprzecinkowej. Zamiast 0,1 pokazuje 0,09. Próbowałem już fusing(), frac() (wskazywanie liczby po przecinku, chciałem tą resztę zaokrąglać round() ) , może format() ale tu trzeba non stop konwertować zmienne na znaki z liczb...
Co do kolegi pierwszego: wcale nie chce żadnej wiekszej dokładności. 200 x 0.0025 = 0.5 i to bez łaski - nie wiem dlaczego procesor wylicza coś dalej poza mnożnik 0.0025 przecież powinien operować tylko wielokrotnościami tej liczby. O zaokrąglaniu to wiem ale myslałem, że nie trzeba bedzie tego stosować. Kolega drugi: Takie podstawienie jak napisaleś...
Problem polega na tym że program pisze w asm - w bascomie też nie miałem problemu ale za duży kod - brakuje pamięci. Może ktoś wie czy algorytm ADD-3 można zastosować do liczb powyżej 8bit - zamiana 32bitowej liczby na BCD też by załatwiła sprawę. :arrow: natalia. Autor wyraźnie napisał jakiego języka programowania chce użyć(używa). ... 3. mnożysz...
Witam Mam problemy z fazami w domu. chciałbym mieć stały pomiar wyświetlany na LCD i w przypadku przekroczenia napięcia 240V zapalaną diodę led podpiętą do nóżek procka(docelowo będą to przekaźniki) i sygnał dźwiękowy na syrence. Wykonałem w bascomie miernik faz na atmega8, tryb zaokrąglania wyniku zaczerpnąłem z jednego kodu z forum. Płytka z układem...
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
Nie potrafię wstawić komendy, która zaokrągla wynik do 2 miejsc po przecinku. Cały program (bez zaokrąglania) wygląda tak: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektywy mikrokontrolera $crystal = 8000000 'informuje kompilato Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E...
Nie bardzo rozumiem Twoje uśrednianie: Skoro U2=C to po pętli For U2 będzie równe U2*9. Następnie dzielisz to przez 8 za pomocą operacji Shift, więc w efekcie końcowym U2=U2*9/8. Czyli tak naprawdę to nie jest uśrednianie, tylko przemnożenie pobranej próbki przez współczynnik 9/8. Uśrednianie (na zasadzie filtra dolnoprzepustowego) powinno wyglądać...
Nie używałem nigdy BASCOMa, ale chyba powinno się dać w nim zrobić coś takiego: wynik = round(liczba*100)/100
Wydaje mi się że to nie tego jest powód bo na wyświetlaczu mam w 95% czasu wynik 151.352111816* i raz może na 30 sekund mignie dokładnie 90.0* i z powrotem jest tamta liczba dokładnie taka sama, gdyby co chwila była inna liczba to owszem sam bym stwierdził ze to niedokładność pomiarów. Poza tym ja licząc kalkulatorem zaokrąglałem każdy wynik (licząc...
Po konwersji część ułamkowa zostaje "utracona". Zmienna przyjmuje wartość jedynie części całkowitej bez zaokrąglenia, czyli: 2,9 (single) po konwersji na integer to 2
Nie znam się na Bascomie, ale chyba po prostu zadeklarowałeś omyłkowo zmienną Temp jako Byte zamiast Int i nie pozwala ci to na wyrażenie odpowiednio dużych wartości. Przed podzieleniem przez 100, dodaj do otrzymanej wartości 50, tj. zamiast: Pomiar = Timer1 * 0.60 zrób: Pomiar = (Timer1 * 60 + 50) / 100 - uzyskasz sensowne zaokrąglenie w górę...
Witam. Wybrałeś dość trudny temat na początek nauki 1./ przed wysłaniem danej na wyświetlacz skasuj go instrukcją CLS. 2./ pomiary z przetwornika różnią się, należałoby wykonać np. 10 pomiarów co 25ms i wyciągnąć średnią. 3./ wynik aby był czytelny należy zaokrąglić do np. dwóch miejsc po przecinku można zastosować funkcję Fusing
Dzielisz liczbę przez 100, masz setki. Dzielisz przez 10, masz dziesiątki ;-) Jeśli będziesz operował na byte to powinien zaokrąglić. Dim A As Byte Dim A100 As Byte Dim A10 As Byte Dim X As Byte 'zmienna pomocnicza A = 235 A100 = A / 100 X = A100 * 100 A = A - X A10 = A / 10 X = A10 * 10 A = A - X
to nie tak ze musisz wpisac 8 musisz policzyc cos takiego [czestotliwosc_zegara]/16/[predkosc_tran... ten wynik wpisujesz do rejestru UBRRL ( i mozliwe ze starszy bajt w UBRRH - sprawdz w dokumentacji) wiec podstawiajac swoje dane pod ten wzor uzyskalem np. 7,8988748 do UBRRL wpisane zostanie np. 0x07 a nie odcinając końcowki tylko zaokrąglając...
A jeszcze mam takie pytanko o zaokrąglenia ponieważ funkcja ROUND nie do końca prawidlowo działa. Powidzmy otrzymuję wynik liczbowy z przetwornika ADC, dzielę go przez powiedzmy 3 i mnożę przez 100. Liczba po przeliczeniu to powiedzmy 325.4286. Jeśli zastosuję na tej liczbie funkcje ROUND mój wynik to 325 .0 Nie mam pojęcia jak się pozbyć tej kropki...
To nie w tej linijce - gdzieś wcześniej jest komenda fusing - o niej poczytaj nieco
Witam Mam taki problem: chciałbym sterować Ad9850 w taki sposób jak to przedstawia rysunek http://www.astat-emc.com.pl/grafika/test... Co mam na myśli, chcę to sterować tak: częstotliwość wzrasta do pewnej wartości następnie maleje coraz wolniej aż do zera i znów zaczyna wzrastać najpierw powoli później z pewną stałą wartością do jakiejś...
Tzn co konkretnie? Przypisać? Można: Zm_integer = Zm_single Oczywiście BASCOM dokona zaokrąglenia.
(A). Czy w Compare0a = 186 mogę wstawić liczbę w zakresie 0-255? (B). by uzyskać interwał =~100ms to 9 600 000Hz/ 1024 /37,5 (połówek pewnie nie można używać wiec zaokrąglę do 38 to będzie 247Hz (C). natomiast dla interwału 50ms to 9 600 000Hz/ 1024 /75 to będzie 125Hz czy dobrze to rozumiem? Nie dobrze , .. (at)A. -formalne/teoretycznie możesz w Compare0a...
Odjąć od badanej liczby jej zaokrąglenie, jeśli wyjdzie 0 to jest całkowita, jeśli nie to nie;)
Witam, już wcześniej na podstawie tego fragmentu kodu, który podałeś mówiłem, że program ten wykorzystuje płynne sterowanie jasnością tylko ty tam wstawiłeś stałą o wartości 70. Mówiłem też, że skoro nie wiadomo jakie jest taktowanie procka to ciężko powiedzieć co z czego wynika. Ale teraz widać jak na dłoni potwierdzenie tego co pisałem, jest to typowe...
musze przyznać, że i tak dostałeś bardzo duże zbliżenie... Do twoich celów najlepszym sposobem i najpewniejszym będzie użycie zaokrąglenia. Pewnie bascom posiada tą funkcję.
To sobie zapisuj w postaci całkowitej i pamiętaj ile miejsc po przecinku dla wszyskich liczb jest przesunięcie, a resztę zaokrąglij.
Masz ATmega8, czyli masz ADC i masz timer połączony z pinami I/O, czyli za pomocą timera możesz generować przebiegi na wyjściu. Rzecz wręcz banalna. Za pomocą ADC wykonujesz pomiar napięcia. przeliczasz go na okres, albo odrazu częstotliwość, nie wiem jak to w bascomie wyglada. W każdym razie częsottliwość ustala się przez zapisanie w odpowiednim rejestrze...
Witam Mam liczbę integer 47 którą zamieniam na single i dzielę przez 10 , wynik to 4.69999806 . I teraz w jaki sposób uzyskać dwie liczby integer całkowitą czyli 4 i ułamkową po zaokrągleniu czyli 7 ?
Witam ! Jak zaokrąglić, a w zasadzie obciąć cyfry w liczbie do 0.1 w Bascomie ? Zrobiłem tak: a=1.1625 'liczba przykładowa b=a*10 b=int(b) b=b/10 lcd b efekt np. 1.099999 To zapewne wynika z niedoskonałości operacji na liczbach zmiennoprzecinkowych. Może ktoś wie jak to zrobić bez sztucznego sprawdzania i dopisywania końcówek. PL
No ale przecież 133/16 to nie jest 41998000! Bo to po pierwsze nie jest dzielenie w systemie 16stkowym tylko dziesiętnym w programie. Poza tym brakuje koledze funkcji fusing(), a jak podzielimy 133 w hexie czyli 307 w dziesiętnym systemie przez 16 to otrzymamy 19stopni i mniemam że taka temperatura jest ustawiona. A druga linijka jest zła ze względu...
Też by tak mogło być ale... Fclock nie jest liczbą wielokrotną 2, co skutkuje że podczas dzielenia 2^32/Fclock już wychodzi mi liczba ułamkowa i dochodzi do zaokrąglenia lub obcięcia miejsc po przecinku (w najprostrzej wersji). Potem po przemnożeniu niedokładność wzrośnie. Ale chyba nie bede wyważał otwartych drzwi i pozostawię konwersję na zmiennoprzecinkowej....
Witam wszystkich. Problem kształtuje się następująco: W programie wynik wrzucany jest do zmiennej typu SINGLE. Jest to wartość prędkości na poziomie około 2 m/s Wynik wyświetlany jest na wyświetlaczu LCD zawsze do 9 miejsca po przecinku: Np. 1.945674391 chciałbym, aby wyswietlanie było tylko dwa miejsca po przecinku, czyli np. 1.94, nie jest istotne...
Tak wiem że nie wygaszam go całkowicie. W ogóle z tym był majstersztyk, aby ta część programu działała prawidłowo otóż: Zakres PWM jest od 0 do 255, niby łatwo powiedzieć, podziel przez 2,55 to mi wyjdzie ładne 100% ale przy podziale 254/2,55 wychodzi mi 99,........ - ładny ułamek, a zaokrąglenie tego przy pomocy funkcji w bascomie zajmuje aż 10% pamięci,...
Przetestuję i zobaczę, ale dla częstotliwości zegara taktującego atmegę równej 16MHz to powinno dość krótko chyba trwać. Zobaczę i zmierzę w praktyce. Szczerze mówiąc nie wiem, ile będzie trwało. Nie wiem też, jak to skompiluje Bascom. Najlepiej sprawdź. Tablicę można zrobić, tylko do tablicy nie mogę wpisywać wartości Single, a zmienna całkowita Integer...
Możesz liczyć za pomocą jednego z nich... Nie znam się na silnikach mechanicznych. Nie wiem jak to jest rozwiązane. Ale dla rozwiązania "liczenie impulsów" jeżeli jest 1 impuls to jeszcze gorzej, bo przy 100ms będzie ich o połowę mniej więc dokładność będzie jeszcze dwukrotnie niższa. Więc jedynie "liczenie czasu pomiędzy impulsami". Powodzenia życzę.....
Najpierw zamień godziny na minuty potem dodaj do tego minuty. Następnie trzeba sprawdzić czy minutyFull nie są przypadkiem mniejsze od minuty Start ( przypadek 23:00 -> 1:00 ). Wtedy przedział czasowy należy policzyć jako czas do północy + czas po północy. Podzielić uzyskany przedział czasowy na liczbę stopni sterowania PWM. Odliczanie czasu do Full...
m.bartczak : Zauważ, że jak by nie patrzeć zmienna A posiada pewną wartość, oba dodawania powinny dać ten sam wynik, problem polega na tym, że wygląda to tak, jak by dodawanie powodowało zmianę jednego z argumentów - tak jak by funkcja realizująca dodawanie nie robiła kopii zmiennej A tylko na niej robiła operacje. Dodatkowo zaokrąglenie 0.0001669...
Witam! Mam tu taki kawałek kodu: Dim Tick_time As Single Dim Length As Single Dim Mps As Integer Dim Fps As Integer Dim Fff As Single Dim Tick_count As Integer Dim Czas As Single Tick_time = 0.000096 Czas = Tick_count * Tick_time Mps = Length / Czas Fff = Length / Czas Fff = Fff * 10 Fps = Fff / 3 Tick_count = 0 Cls Lcd Mps Lcd " m/s " Lowerline...
Poprawiłem błędy, w tym ten związany z częstotliwością a nie z okresem sygnału. Dodałem zmienną typu Single Czestotliwosc, do obliczeń zmiennoprzecinkowych. W Timer0 wpisuję na starcie 131, Config Int0=Rising. Czy dobrze to robię, czy we właściwych miejscach kodu? Pytania: Jak zaokrąglić wynik ze zmiennej Czestotliwosc do dwóch miejsc po przecinku?...
Zadanie można rozwiązać na kilka sposobów: 1. Powielacz częstotliwości razy 100 zrealizowany na układzie pętli fazowej 4046, potem zliczasz przez 1/10 s częstotliwość wyjściową generatora VCO pętli i wyświetlasz ją z przecinkiem między cyfrą dziesiątek i jednostek. 2. Pomiar okresu sygnału przy pomocy mikroprocesora np. Atmega8, program piszesz w języku...
Tzn. ja napisałem tego potworka na podstawie wzoru: [syntax=text] Wieczny kalendarz - oblicza numer dnia tygodnia na podstawie daty dzień tygodnia = ([23m/9] + d + 4 + y + [z/4] - [z/100] + [z/400] - 2 (if m >= 3) ) mod 7 gdzie [ ] oznacza dzielenie bez reszty z zaokrągleniem w dół mod - funkcja modulo m - numer miesiąca (od stycznia = 1 do grudnia...
I jeszcze jedno ten program natychmiast poprawisz używając symulatora w którym co pętlę wyświetlisz wartości wszystkich zmiennych. A jak myślisz dlaczego na początku tych kodów jest $sim ? co z tego , że później potrzebujesz zmienną Z Nie później, a w trakcje wykonywania pętli. W tej pętli ta zmienna bardzo szybko się przepełni bo jest zbyt małej pojemności...
http://obrazki.elektroda.pl/8074661000_1... Witam. Mam na imię Michał. Uczę się w pierwszej klasie technikum na profilu: elektronik. Zdecydowałem się po raz pierwszy opisać w tym dziale swoje urządzenie. Chciałbym przedstawić układ testowy modułu GSM ZME3030 (znany też jako MG3030). Docelowo moduł ten będzie współpracował z popularnym...
Witam goreckidiy. Twój projekt spełnia funkcę, którą chciałeś osiągnąć. Ale jest ale :) Niezwykłe zbiegi okoliczności sprawiły, że to działa (mam nadzieję) prawidłowo. Spójrz na zdjęcie. http://obrazki.elektroda.pl/9690955600_1... W programie masz coś takiego:[syntax=text]'*********WAŻNE!!!*... data1 = data_in - 1048574 'tyle suwmiarka...
Podłączać oczywiście, że możesz, ale nie zawsze jest to dobre rozwiązanie. Wewnętrznie zwarta jest tylko masa cyfrowa i analogowa i to nie we wszystkich mega8 (łatwo to sprawdzić miernikiem). AVCC i VCC w żadnym AVRe nie jest zwarta. W nocie do megi8 masz pokazane jak podłączać AVCC (dławik + kondensator). Napięcie zasilania jest za mało stabilne na...
ok, no tak przecinek... wstyd się przyznawać :) dzięki bardzo za szybka odpowiedz. Doradzam , by dla tak prostych obliczeń jak również niewielkiej pamięci programu , zpomnieć o istnieniu SINGLE i FUSING - no chyba że potrzebne Ci są super dokładne dane(zaokrąglenia).Szkoda flsh'a ;) Można np. $regfile = "m8def.dat" $crystal = 8000000 Config...
Oto kod jednego z programów z którym mam problemy: 'C029f.bas Generator impulsów prostokątnych ' UWAGA! Wejsciem EN(able) modułu LCD steruje końcówka PB.1 ' do wyjscia PB.3 dołączona przez rezystor 1k anoda diody LED (katoda do masy) Dim Impuls As Word , Przerwa As Word , Czas As Single , Zmiana As Bit , Napis As String * 9 Config Timer1...
Witam ponownie No ja walczę z całym kodem, żeby go trochę zoptymalizować, ale nie bardzo się daje. zajęte 77% a nie mam konwersji danych z sht11 jeszcze zrobionych, coś mi się wydaję, że będzie trzeba się przesiąść na M32. Przykładem może być np. zapis temperatury z dokładnością do jednego miejsca po przecinku. Przecież wystarczy do tego zwykły, dwubajtowy...
czy będziesz miał temperatury ujemne? i co oznacza zmienna "Liczba" Liczba jest typu byte (0-255) jak ma być <0 ? odczyt temperatury: w kodzie ująłem zmienną znak dim znak as bit znak = 0 wartość dodatnia znak = 1 wartość ujemna znak = 0 'zakładam że wartość jest dodatnia 1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread()...
Czyli coś takiego ? Chcę aby dystans też obliczany był z tych pierwszych nieuśrednionych jeszcze bo potem już z uśrednionych. [syntax=vb] Wartadc = Getadc(6) Paliwo = 200 '20 litrow na start Restore Dane If Wartadc > 175 And Wartadc < 579 Then For Licz = 1 To 177 'bo 177 wpisow Read Tab If Tab < Wartadc Then Decr Paliwo Next Licz Else Paliwo...
'Minął ponad rok'... i ciągle robisz ten sam błąd(!). Ponieważ ciągle mam tę samą książkę - autor - Marcin Wiązana. Czyżby autor tej książki się mylił? Przecież to z Jego książki zaczerpnięty jest fragment kodu odmierzający 1 sekundę. Mało tego - ten fragment kodu funkcjonuje poprawnie! A Ty mi piszesz, że LOAD i "=" jest ignorowane przez compiler...
Witam Miałem podobny problem z wyświetlaniem. Trzeba prawidłowo przypisać typy zmiennych a formatowane umieścić w poleceniu LCD "123";Fusing(X, #.##);"123". Tylko takie umieszczenie formatowania rozwiązało mi problem z wyświetlaniem całkowicie. Odpowiednie akcje na zmiennych należy wykonywać po zaokrągleniu do całości instrukcją np Round(Vol) lub Int(Vol)...
https://obrazki.elektroda.pl/7406837400_... Chyba siła wyższa musi w tym maczać palce, bo przymierzałem się od kilku lat(!) z publikacją tego projektu i ciągle albo brak czasu albo skleroza... a tu trafił się konkurs no to jak nie skorzystać :) Urządzenie o, którym mowa w temacie to bardzo prosty i niezwykle przydatny (przynajmniej...
Łap. Voltomierz będzie działał stabilnie, ale wiedz, że Ty masz błąd logiczny w swoim kodzie. Pomysl. Jeśli u Ciebie "Steps" to zaokrąglone do całych poprzez Round "Angle" to jest to wartość ustalana przez napięcie czyli w pewnym momencie będzie stała. A tu zmienna "Kroki" jest porównywana z ta zmienną ""Steps", ale po porównaniu dodajesz lub odejmujesz...
A jest możliwość zapisu danych w do MS Excela lub do csv w postaci tabel? Dlaczego 11 bajtów przy czterech naraz (a nie 8)? Niestety nie ma możliwości zapisu do excel'a, i ja nie potrafie tego zrobić. Wykres można zapisać do pliku *.grf Po otwarciu go w notatniku wygląda tak: Kurve 255 1462 0.00000000000000E+0000 0.00000000000000E+0000 9.99999999999446E-0004...
(...)po "polskiemu" mało o tym jest. To trzeba się angielskiego zacząć uczyć :D Gwarantuje Ci, że to o wiele ułatwia życie. Ja dopiero po przejściu na poziom w miarę dobry z języka byłem wstanie zrobić cokolwiek poza miganiem diodą, napisami na lcd i termometrem :D ---- ale że mam dziś dobry dzień do dobrych uczynków... na przykładzie at24c16: http://obrazki.elektroda.pl/1832315300_1...
http://obrazki.elektroda.pl/1927979800_1... Witam. Będzie to moja pierwsza konstrukcja, którą postanowiłem Wam zaprezentować, choć nie pierwsza, którą wykonałem. Jest to ukończony zasilacz oparty na znanym większości osób projekcie z wprowadzonymi pewnymi zmianami co do wersji oryginalnej. Pierwszy mój zasilacz był tranzystorowy. Jego...
http://obrazki.elektroda.net/37_12172812... Dzisiaj chciałbym przedstawić zegarek który zrobiłem dla swojej drugiej połówki. Zegarek powstawał przez prawie 3 tygodnie, w głównej mierze przez dopracowywanie softu napisanego w Bascomie - zajmuje 8190 bajtów. Ostatnie 4 dni zajęła mi obudowa. Ale po kolej. Sercem układu jest Atmega8, która odpowiada...
Podaje program z komentarzem. $regfile = "attiny2313.dat" 'najpierw określamy typ proca $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował Config Portd = &B11111111 ' ustawienie całego Portu B jako wyjscia Portd = &B11111111 ' stan spoczynkowy wszystkich wyjsć ustawiony na 1 Config Portb = &B0000000 ' ustawienie...
Witam Tworze sobie prosty termometr na wyświetlaczu 7 segmentowym. Napisałem kod w bascomie i wrzuciłem na płytę testowa z atmega32 i śmiga jak trzeba. Kolejnym krokiem było wrzucenie tego na na atmege8 (zmieniłem m32def.dat na m8def.dat i taktowanie na 1MHz ) atmega świeża , fusebity nie zmieniane. No i jak zwykle u mnie to bywa, rzecz nie działa....
Jeżeli między znakami masz jedną kolumnę odstępu, to na pierwszej stronie będą dwie, a nie jedna kolumna z drugiego znaku, no ale to szczegół ;) Nie wiem, jak masz zapisaną "czcionkę". Jak na moje oko, to może być po bajcie na każdą linię i takich linii 7, jedna po drugiej, potem następny znak itd. Nieużywane bity (te z prawej, znaki wyrównane sa do...
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
https://obrazki.elektroda.pl/6308270300_... https://obrazki.elektroda.pl/7950037100_... https://obrazki.elektroda.pl/2820859900_... https://obrazki.elektroda.pl/4982848200_... https://obrazki.elektroda.pl/9158760600_... https://obrazki.elektroda.pl/9318570600_...
Triangle Deluxe - Zaawansowany system oświetlenia http://obrazki.elektroda.net/26_11981998... Przedstawiam mój kolejny bardzo długo zresztą wyczekiwany projekt. Jest to jak dotąd największe z moich przedsięwzięć wykonane zupełnie samodzielnie od początku do końca. Jest też najdroższe gdyż z grubsza licząc kosztowało ponad 1000zł. Wstęp. Było...
ZDALNIE STEROWANY SAMOBIEŻNY MANIPULATOR OPERACYJNY DO ZADAŃ SPECJALNYCH http://obrazki.elektroda.net/20_12096489... Chciałbym zaprezentować mój kolejny duży projekt, będący zarazem moją pracą inżynierską. Praca jest dość złożona, wymagała dużego nakładu pracy, wykorzystania narzędzi do projektowania i obejmowała głównie trzy nurty - mechanikę,...
Witam serdecznie! Najpierw może podzielę się kodem: [syntax=basic4gl] $crystal = 8000000 $regfile = "m644pdef.dat" Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Dim Plynnosc As Integer Dim Plynnosc_r As Single Dim Plynnosc_t As Single Dim Reszta_pwm1b As Integer Dim Ustaw_czasu_ms As Integer...
Witam ,właśnie zaczynam wzmagania z operacjami matematycznymi w BASCOM (jak dotąd nie były mi potrzebne) ;) Zauważyłem pewne zjawisko ,że po przekroczeniu 90% Flash przy kompilacji zaczynają się dziać dziwne rzeczy ,jakby stos czy ram niszczył zmienne i pojawiają się dziwne wyniki ,stąd z ATTINY2313 ,przeskoczyłem na Atmegę8. Ten sam program bez jakichkolwiek...
funkcja zaokrąglać zaokrąglać liczba zaokrąglać góra
kupić układ scalony skrzynia automatyczna dodge prędkość sprinter
zderzak naprawa zderzak naprawa
Jak zmniejszyć prędkość w skuterze elektrycznym? Ford Transit 2.4 2011 nie odpala po wymianie filtra