Zdefiniuj wszystkie zmienne na jakich robisz operacje dzielenia i modulo jako INT. Zmienna jednobajtowa się przekręca do zera po osiągnięciu wartości 256.
dzielenie całkowite + modulo. Przy dzieleniu przez 10 uzyskasz górną cyfrę, przy modulo 10 dolną.
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
Ja, w Bascomie dodawałem poszczególne bajty do siebie a potem ałość dzieliłem modulo przez 255 i to było dodatkowym bajtem sumy kontrolnej. Działa z zewnętrznymi (nie pisanymi przeze mnie) aplikacjami, więc chyba dobrze działa ;-)
Jeszcze jedno pytanie, jak w Bascomie przechowywana jest reszta z dzielenia modulo? Tak samo jak kazda inna zmienna. Zachowuje ostatnio wpisana wartosc, do czasu jej 'nadpisania' lub RESET. e marcus
W bascomie też masz liczby zmiennoprzecinkowe- np. typ single. Jest też konwersja i dzielenie z resztą modulo. Tylko Attiny2313 może się w pewnym momencie okazać za mały. Ta część całkująca- to w zasadzie ograniczenie od góry PWM- oczywiście nie może być większe niż 100%. Znalazłem kiedyś taki link: http://elm-chan.org/works/smc/report_e.h... Ale go...
jak naraziie ASM to "za wysokie progi na moje nogi", jak ja widze te 2 literowe komendy, i wszystko w języku niskopoziomowym, od odwoływania sie do pamieci, poprzez operacjie w stylu mnożenia czy dzielenia... nie mówiąc o dzieleniu modulo...
Nie rób modulo, bascomowi zeżre to w cholerę cylki Zrób tak, jak jest, czyli AND 3 - to jest to samo, co modulo 4, a ogólnie wszystkie operacje typu modulo potęga dwójki można zastąpić taką konstrukcją: a MOD (2^b) = a AND ((2^b)-1) np. a MOD 32 = a AND 31, a MOD 512 = a AND 511 Ten sposób działa szybciej na każdej architekturze, bez wyjątków :) w wypadku...
niewiem dokładnie jak to jest z procesorami programowalnymi w tem sposub ( jeszcze) W zwykłym asemblu robił bym to na podstawie kilku operacji arytmetyczno/logicznych pierwszą liczbe (jedności i dziesiątek) otrzymasz poprzez uruchomienia polecenia funkcjonującego jako modulo z argumentem 100 ( reszta z dzielenia przez 100) Drugą liczbę możesz otrzymać...
Przeorganizowałem twój kod z pierwszego postu bo w tym z dzieleniem i modulo to może działać ślamazarnie. Jeśli ci pasuje oczywiście. Licznik obsługuj w przerwaniu timera. A zmieniaj tylko wartość zmiennej za pomocą przycisków. To musisz sobie dopisać. Gdyby obliczenia w przerwaniu były za długie, przenieść je do głównej pętli, ale tutaj zawsze będzie...
jak chcesz do 1 miejsca po przecinku, to mnożysz liczbę zmiennoprzecinkową przez 10 (jak do dwóch miejsc, to przez 100, itd.) zamieniasz ją na człkowitą i masz dwie (no w sumie to trzy) drogi. 1. zamieniasz liczbę całkowitą na tekst, wyświetlasz wszystko oprócz ostatniej cyfry (ostatnich dwóch, trzech...) wyświetlasz kropkę i dopiero ostatnią (ostatnie)...
co prawda przekracza 255, ale wynik z dzielenia przez 10 i Modulo 10 już nie, czyli 28 i 3 Tyle, że najpierw przekracza i tu masz błąd. W żadnym przypadku, nie można przekraczać zakresu, zrób operację na bajcie np bajt = bajt * 10000 / 10000. Człowiek tą operacje skróci, kompilator nie.
wyswietlanie takiej liczby nie jest problemem. Jezlei masz narazie tylko to to zwykłe dzielenie i modulo (reszta z dzielenia) ... ala=235 ela=ala mod 10 '235 podzielone przez 10(=23) i to co zostanie (=5) ala=ala/10 led_cyfra(3)=ela ela=ala mod 10 '23 podzielone przez 10 (=2) i to co zostało (=3) ala=ala/10 led_cyfra(2)=ela...
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...
Witam. Mam w zmiennej bitowej jakąś liczbę z zakresu 0-60, np. 34. Czy można tą liczbę rozbić na 2 cyfry - przypisując do pierwszej zmiennej bajtowej cyfrę 3, a do drugiej 4? Czy są jakieś instrukcje w Bascomie, czy muszę to robić za pomocą SELECT CASE: Proponowana metoda dzielenia zmiennej przez 10 (lub 100 , 1000 przy wiecej ilości cyfr), i stosowanie...
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...
Hehehe, jak już chcesz tak optymalizować to: if(liczba) wystarczy ;-D Jesli chodzi o sposob zapisu to masz 100% racji, ale kompilator dokladnie taki sam kod wygeneruje w obu przypadkach :) i to else break; też tak trochę jak na mój gust nadmiarowe jest... Nie jest nadmiarowy, gdyz bez niego petla bedzie mlocic indeksy dla zerowej wartosci liczby, a...
Hunterhouse ten sposób z liczeniem liczby modulo jest genialy :) Sam na to wpadles?? Na koncu jest jeszcze obliczany pierwiastek,tez to jest dosc czasochlonne dla procka , zastanawiam sie czy na niego nie ma podobnego sposobu :) Czyli beta przyjmuje wartosci od 0- 31, i zmienia sie w zaleznosci od k ,ale caly czas w zakresie 0-31 . Jak dokladnie obliczone...
Witam Napisałem program w Bascomie - i w kilku miejscach mam odwołanie do funkcji gettime. Układ pracuje na Atmega1280. Zegar RTC skonfigurowany prawidłowo: [syntax=basic4gl]Config Sda = Portd.1 Config Scl = Portd.0 I2cinit [/syntax] układ podpięty to I2C prawidłowo(zgodnie z dokumentacją) [syntax=basic4gl]Sub Gettime I2cstart 'inicjalizacja magistrali...
Najtrudniej analizuje się własny kod, bo zawsze patrzy się przez pryzmat wiedzy o tym co on powinien robić i nie dostrzega się drobnych błędów :) Zgadzam się z tym w 100%. Przy Bascomie rzadko sięgałem do PDF'ów kontrolerów, przy C nie da się bez tego wszystkiego zrobić. Bez tych 500 "przekręceń" licznika nawet w Bascom by nie poszło, jak zwykle zbyt...
w jaki sposób rozwiązujesz rok w 8583 ? Jak "rozwiązuję rok" ;) to dość trudno tak w kilku zdaniach wytłumaczyć, chociaż sprawa generalnie jest prosta... Może więc zamiast się rozwodzić, pozwolę sobie wkleić dobrze (mam nadzieję) skomentowane fragmenty swojego programu. ' ****************************************... 'Odczyt:...
Z szacunkiem. Porywasz się z widłami na słońce. Naucz się assemblera a wszystko się wyjaśni. Poza tym radziłbym zostawić bascoma i przerzucić się na C. A propo ADC. Ja to robie tak: W zmiennej uint16_t odczyt, mam odczyt z ADC. Przyjmując 10bit rozdzielczość i 2.56 Vref. Liczę: 2^10=1024; 2.56/1024=0,0025=25*10^(-4) Kolejna zmienna: uint32_t wynik=odczyt*25...
https://obrazki.elektroda.pl/4868547700_... Dzisiaj zrealizuję projekt na malutkim, ośmionóżkowym mikrokontrolerze PIC w obudowie DIP8 oferującym skromne 3.5kB pamięci Flash. Co więcej, do komunikacjami z peryferiami użyję tylko dwóch pinów - całość opierać się będzie o I2C. W oparciu o nie uruchomię kontroler wyświetlacza/klawiatury oraz...
Jak kiedyś zlitowałem się nad SAB600 i postanowiłem go zastąpić czymś bardziej orginalnym to powstał taki twór. Twór o tyle ciekawy, że w asemblerze ale pod Bascomowym interfejsem. Program oprócz generowania dźwięków robi jeszcze parę innych rzeczy, ale chyba tyle to już się można zorientować w kodzie. [syntax=basic4gl] '***********************Tiny13_Gong1...
dzielenie modulo modulo bascom bascom modulo
zapis pliku excel smart żarówka włącznik spadek ciśnienie reduktor
toshiba 32l4353d toshiba 32l4353d
Jak długo ładować akumulator Ni-MH 14.4V 3Ah? Uszkodzenie pinu 7 w D-Sub: Purpurowy obraz