Dzieląc (w zasadzie to mnożąc bo mniej zajmuje pamięci niż dzielenie) przez odpowiednią wielokrotność 10 i odejmując. Na kartce sobie rozpisz co od czego odjąć i co przez co pomnożyć i będziesz wiedział co i jak. Musisz z liczby wydobyć jednosci,dziesiatki,setki,tysiace..itd.
Jak koniecznie ze stringu chcesz wyłuskać pojedyncze cyfry, to użyj "MID" znak = MID( zmienna_tekstowa , początek [, ilość znaków] ) Pozostaje skonwertować stringi do zmiennych przez "VAL". Naturalnie prościej zrobić jak pisał poprzednik.
2*10 + 3
przykład zmienna1=liczba.8 oznacza ze zmienna1 przyjmie wartość bitu osiem ( tu będzie 1) twojego słowa 101101100 licząc od prawej strony, liczenie zaczynamy od pozycji zero.
34 podziel przez 10 a zostanie Ci 3. Reszta z dzielenia chyba funkcja Mod da Ci 4.
Proszę bardzo oto one: Dim W1 As Long Dim W2 As byte Dim W3 As byte Dim W4 As byte Dim W5 As byte Dim W6 As byte Dim W7 As byte Dim W8 As byte Dim W9 As byte Dim W10 As byte Dim Ktorywysw As Byte Dim Wynik As Long Ale już wiem o co chodzi zmienna wynik jest zmienna long i takie same muszą być zmienne w1-w10.
Kłania się po prostu - najprostsza matematyka ;) masz np liczbę 123 i chcesz wyodrębnić poszczególne cyfry żeby je po kolei wrzucić na wyświetlacz LED 1. dzielisz liczbę 123 przez 100 - resztę z dzielenia odrzucasz i pozostanie ci cyfra odpowiedzialna za setki czyli 1 - prawda ? ;) 2. odejmujesz od liczby 123 liczbę 100 - bo wyżej już wykonywałeś dzielenie...
Można też to robić metodą wielokrotnego odejmowania: X - liczba wejściowa typu integer (zakładamy, że z zakresu 0-9999) Sub Int2Bcd(X AS INTEGER) Local X1 AS INTEGER ' zmienne typu BYTE globalna zadeklarowane w programie głównym CT=0 ' Cyfra tysięcy CS=0 ' Cyfra setek CD=0 ' Cyfra dziesiątej CJ=0 ' Cyfra jednostek IF X=0 THEN RETURN...
Cyfra(1) = liczba / 1000 'tysiące Cyfra(2) = liczba Mod 1000 Cyfra(2) = Cyfra(2) / 100 'setki Cyfra(3) = liczba Mod 100 Cyfra(3) = Cyfra(3) / 10 'dziesiątki Cyfra(4) = liczba Mod 10 'jedności to procedura dla 4 cyfrowej liczby można ja rozszerzyć na tej zasadzie do dowolnej ilości. Zawsze działa bezbłędnie
Mały przykład: Dim Liczba As String * 5 , Cyfra As String * 1 Dim Pierwsza As Byte , Druga As Byte , Trzecia As Byte , Czwarta As Byte ... Liczba = "21.58" Cyfra = Mid(liczba , 1 , 1) Pierwsza = Val(cyfra) Cyfra = Mid(liczba , 2 , 1) Druga = Val(cyfra) Cyfra = Mid(liczba , 4 , 1) Trzecia = Val(cyfra)...
Witam, mam taki problem... ostatnio zacząłem uczyć się bascoma i teraz probuje go zmusic do tego, by z cyfr odczytanych z klawiatury matrycowej (zalozmy, ze przechowuje je np zmienna Cyfra typu Byte) stworzyc liczbe (np. Liczba typu Integer)... W C bym ja zapisal do tablicy i w odwrotnej kolejnosci pomnozyl przez kolejne potegi 10-ki a potem dodal......
W sumie można, lecz autor chciał mieć format byte, domyślam się że potrzebne to mu było do wyświetlania liczby na wyświetlaczach siedmiosegmentowych. Jeżeli tak, to Ciekawy jestem czy autor korzysta z lini Data i instrukcji lookup(), czy może z select case?
mam pytanko : moglbys mnie troszeczke bardziej nakierowac.
16 (liczba nie cyfra) ponieważ temperatura odczytywana jest z dokładnością do 4 cyfr po przecinku, dlatego odczytaną wartość trzeba podzielić przez 16 (przesunąć o 4) Bd(1) = 1wread(9) tu do Bd jest wpisanych 9 bajtów ( liczba bajtów w nawiasie) odczytanych przez 1wread(9) z czego 2 pierwsze to temperatura
Mid i val ;) Dim Liczba As String * 4 , Cyfra As String * 1 Dim pierwsza As Byte , druga As Byte , trzecia As Byte , czwarta As Byte liczba = 1234 Cyfra = Mid(liczba , 1 , 1) pierwsza= Val(cyfra) Cyfra = Mid(liczba , 2 , 1) druga = Val(cyfra) Cyfra = Mid(liczba , 3 , 1) trzecia = Val(cyfra) Cyfra = Mid(liczba...
Tak ale zapisane binarnie. A to zupełnie co innego w tym przypadku. Jeśli chcesz zapis binarny to robisz binarny. A czy to będzie nkb czy bcd to już inna kwestia. W twoim kodzie jest wszystko ok. Kod jest kodem dziesiętnym w zapisie binarnym. Więc liczby drukowane są po "naszemu" używając cyfr. Jeśli chcesz BCD wydrukować w zapisie binarnym to najpierw...
Jak chcesz wpisywać liczbę z klawiatury to powinieneś uwzględniać wagę poszczególnych składników tej liczby. Pierwsza cyfra z trzech to, waga=100 zatem key*100, przy następnej cyfrze waga=10 zatem key*10, a na koniec samo key bo waga=1 i operacja mnożenia jest zbędna, jak to wszystko zsumujesz to otrzymasz ostateczną liczbę. Np. liczba 467 to 4*100+6*10+7....
Najprawdopodbniej w tej zmiennej coś jest jeszcze na końcu. Mogą być znaki niewidoczne, np CR lub /i LF. Spróbuj wyświetlić długość tego stringa (w Bascomie chyba funkcja Len) i wtedy bedziesz wiedział czy aby tam jest tylko liczba. Możesz spróbować też konwertować tego stringa po jednej cyfrze, a więc robisz pętlę w której wycinasz fragment stringa...
Czy jest funkcja szukania samych cyfr z buforu rs232? To są odpowiedzi z modułu SIM800. Bazuję na czymś takim: If Pinc.3 = 0 Then Waitms 750 Print "AT+CCLK?" ; Chr(13) ; 'zapytanie o datę i czas Waitms 50 Date_str = Mid(odb_txt , 20 , 8) Time_str = Mid(odb_txt , 29 , 8) End If Ale coś się dzieje i nawet wyświetla litery z odpowiedzi modułu. Da się jakoś...
Policzyłem dla AVCC, to jednak nieważne. Zobacz jak korzystać z symulatora w takich sytuacjach. Zmieniłem trochę Twój kod (miał też błąd w obsłudze przerwania bo zaraz pod Select case miałeś ustawianie portów bez żadnego Case. Przeniosłem więc tę linię powyżej Select Case) Wracając do symulatora to każdy ruch suwaka w symulatorze powoduje teraz printowanie...
dzielenie całkowite + modulo. Przy dzieleniu przez 10 uzyskasz górną cyfrę, przy modulo 10 dolną.
Dokładnie taki sposób prezentacji czasu wykorzystałem jakiś czas temu tutaj: http://www.elektroda.pl/rtvforum/topic22... Tyle, że to bascom...
Nasza sztuczna inteligencja słusznie zauważyła możliwość przekręcania się zmiennej "Wyswietlacz" ale to nie to... Przyjrzałbym się $swstack = 8 czy nie zwiększyć np na 16. Kolejny trop to przeliczanie tutaj: [syntax=arduino] '************************* 'Rozbijanie Liczby Na Cyfry Cyfra_ok(1) = Liczba_ok / 100 Temp_ok = Liczba_ok Mod 100 Cyfra_ok(2) =...
Nie ma tego w Helpie bo to nie jest żadna funkcja czy komenda. Po prostu to narysuje spacje na poprzednim texcie jeżeli przypadkowo napis by się skrócił. Bez tego po skróceniu napisu nowy napis będzie wyświetlony dobrze, ale na LCD pozostanie trochę starego napisu co da wrażenie wyświetlania większej liczby. Ale to jest sposób pośredni. Najlepiej użyć...
zastosuj funkcję rnd Przeznaczenie: Zwraca pseudolosową liczbę z określonego zakresu. zmienna = RND( zakres ) gdzie zmiennadowolna zmienna numeryczna, w której znajdzie się wygenerowana liczba pseudolosowa, zakresliczba określająca górną granicę generowanych liczb. Użyj później tej liczby do wysterowania portów ledek i masz problem z głowy. Poczytaj...
Jest to kod z Pana Wiązani być może nieudolnie przerobiony. Oryginał ma tak: Dim licz_8ms As Byte Incr Licz_8ms If Licz_8ms = 125 Then ............. I to działa, czyli ja nie mogę używać liczby stałoprzecinkowej . No dokładnie. To działa tylko dla Byte (i podobnych). Chociaż typ danych Single mówi, iz może przyjmować wartości stało i zmiennoprzcinkowe....
ok, tylko najpierw uporam się z przyciskami i nastawami :P Dodano po 28 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output 'podłaczony wyświetlacz 'Config Pinb.0 = Output ' anoda 1 źle! nazwa pin służy do odczytu wartości 'Config Pinb.1 = Output 'anoda 2 źle! aby ustawić należy się posłużyć nazwą Portb.x 'Config Pinb.2 = Input...
[syntax=basic4gl] $regfile = "m644pdef.dat" $crystal = 16000000 $baud = 9600 $hwstack = 64 $swstack = 64 $framesize = 64 'konfiguracja pinow wyswietlacza LCD; inicjalizacja wyswietlacza Config Lcd = 20 * 4 Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Cursor Off Noblink Cls Dim Wart_adc...
Masz "strange hours" ;] ;] BCD polega na przedstawieniu liczby dwucyfrowej w bajcie, ale rozpatrując każdą cyfrę na oddzielnim nibblu (4 bitach). Dodatkowo, standardowy kod BCD definiuje, że na każdym z nibbli w bajcie nie może wystąpić liczba większa niż 9, tj. na bajcie opiszesz tylko maksymalnie 100 wartości (0..99): 47: 0100 0111(bcd) - 0010 1111(bin)...
Witam. Wie ktoś jak rozdzielić liczbę np. 18.6 na poszczególne liczby tj 1 , 8 , 6. Liczba ta to temperatura odczytana z ds18b20. Pozdrawiam.
Z poziomu BASCOM-a też to działa . http://obrazki.elektroda.net/59_12213803... Log nie pokazuje, że pamięć EEPROM jest modyfikowana, ale zmiana w linii DATA ostatniej cyfry i rekompilacja programu skutkuje wyświetleniem innej liczby na wyświetlaczu podczas uruchomienia programu. Oczywiście na początku w programie znajduje się wymagane $EEPROMHEX.
Kolega potrzebuje po prostu wartości liczby w kodzie BCD jak pisał poprzednik i BCD, HEX i liczby dziesiętne pokrywają się w zakresie 0-9. W takim razie wystarczy wysłać 4 najmłodsze bity na wejście 7447 albo całą liczbę bo i tak podrt wyjściowy jest podłączony tylko to 4 końcówek 7447. Co do wartości powyżej 10 to zaproponowałbym aby użyć wejścia BI/RBO...
Teraz problem zrobił się bardziej skomplikowany, jako zmienną mam liczbę np. 3,6 i chcę ją wyświetlić na wyświetlaczu... Ciężko mi to zrobić w basomie.
Na moje oko to: Aj3 = 0 If A.0 = 1 Then Aj3 = Aj3 + 1 End If If A.1 = 1 Then Aj3 = Aj3 + 2 End If If A.2 = 1 Then Aj3 = Aj3 + 4 End If If A.3 = 1 Then Aj3 = Aj3 + 8 End If A jeszcze lepiej: Aj = A And &B00001111 Ale to tylko do pierwszej połówki liczby (jednej cyfry dziesiętnej).
nie używam bascoma, wolę asemblera szybko sobie przetłumaczysz P0.0-P0.3 liczba w BCD (dana 1 bajtowa) P0.4,P0.5,P0.6 bazy traanzystorów zatem na port P0 daj liczbę chyba P0=liczba ; czyli 0000+4bity(pierwsza cyfra) ustaw P0.4=1 ;włączenie pierwszego wyświetlacza wait na port P0 daj liczbę ; czyli 0000+4bity(druga cyfra) ustaw P0.5=1 włączenie drugiego...
Witam Na atmedze obsługuje klawiaturę 4x4. Używam getkbd oraz look up. Działa ok. Natomiast zablokowałem się myślowe na problemie wpisania liczby np 3 cyfrowej. Wiem jak policzyć ta liczbę itp. Nie mogę wymysłem algorytmu żeby 3 kolejne naciśnięcia traktował jako składowe liczby. Naprowadzcie na jakiś działający algorytm. Może być taki ze po wpisaniu...
Kolego emarcus namieszałeś mi troszkę z tom funkcją ‘Str2digits’ ale nie umiem tego wyświetlić! Nie zrozumiaeś ’ni w ząb’ z tego co ci opisałem: Funkcja ta (Str2digits)_ zastępuje całkowicie twój rachunek umieszczony w subrytynie ‘Wpisz’, a zatem nie sa już potrzebne zmienne A, B, C i D reprezentujace poszczególne...
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
a może wysyłaj "0" "1" dla jedynki, "3" "5" dla 35, itd. Wystarczy wtedy pierwszą cyfrę pomnożyć przez 10 i dodać drugą. taki luźny pomysł ...
Myślałem o czymś takim :) Dim Ax(7) As Byte , X As Byte , Pozycja As Byte Dim Suma As Long Config Debounce = 100 ' lub ... jak kto woli ;) Poz Alias P3.7 Zmien Alias P3.5 Star Alias P3.1 Pozycja = 1 Cls Do Locate 1 , 1 Lcd "wprowadz liczbe" ; Pozycja Locate 2 , 1 For X = 1 To 7 Lcd Ax(x); Next X Debounce Poz , 0 , Incrpozycja...
NA "setki" "dziesiatki" i "jednosci" NIE WIEM JAK ZROBIC, zeby przy malych predkosciach (ponizej 10km/h) wartosc na wyswietlaczach byla zmieniana co 1 sekunde (4xtimer1) Dim Speed As Byte ' Prędkość Dim Tmp As Byte Dim I As Byte Dim Index As Byte Dim Mmv as Byte *** Rozbicie na 3 cyfry *** Dim Cyfry(3) As Byte Speed = 147 ' W Polsce to zakazane...
A jak ją przyciąć? Teoretycznie mam tak zrobione obliczenia, żeby wyszła liczba max 3 cyfrowa. Ale czasami zdarza się, że wynik wychodzi większy (np. na postoju impulsy wtrysku są zliczane, a przejechana droga jest 0, i jak przejadę np. 0,1m, i impulsów zliczyło sporo, to pierwszy wynik ma więcej cyfr, i robi się śmietnik).
ReadByte czyta mi tylko 2 cyfry i to z kosmosu, oczywiście wprowadziłem konwersję int na string do programu wcześniej wspomnianego
witam. Jeśli chcesz użyć mniejszego czasu opóźnienia to podawaj go w postaci waitus,czas czas po waitus oznacza mikrosekundy(1-65535). Pozdrawiam Dodano po 3 Cyfra(1) = liczba / 1000 'tysiące Cyfra(2) = liczba Mod 1000 Cyfra(2) = Cyfra(2) / 100 'setki Cyfra(3) = liczba Mod 100 Cyfra(3) = Cyfra(3) / 10 'dziesiątki Cyfra(4) = liczba Mod 10 'jedności spróbuj...
Bo nie napisałem do czego to będzie potrzebne.. Mianowicie losuje za pomocą funkcji RND jakąś cyfrę (na razie jest to liczba jedno cyfrowa) i jeśli uda mi się trafić w tą cyfrę, którą wylosował uProcesor, to dostajemy komunikat, że trafiliśmy. Chciałbym teraz rozszerzyć program na liczby dwu cyfrowe, więc będę potrzebował zmiennej LiczbaDwuCyfrowa.
Mam jeszcze jeden problem, mianowicie: Mam zmienną typu single U i przypisuje jej liczbę 2.56 chcąc ją zwiększać o 0.01 robię coś takiego U = U + 0.01 a potem wyświetlam to na LCD. Lecz pojawia mi się http://obrazki.elektroda.net/98_12637529... Wiem, że resztę cyfr mógł bym zamaskować na przykład poprzez instrukcje fusing. Lecz jeżeli dalej chcę...
Mam wyświetlacz 7-segmentowy podpięty jak niżej: A - P1.7 B - P1.6 C - P1.5 D - P1.4 E - P1.3 F - P1.2 G - P1.1 P1.0 - wykorzystane dowolnie wtedy liczbom odpowiadają odpowiednie sekwencje xxxx xxxx: 1 - 0110 0000 2 - 1101 1010 3 - 1111 0010 4 - 0110 0110 5 - 1011 0110 6 - 1011 1110 7 - 1110 0000 8 - 1111 1110 9 - 1111 0110 0 - 1111 1100 Mam cyfrę dziesiętnie....
W BASCOMIE 8051. Wytlumacz o co chodzi z tym przeliczeniem. chce miec kazda cyfre liczby (takze te po przecinku) w osobnej zmiennej
Musisz po wykryciu wciśnięcia przycisku czekać w pustej pętli na jego puszczenie. ...uprzedzając pytanie "jak" wrzucam moją propozycję kodu, przejrzyj, przemyśl, dorzuć do swojego programu. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 4 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7...
Łap bo jak zaczniesz z tym Multimaster to się nigdy z tego nie wygrzebiesz a odkrywasz tu koło na nowo :D Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serial in 0. Błędem natomiast jest jest używanie Serial out 0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print...
Witam. Jeśli mam procedurę rozłożenia liczby 4 cyfrowej na poszczególne cyfry (po to aby je później wyświetlać na 4*led 7-segment) co odbywa się w systemie dziesiętnym: cyfra(1)=liczba/1000 cyfra(2)=liczba mod 1000 cyfra(2)=cyfra(2)/100 itd.... a później pobierana jest liczba z tabeli odpowiadająca kodowi danej cyfry zamienionej na kod 7-segment: cyfra_wysw=cyfra(L)...
jeszcze daj po Portb = Cyfra(r) jakiś większy waitms (np. waitms 250) bo inaczej co 30 ms będzie Ci zmieniać liczbę i wyświetlacz nadal będzie szalał. Poza tym wszystko wygląda OK
a to bardzo proste :) powiedzmy, że impulsy liczy couter0 (pojemność 8 bitów czyli 0...255) deklarujesz cztery zmienne bajtowe, każda odpowiada cyfrze na wyświetlaczu i robisz obliczenia: np. liczbę jednostek będzie się obliczało tak - cyfra4 = counter0 mod 10 potem liczba dziesiątek, to jest trudniejsze :) - cyfra3 = counter0 / 10 : cyfra3 = cyfra3...
Generalnie powinieneś odbierać cyfry jako znaki ASCII i tak je odbierasz tylko wartość którą podajesz to wartość zamieniona na system dziesiętny musisz więc od wartości odjąć 48 (HEX 30) i otrzymasz cyfry od 0 do 9 w twoim przypadku 49-48=1 48-48=0 (10)
Witam. .............. Program testowy ma działać tak, na początku na sekundę wyświetla 36 na wyświetlaczach (i to zawsze się dzieje), później ma liczyć od 00 do 99, i tak w kółko. Pozdrawiam Zmieniłem trochę twój code. -Nie testowany.... (tylko symulator)........ [code][syntax=basic4gl] ' Example for 2 digit LCD display (Common Anode) ' Anodes are...
Nie bardzo mogę sobie wyobrazić jak masz te wyświetlacze podłączone. Ja bym zrobił tak że 3 pinami portu C wybierałbym który aktualnie ma się wyświetlacz świecić a 7 pinami z portu B wyświetlał cyfrę na wybranym wyświetlaczu. Tylko trzeba to robić co najmniej kilkadziesiąt razy na sekundę. Ale za każdym razem wyświetlasz tylko jedną cyfrę. Liczbę trzycyfrową...
Musisz zastosować sterowanie multipleksowe albo jakiś długi rejestr przesuwny (np. 4 układy 4094) żeby obsłużyć 4 cyfry wyświetlacza. To może być coś takiego: $regfile = "attiny26.dat" $crystal = 8000000 Config Portb = Output Config Portd = Output Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim V as Word Dim V_real as Single...
Witam. Mam malutki problem z wyświetlaczem LED 3 cyfry 7 segmentów (bez kropki). Podczas obsługi wyświetlacz poprawnie wyświetla cyfry z danych. Krok wyświetlania jest co 100. Po osiągnięciu 1000 dokonuję zmiany trybu wyświetlania tak, że tysiące są widoczne na pierwszym LED zaś setki na trzecim. Problemem jest to, iż chciałbym by pomiędzy tysiącami...
Teraz należy skopiować 1-szy znak ze zmiennej Wart_nap , do innej (tymczasowej) zmiennej typu STRING , po czym zamienić ten znak(jedną cyfrę) na liczbę i zapisać np.w zmiennej A. Wszystko pieknie cos rozumiem tylko nie wiem jak to zrobic w bascom:( . Prosze o mały przykład...
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
Witam. Udało mi się zdefiniować wszystkie liczby. Każda liczba to nowy podprogram, definiujący jakie znaki mają się pojawić w danej liczbie. Jak stworzyć program, który wyświetli np datę, temperaturę - ogólnie ciąg cyfr. Pierwsza cyfra na ekranie pokazuje sie w całości, następne niestety znikają poza ekranem albo robią się krzaczki kiedy wywołam po...
Witam, Mam za zadanie napisać w bascomie program któy ma wyglądać mniej więcej tak: na początku pokazują się 3 opcje dajmy na to 1.Kwadrat liczby 2. silnia liczby 3.pierwiastek liczby Gdy wpiszemy jedną z tych 3 cyfr np 1 wyskakuje nam okienko zeby podać liczbe podajemy i wychodzi wynik itd. JEstem bardzo początkujący i nie wiem jak to wykonać ;/ Gdyby...
ale jak obsługa ADC i Timera2 i LCD zajmowała 1,5kb w Bascomie, tak przy optymalizacji w C się zeszło dość nisko, w zasadzie 500b może to było, nie pamiętam dobrze, ale wyglądało lepiej Słabe porównanie. Bascom tyle żre bo jest uniwersalny. Spróbuj wyświetlić np 2 bajtową liczbę na LCD w C. Najpierw musisz ją rozłożyć na pojedyńcze cyfry, potem wysłać....
Witam, Zaciekawił mnie projekt "loopera" dla gitarzysty. Ciekawym rozwiązaniem jest zastosowanie specyficznego wyświetlania jednej cyfry na czterech prostokątach wyświetlacza LCD - eliminuje to potrzebę aplikowania dodatkowego "czytelnego" wyświetlacza zbudowanego z siedmiosegmentowych wyświetlaczy LED w urządzeniu. Czy ktoś może mi powiedzieć jak można...
Możesz podłączyć poprzez rezystory bezpośrednio do portów, tylko trzeba pamiętać, że diody mogą wziąć 20mA i to teoretycznie pin ma wytrzymać, ale też chyba nie można brać więcej niż 100mA na cały port. To tyle teorii a w praktyce to sam sprawdzisz i pewnie procek to zniesie. Wprowadziłbym jednak pewna optymalizację. Wyświetlacze podłącz do portów PB...
Też jest prosto: 1. obcinasz ułamek --> masz część całkowitą ... Jak zamienić liczbę całkowitą na znaki, nię będę pisała, bo to już trywialne. No niewiem :? Liczby zmiennoprzecinkowe są zapisywane inaczej niż liczby całkowite i mogą być pojedynczej lub podwójnej precyzji gdzie mamy mantysę ,wykładnik itd. Wcale nie jest łatwo takie ustrojstwo "rozebrać"...
Moim zdaniem koncepcja powinna być taka: 1. Obsługa przetwornika analog-cyfra. Na początek dobrze żebyś umiał dobrze zmierzyć liczbę impulsów. Nie wiem dokładnie jaka jest specyfika Twojego sygnału, jaką amplitudę mają owe szumy, skąd się biorą i czy nie warto by ich po prostu potraktować filtrem dolnoprzepustowym, a jeśli mają odpowiednio niską amplitudę...
dim bleble as string * 1 Definiowana jest zmienna bleble typu String o długości do 1 znaku w pamięci SRAM. Liczba określa więc nic innego jak przewidywaną długość zmiennej typu String w znaku.
Nie ma tu nic skomplikowanego. Możesz sobie wziąć kartkę i długopis do ręki i rozpisać sobie binarnie które bity dla konkretnej cyfry musisz ustawić,m a które wyzerować. Później możesz sobie te wartości zamienić na liczby np kalkulatorem lub ręcznie i dalej wystarczy wpisać konkretną liczbę do portu, do którego podłączony jest wyświetlacz.
Program wygląda dużo lepiej. I = 1wread(2) pobiera dwa bajty w których znajduje się temperatura. Polecam zajrzeć do karty katalogowej DS18B20 str.4. W I znajdzie się liczba 16 bitowa, gdzie pierwsze 4 bity to znak, następne 8 bitów to część przed przecinkiem, a cztery ostatnie to to co po przecinku. Liczby ujemne są w kodzie U2. S = I / 16 Powyższe...
Coś takiego: $regfile = "m8def.dat" $crystal = 8000000 Config Portd.0 = Output Portd = &B11111111 Config Portb.0 = Input Portb = &B00000000 Declare Sub 7 7: Portd = 00011100 Return Do Call 7 Waitms 300 Portd = 00000000 Waitms 300 Loop End Chciałem że by program wyświetlał mi na wyświetlaczu pojedynczym lcd cyfrę 7, odczekał a potem żeby...
Witam Mam taki [url=http://www.artronic.pl/o_produkcie.... LED i nie umiem wyświetlać na nim cyfr, tzw. umiem ale nie tak jak to powinno się robić. Wyświetlam je tak [syntax=basic4gl]Portb = &B1100110 Portd.1 = 1[/syntax] a chcę pisać np. wys5 i wyświetli się liczba 5 To moje kody [syntax=basic4gl]Tabela: Data 63 , 6 , 91 , 79 , 63...
Typowo taka zmienna ma 32 bity, stąd można przechowywać 2^32 różnych liczb, jako, że single ma pewnie coś koło +/-10^38 to dostrzegasz problem? Dostrzegam problem, bo operacje na tych "niedokładnych" wartościach np. trzykrotne podzielenie przez 10, albo co gorsza przez same siebie powoduje czasem totalną "kaszanę". Ostatecznie jednak doszedłem do w...
Witam, mam mały problem a mianowicie: mam podłączony rc5 do atmega16 i muszę zrobić coś takiego: naciskam na pilocie przyciski numeryczne a one są wyświetlane na lcd po kolei tak jak naciskałem. Np naciskam 2,5,3 a na wyświetlaczu mam 253. W baskomie dawno się bawiłem i pozapominałem co nie co. Dodam że komendy z pilota odpowiadają liczbom które naciskam,...
Teraz doczytałem dokładnie, że rezultat to zmienna tekstowa a nie typu single, może jak ją deklaruje jako single to się sypie w tym momencie ? no to Ci przecież o tym pisałem. możesz to zrobić inaczej, bez żadnych konwersji. wyświetlasz 26.1234 a potem locate i zamazujesz 3 ostatnie cyfry. dużo w bascomi pisze i przyznam że zawsze jak używam jakiś...
Nie zniechęcajcie bo widzę same superlatywy. \ Nie odbieraj tego jako zniechęcanie. To nie jest tak, że jedno rozwiązanie jest najlepsze, a inne są złe. Po prostu trzeba dostrzegać różne aspekty i wybrać to co w danej chwili jest najlepsze. Dedykowany sterownik jest ok, ale np. jakie widzę wady: - cena i dostępność (niekoniecznie to musi być wada),...
No więc wyciągnąłem procka (ale MAX'a zostawiłem w płytce) i zwarłem w nim piny R1OUT i T1IN (czyli te które idą do procka, według dokumentacji piny 11-12) ale echa nie ma... Zwarłem też R1IN z T1OUT (piny 13-14) które wychodzą na złącze RS232, ale też echa brak... Apropos testu z diodą, kiedy podaję np liczbę 123, to miga po wpisaniu każdej cyfry,...
[syntax=basic4gl]If Znak = 49 Then '49='1'[/syntax] Wyjaśnienie. Znaki, czyli cyfry, litery, inne znaki i znaki nie drukowane mają swoje kody ASCII. Cyfrze 1 odpowiada liczba 49 (dziesiętnie), a literze A liczba 65. Spokojnie używając jednego znaku obsłużysz jeszcze wiele poleceń. Znajdź sobie tablicę kodów ASCII.
Witam! Dziś walczę z komunikacją rs232. Posiadam dwie Atmegi jedna 32, druga 16 - odbiornik. W nadajniku nadaję string 001100.110011.001100.110011.001100.11001... przez Do Print "001100" Waitms 500 Print "110011" Waitms 500 loop Odbieram to: a) przez komputer - transmisja idealna 001100.110011.001100.110011.001100.11001...
Byte nie trzeba formatować wcale. Masz np. dim pwm_percentage as byte (...) pwm_percentage=cool1 (...) lcd str(pwm_percentage) gdzie (...) oznaczyłem pominięte fragmenty kodu. mam problem żeby cię zrozumieć to jest dopiero mój drugi program a tak jak proponuje deksta84, żeby komendą locate "przykryć" kropke i miejsce dziesiętne ... no niby tak ale...
Dim Wynik As Long Dim Cyfra As Byte Dim Tymcz As Long Dim Tymcz2 As Long Dim Dzielnik1 As Long Dim Dzielnik2 As Long Dim Z As Byte Wynik = 956360 Dzielnik1 = 1000000 Dzielnik2 = Dzielnik1 / 10 For Z = 1 To 6 Tymcz = Wynik Tymcz2 = Wynik / Dzielnik1 Tymcz2 = Tymcz2 * Dzielnik1 Tymcz = Tymcz - Tymcz2 Tymcz = Tymcz / Dzielnik2 Cyfra = Tymcz Print Cyfra...
...Gdy z terminala wysyłam 2 to procek zwraca mi 50 gdy 1 to 49 gdy 3 to 51 itd Pewnie gdyby a była single to by było O.K. "Kłaniają się" typy zmiennych. Kiedy do terminala wpiszesz 2 , to po łączu szeregowym do uC , jest wysyłany kod ASCII cyfry 2 , czyli dziesiętnie 50.Instrukcja print , "przetwarza" owe 50 na ciąg znaków ASCII reprezentujących liczbę...
Co to za procesor ? Podaj przyporządkowanie linii portów (co która robi) ? W którym momencie masz ten błąd (przy ustawianiu, której cyfry) ? Procesor 89C51 No to jest Tak Port P0 steruje segmentami czyli P0.0 = A P0.1 = B P0.2 = C P0.3 = D P0.4 = E P0.5 = F P0.6 = G P0.7 = Kropka "nie wykorzystuje" Cyfra(0) = 63 'Wyświetla 0 Cyfra(1) = 6 'Wyświetla...
jak podlaczyc do tego procesora wyswietlacz lcd 4 cyfry taki jak jest w mierniku uniwersalnym czyli bez kontrolera. czy jest jakis sposob na zmniejszenie ilosci polaczen a moze jakis kontroler pomiedzy lcd a atmega .
Potrzebuję napisać licznik impulsów w Bascom 89cx051 o następujących parametrach: Wprowadzam ilość impulsów za pomocą trzech klawiszy (pierwszy klawisz ustawia pozycję nad liczba która będzie zmieniana, drugi i trzeci służą do zmiany góra-dół), po ustawieniu odpowiedniej liczby (maksymalnie 7 cyfr), wciskam czwarty klawisz (start) w tym monecie na wyjściu...
Za wszelkie informacje dziękuję ale dalej chciałbym drążyć temat aby w jakiś sposób i to najlepiej w bascomie ograniczyć obciążenia czasowe przez wyświetlacz lcd. Nie wyssałem z mlekiem matki sposobu programowania mikrokontrolerów lecz staram się jak mogę aby dokończyć projekt i jestem wdzięczny za wszelkie informacje. Jak ograniczyć czasy na obsługę...
Nie, raczej chcialem zrozumieć po co w 2 miejscach podawac to samo skolo w deklaraji jest as int to po co ponownie podaje sie to w definiowaniu funkcji? Przy sub moglbym podac równie dobrze liczba2 as integer. A skoro definiowałem typ zmiennych ich nazwe w deklaracji sub to mógłbym już użyć sub sub_liczba_to_cyfra(liczba, ilosc_znakow)
To jest sterownik wyświetlacza LED. Stosowanie go zwalnia Cię z troszczenia się na poziomie programu o to, które segmenty wyświetlacza powinny świecić aby pojawiła się odpoowienia cyfra. Podajesz tylko 4-o bitowy kod liczby(prawdopodobnie jesto wartość tej liczby binarnie) na jego wejście a on już sam ustali, które segmenty powinny się zaświecić. Ale...
Spiout(16*Da1+Da2) 'albo jakoś tak Spiout (16*Da1+Da2) Nie znam na pamięć funkcji bascoma i nie mam go pod ręką, możliwe że źle użyłem w tym przykładzie funkcji Spiout, ale to co jest w nawiasie to cały bajt połączony z 2 połówek. Myślałem, że jest tam funkcja swap która zamienia półbajty, ale w bascomie swap służy chyba do czegoś innego....
Witam Potrzebuję zaokrąglić liczbę zmiennoprzecinkową do liczby całkowitej (do późniejszego wyświetlenia na wietlaczu LED (rozbijanie liczby na pojedyncze cyfry działa poprawnie). Do tego celu wykorzystałem funkcję Round. Zgodnie z instrukcją Bascoma należy zrobić to tak: [syntax=vbnet] dim A as Long, B as Long A=Round(B) [/syntax] Rozumiem, że gdyby...
Przy wykonywaniu operacji arytmetycznych w Bascomie wszystkie zmienne powinny być tego samego typu (u mnie np. Long) jednak zajmuje to trochę RAMu, jedna zmienna to aż 4 bajty. Przedstawiam tutaj moje rozwiązanie podziału zmiennej na wyświetlacz 6 cyfrowy LED. 'globalne zmienne dla wyświetlacza 7seg Dim Cyfra1 As Long 'cyfra jednosci Dim Cyfra2 As Long...
wszystko pięknie tylko że ta opcja dodaje 0 przed samą cyfrą i znak + (wcześniej pokazałem przykłady jakie chcę uzyskać) Próbowałem też bez zera na początku i bez plusa (zastąpione spacjami) tylko wtedy tak jak mówię przy zmianie znaku liczba pływa
Witam, napisałem taki oto kod: [syntax=basic4gl] Rem Regulacja jasności świecenia diody LED Rem zmienna JASNOŚĆ ma byc przedstawiona Rem w postaci liczbowej na wyświetlaczu LED $regfile = "m32def.dat" $crystal = 16000000 Ddra = &B11111111 'sterowanie katodami wyświetlacza LED Porta = &B11111111 'katody segmentów zgaszone Ddrc = &B00000000...
Hmmmm, liczba o 16 znakach to dość nieprecyzyjne określenie :] Jeżeli chodzi Ci o przechowanie 16 cyfr, każdą z osobna, to oczywiście zwykły łańcuch tekstowy, czyli STRING (chyba tak to w bascomie sie zwie). Ale na stringach nie da się wykonywać operacji matematycznych na stringach (no dobra, da się, ale trzeba wszystko samemu od zera pisać :] ), operacje...
Witam, zbudowałem duży zegar z pasków Ledowych, sterowany przez Atmega16. Napisałem do niego program sterujący, który niby działa ale ma 2 mankamenty. 1. Zegar wydaje się działać niedokładnie pomimo dodanego zewnętrznego kwarcu 16MHz. 2. Segmenty które w danej chwili powinny być wyłączone (np środkowy przy wyświetlaniu 0) nie wyłączają się do końca,...
Może być i zmienna tablicowa w pamięci ram jeżeli masz 10 wolnych bajtów. A może być i coś takiego: na końcu programu deklaruję taką tablice (kolejne liczby są wartościami wpisywanymi do portu, które zapalają odpowiednie segmenty): Tabela: Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 np. wyświetlacz podłączony do portu B, cyfra...
Witam. Chciałbym skonsultować sposób realizacji wyświetlenia wyniku z ADC w postaci liczby z dwoma miejscami po przecinku. Maksymalna wartość z 10 bitowego ADC to 1023 które odpowiada napięciu równemu 20V. Rozwiązanie jakie mi się nasuwa aby uzyskać wynik z dwiema cyframi po przecinku to pomnożenie wyniku przez 100 a następnie rozbicie liczby na 3 bajty...
To popraw zasilanie, bo jesli tak ci się to sypie to znaczy że jest bardzo źle. Włącz sobie generator RC, do nóżek TOSC podłącz kwarc 32kHz. Prawdopodobnie trzeba tez dodac do jego nóżek kondensatory. W AtM8 mozna je właczyć wewnętrznie, a widzę że ty masz M32 więc nic z tego. TIMER2 będzie ci cykał tym kwarcem. Ustaw mu preskaler na 1024. Co 32 cyknięcia...
Chelloł ! Dodam jeszcze, że do procedury obsługi klawiatury, którą udostępniłem posiadam procedurę, która zajmuje się wprowadzaniem liczby wybranej długości i odpowiednim jej sformatowaniem i wyświetleniem na LCD. Procedura ta pozwala na: - wybranie długości liczby (w cyfrach) - obsługuje limity (wartość max i min) - przy klawiaturze 4x4 obsługuje +/-...
Przepraszam. Bascom avr Masz dwie opcje: var = VAL( s) gdzie; 'var'- to numeryczna liczba dziesiętna S - ta sama liczba przedstawiona w postaci textowej jako 'string'. druga opcja; STR2DIGITS s , ar(1) - stosowana gdy potrzebujesz miec dostęp do kazdej cyfry oddzielnie bez dodatkowych przeliczeń; na przykład, gdy zechcesz je wyświetlic na 7-segm. LED....
liczba cyfra bascom liczba iloczyn liczba cyfra
schemat podłączenia włącznika światła pralka whirlpool bęben ociera sharp migające podświetlenie
domofon laskomex domofon laskomex
Kontrolka ładowania nie działa w John Deere 5720 Błąd E60 w pralce Hanseatic - przyczyny i rozwiązania