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.
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...
Zamieniasz poszczególne znaki na ich liczbowe odpowiedniki za pomocą funkcji: ASC i XORujesz z poprzednią wartością, za pomocą funkcji XOR. O rozbijaniu stringa na poszczególne znaki było parę( dziesiąt) postów temu. A sam XOR to inaczej suma modulo 2: 0 xor 0 -> 0 1 xor 0 -> 1 0 xor 1- > 1 1 xor 1 -> 0 Oooo, znalazłem: http://www.elektroda.pl/rtvforum/topic15...
Niebardzo rozumiem o co dokładnie tu chodzi ale: 1. Każde wystąpienie Lcd Chr(3) powinno być Lcd Chr(3); żeby nie były dodawane znaki nowej linii. 2. Żeby modulo 10 się obliczało poprawnie, to zamiast Dim Volt_d As Byte musi być Dim Volt_d As Word To jest związane z tym, że BASCOM nie potrafi rzutować typów z większego (Word) na mniejszy...
jak jusz to modulo 256.. a pozatym to jest to samo co dodawanie z przepełnieniem... jak do x o wartości 255 dodasz 1 to wynik będzie wynosił 0 (zmienna 8 bitów)...(natomiast bit C będzie ustawiony).. odrazu mówie.. modulo 256 z bajtu jest stratą cykli, miejsca w programie, a pozatym nic niedaje (to tak jak dodawanie zera)
Co do PCF8583 - do zapisu pełnego roku wykorzystaj wolny RAM na końcu układu. Od adresu chyba 0x10 masz wolne komórki - w 2 z nich zapisz sobie pełny rok i sprawdzaj jego modulo z danymi w 2-bitowym rejestrze roku układu i w razie konieczności aktualizuj dane w tych 2 komórkach.
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ć...
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...
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:...
010203 to string danych Jeśli to string, to CRC liczysz w następujący sposób: -Sumujesz kody ASCII tych znaków. Suma powinna być zadeklarowana jako unsigned char, żeby była brana bez znaku i działała modulo 256. -sumę zmieniasz na liczbę ujemną (a w kodzie uzupełnien do 2: negacja bitowa, zwiększenie o 1) no i gotowe :) skleciłem prosty kodzik na poczekaniu,...
Witam. Mam zbudowany od 3 lat inkubator na jaja kurze, gęsie i kacze. Cała konstrukcja działa w oparciu czujnik temperatury i wilgotności DHT22. Stary program działa bardzo dobrze, ptaszynki klują się ładnie. Ale żeby nie było tak pięknie to co jakiś czas, powiedzmy raz a może dwa razy na sezon coś się zawiesza i zamiast 37,7 stopni temperatura rośnie...
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)...
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...
Ale skad potem np 50??... licze 2*3,14/32*1 .... nie chce mi wyjsc sin((360/32)*1)*256=49,8xxx czyli około 50 sin((360/32)*2)*256=97,9xxx czyli około 98 .......... i tak dalej co do pierwiastka to faktycznie troche mu to zajmuje (około 600 instrukcji) ale w sumie jest to robione jakieś 64 razy na odświeżenie i w skali glogalnej nie zabiera aż tak duzo...
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...
dzielenie całkowite + modulo. Przy dzieleniu przez 10 uzyskasz górną cyfrę, przy modulo 10 dolną.
1. Najważniejsze jest modulowanie świecenia diody IR. Od strony programowanej sprawa jest dość prosta. Trzeba wygenerować impulsy o częstotliwości kilku lub kilkudziesięciu kHz i przy ich pomocy włączać diodę IR. 2. Jeśli elementy jakimi dysponujesz to fototranzystory to możesz zbudować taki odbiornik: https://obrazki.elektroda.pl/8607391600_...
W celu wygenerowania można spróbować pobierać wartość ADC, który "wisi" w powietrzu. Powinny tam się pojawiać losowe wartości od 0 do 255, później robisz tylko modulo 8 i sprawdzasz, czy dana wartość już nie wystąpiła.
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...
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.
Hmmm... Ciężko mi cokolwiek wydumać, żeby nie walnąć gafy... Ale ryzyk fizyk: 1. Losuj 2. Sprawdź, czy wylosowana mieści się w zakresie między LED_on_min .. LED_on_max 3. Jeżeli tak to włącz LED na czas opisany przez wylosowaną. 4. Losuj 5. Sprawdź, czy wylosowana mieści się w zakresie między LED_delay_min .. LED_delay_max 6. Jeżeli tak wyłącz LED na...
w przypadku uzycia niewielkiej ilosci modulow i czujnikow obie wersje sa do przyjecia ale jesli chcesz rozbudowac system do wiekszych rozmiarow to opcja 2 wyglada na lepsza. masz jeden modul trzymajacy dane a reszta go odpytuje. nie masz wtedy tak duzego ruchu na linii 1W i masz mozliwosc dodania kolejnych czujnikow i modulow w dowolnej (prawie) ilosci....
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...
Jeśli inny sposób wykrywania pociągu (modelu pociągu?) nie wchodzi w grę to żeby wyeliminować wpływ słońca na odczyt z czujników możesz sygnał modulować/demodulować. Dioda sobie mruga z częstotliwością X i czekasz aż sygnał odbierany przestanie mrugać :) Do demodulacji można użyć zintegrowanych TSOP. Jeżeli nie wchodzi to w grę to dobrym pomysłem jest...
Nastawianie najprościej jest zrealizować przy pomocy dodatkowej zmiennej (o odpowiednim zakresie) i zmieniać ilość sekund: czas=minuty*60+sekundy czas++ lub czas-- minuty=czas AND 60 sekundy=czas MODULO 60 Powyższa "kombinacja" wydaje się zasobożerna dla AVRka, ale przecież nie będzie ona wywoływana non stop, a jedynie w momencie naciśnięcia klawisza...
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...
Nota o której piszesz robi to inaczej. Nie wzorowałem się na niczym, sam ją wymyśliłem, potrzebowałem dekodować piloty stałokodowe oparte na SM5028 i keeloq HCS200/300/301. Przerwanie od ICP jest uniwersalne i świetnie nadaje się do takich celów. Jeśli chodzi o procedurę dekodowania części crypto to procedura w bascomie też jest prosta. Podam tylko...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Z tym że czas propagacji 93 jest 10-70 ns, 42 10-30 -razem może być 20-100 ns. Trzeba sprawdzić czas reakcji atmela na przerwanie. Jak za szybko zareaguje to da odczyt poprzedniego wyświetlacza. Przeważnie na poczatku procedury obsługi przerwania zrzucane są wszystkie rejestry - choć nie jetem pewien jak w BASCOM-ie, podejrzewam, że też. To będzie...
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...
blecky -> a poczytałeś troszkę n/t np nadawania kodów IR w standardzie RC5 ??? podstawą tego typu kodowania jest częstotliwość nośna, dla RC5 ok 36KHz i ona jest właśnie modulowana. W Bascomie tak jak i w innych rozwiązaniach trzeba jakoś taką nośną wygenerować. Jak widać można to zrobić w b.prosty sposób korzystając z PWM i tak właśnie zrobili autorzy...
Podzielam zdanie zerpo sprawa nie jest taka prosta daniel93 jeżeli chcesz w prosty sposób rozwiązać zakłócenia emitowane przez przeciwników to istnieje coś takiego jak modulacja wiązki promieniowania IR , poszukaj sobie tematów związanych z barierami optycznymi zrozumiesz o co chodzi przy takiej konstrukcji uC otrzyma tylko sygnał z Twojego nadajnika...
A jednak, ruszylem projekt na kilku prockach.Przypomnialem sobie ze glownym zalozeniem jakie sobie postawilem to modulowa struktura.Dzieki takiej konstrukcji uklad jest banalny do bulu (dla mnie).Robilem kiedys i robie dalej male ''sterowniki'' do termoformierek, wiem ze 89 jest bardzo trudno ''powiesic'' zakluceniami wszelkiego rodzaju.:)
Jakby ktoś chciał zrobić coś podobnego, to pewne informacje są w poniższym linku: http://forums.hackaday.com/viewtopic.php... To moje pierwsze próby napisania programu. Jeszcze nie testowałem go w praktyce [syntax=basic4gl]$regfile = "m168def.dat" $crystal = 8000000 '$sim Config Timer1 = Timer , Prescale = 64 , Capture Edge = Falling , Noise...
A widzisz :!: Gdybyś wkleił kod ,który już napisałeś , to bym sie tak nie "gimnastykował" ;) Teraz napisz , jak chcesz modulować "nośną" , czy to ma być RC5 , czy jakiś inny sygnał :?: Przy jakim stanie pinu dioda "świeci" :?: Nie bądź taki tajemniczy ;) Piotrek
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...
Coś masz popsuty uC, bo właśnie wgrałem tę moją wersję do procka (do tiny13 dla jasności :D ) i dioda podpięta do pb.4 miga. Jak spowolniłem zegar do 128kHz to wyraźnie widać, że to mignięcie to w rzeczywistości jakiś kod, bo składa się chyba z ośmiu mrugnięć i przerw między nimi. Jak będzie działać i u ciebie, to jesteś mi winien piwo, przynajmniej...
Hmm pomysłowe tylko jesli zastosowałeś juz w projekcie attiny to po co tam mp3? ciągnie tylko dodatkowe mA a wystarczyło nadziergac zwykły generatorek akustyczny np w BASCOM to wręcz banalne i po problemie. Myśle że dziki beda sie tak samo bac modulowanych wyższych czestotliwości co inne tym podobne stwory.
Jak z bascoma odczytac wartosc zapianą w sygnale o modulowanym wypełnieniu... Ze strony FastAVR możesz sobie ściągnąć pakiet sampli, wśród których są dwa obsługujące ADXL202. FastAVR ma nieco inną składnię niż Bascom ale zasada programu będzie identyczna.
ad 3. Nie będzie identyczny, a nawet podobny, z powodu dziwaczności BASCOMa. Obsługa UARTów na mikrokontrolerach jest zwykle kontrolero-specyficzna, bo oprócz realizacji transmisji szeregowej mają one wiele innych bajerów, np. modulowanie sygnałów do IrDA itd.
Witam, mam pewien problem. Bowiem musze zroić układ taki aby sterował przerobionym serwem modelarskim w nastepujacej sekwencji: lewo waitms prawo waitms lewo ...... Zrobiłem coś takiego na atmedze. ............. Z tego co zrozumiałem to przeróbka serva miała na celu dostosować go do pracy ciągłej.(?) Czyli wystarczyłoby odłączyc mechaniczne sprzężenie...
Zajmuje się pisaniem programu (procek to Attiny13A) do diody ir współpracującej z czujnikiem TFMS 5560.Zaznaczam że jest to po prostu układ typu załącz / wyłącz. Nie żadne kodowanie itp. Tutaj link do noty katalogowej tego czujnika (w tabelce drugi pdf od góry) : http://www.datasheetarchive.com/tfm%2055... Z tego co udało mi się rozszyfrować...
Kolego WADER_669 ja doskonale rozumiem jak ma działać to urządzenie. 1.Nadaje lewą diodą Ir z częstotliwością 36kHz odczytuje tsop-a i jak coś odebrał to zapalam diodę sygnalizacyjną. Tak samo robię z drugą stroną. I do tego miejsca program działa dobrze. 2.Nadaję lewą i prawą diodą i odczytuje czy tsop coś odebrał, jak odebrał to zapalam lewą i prawą...
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...
Fajny projekt. Jakbys potrzebowal modulow, ktore zmieszcza sie w puszce instalacyjnej to daj znac. Opublikowalem o tym jeden artykul i mam kilka modulow na zbyciu.
Witam! Ja mam troszkę inne pytanie do tych co się już zajmowali RFID. Jak odczytać dane np 3 kart które się znajdą w zasięgu. Napisałem kart, mogą to być inne tagi rfid. Czy w tej technologii to jest jakiś problem? Zastanawiam się bo w takiej sytuacji nośna jest modulowana przez 3 tagi na raz...
Witam , zainteresowały mnie 2 rzeczy , czujniki pojemnościowe i transoptory zbliżeniowe. Co do transoptorów to czy sygnał idący na led powinien być modulowany, (np 20KHz) a na wyjściu fototranzystora filtr odpowiadający częstotliwości nadawania? Ad do czujnika pojemnościowego, czy [url=http://www.elportal.pl/pdf/k07/04_0... będzie działał dobrze?...
W końcu sukces. Dzięki koledze Mirekk36 procek generuje piękną nośną na portb.3. Wielkie dzięki. A tak na marginesie to sposób kolegi Atom1477 nie chce się kompilować, wyskakuje błąd w tym miejscu: ICR1 = 222 OCR1A = 22 '0...222 . Dodano po 3 Nie długo trwała moja radość że wszystko działa. Mam dwie diody IR na które podaję przebieg 36kHz a z drugiej...
Przerwanie od timerów to zbiór instrukcji, które zostają wykonane w przypadku przepełnienia licznika, asynchronicznie, czyli niezależnie od wykonywanego w danym momencie kodu (chyba ze jest to inne przerwanie). Nie wiem jak wygląda obsługa przerwań w bascomie, ale mogę wytłumaczyć o co "biega". A więc 8-bitowy licznik ulega przepełnieniu co 256 cykli...
modulo bascom licznik modulo modulo przykłady
zmiana kierunku fazowy berlingo kontrolka silnik płyta główna mosfet
Panasonic 43 sortowanie kanałów My Home Screen Google TV LCN ChanSort Schemat KitchenAid KPM50 oraz Speroni KPM50 – schematy elektryczne i połączeń