Wystarczą dwie instrukcje MAKEINT i SHIFT : [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 $baud = 2400 Dim A As Byte , B As Byte , C As Word A = &b00110000 B = &B00100000 C = Makeint(b , A) ' z dwóch bajtów zrób słowo Shift C , Right , 5 ' zmienną C przesuń w prawo o 5 bitów Print Bin(a) Print Bin(b) Print Bin(c) End[/syntax]
Ja Ci napisze jeszcze coś ciekawszego. W folderze Bascom jest plik PDF o nazwie BASCAVR.pdf To dopiero kopalnia wiedzy jeśli chodzi o udogodnienia. Przesuwałem jak przysłowiowy osioł linijka po linijce jak czyjeś kody były przyklejone do lewej linii albo bez wcięć. Teraz zaznaczam taki blok który chcę przesunąć i naciskam CTRL + SHIFT + I Suuuuuper...
Skoro jesteś początkujący szukaj artykułów o programowaniu w Bascom w archiwalnych numerach EdW (Mikroprocesorowa Ośla łączka). Wykorzystanie programów w innym języku moim zdaniem będzie trudne i bezcelowe. Bascom jest wyposażony w wiele gotowych procedur do obsługi LCD albo przetworników ADC i ma polski plik pomocy co jest dużą zaletą. Do odczytu temperatury...
Najpierw w prawo o 8 znaków [syntax=vbnet] For A = 1 To 8 Shiftlcd Right 'przesunięcie tekstu w prawo Waitms 200 Next For A = 1 To 8 Shiftlcd Left 'przesunięcie tekstu w lewo Waitms 200 Next [/syntax]
http://obrazki.elektroda.pl/7329866000_1... Miernik częstotliwości o całkiem niezłych parametrach, bo potrafiący mierzyć częstotliwości od 1Hz do 10MHz (9,999,999Hz) z rozdzielczością 1Hz w całym zakresie. Idealny do generatorów funkcyjnych lub jako zwykły miernik. Do tego tani i prosty w wykonaniu, z ogólnodostępnych części, a małe wymiary...
Dzięki wielkie sprawdzę. Problem jest taki że wyświetlacz z tym sterownikiem jest bardzo ograniczony przynajmniej w bascom a ja nie znam na tyle programowania żeby porywać się na C dla jednego projektu bo szkoda mi po prostu czasu którego mam niewiele. Z tym sterownikiem który mam widzę że można tylko wyświetlać wcześniej przygotowane grafiki oraz pisać...
Bascom nie kontroluje zakresu, jak przekroczysz obszar ekranu, to adres pamięci jest obliczany przez Bascom i znak ląduje nie tam gdzie chcesz, to zależy od organizacji pamięci kontrolera i konstrukcji jego rozkazów. Co do przesuwania sprawdź czy zadeklarowany rozmiar wyświetlacza jest zgodny z tym co masz zainstalowany. KotS
Możesz wysyłać jako 16-bitowe SPI. Musisz tylko pamiętać, że kilka ostatnich bitów będzie ignorowane i odpowiednio przesunąć dane
Niektóre zagadnienia są łatwiejsze w realizacji oscyloskopowo lub analogowo trzeba sobie więc przesunąć o -90 stopni i będzie łatwiej mierzyć przesunięcie bo wszystko będzie na plusie ;)
Ok , działa :) Teraz pytanie odnośnie odbioru danych jeśli odbieram pierwsze 8 Bitów MSB to zapisuje je do zmiennej np. A1 i przesuwam o 8 bitów w lewo czy w prawo ? a Bity LSB nie przesuwa się czy też trzeba przesunąć ?
procesor zanim dojdzie do startu watchdoga tochę sie namęczy , a to trochę potrwa, szczególnie przy tak małej częstotliwości kwarcu. Bascom napewno umieści tam dużo prcedur startowych dot. LCD. Spróbuj przesunąć start watchdoga na początek.
Witam Przeczytałem o tym klekotaniu i myślę że problem jest w niestabilności odczytu temperatury, ponieważ wszystkie procesy fizyczne są bardzo wolnozmienne w stosunku do szybkości procesora to proponuję czytać np. 64 próbki i usredniać, jeśl ilość próbek będzie potęgą liczby 2 to wystaczy przesunąć wynik w prawo o wartość potęgi i mamy dużo stabilniejszy...
Problem leży po stronie scalania danych - wartości tmp_accx(1) i tmp_accx(2) nie mogą być dodane do siebie. Należy pamiętać że są to dwie połówki zmiennej typu integer, wartość tmp_accx(2) należy pomnożyć przez 255 lub przesunąć w lewo o 8 pozycji. Następnie obie połówki łączymy instrukcją OR (+ tu nie zadziała gdyż w przypadku liczb ujemnych będą głupoty)....
Wpisanie nowej wartości do SP powoduje przesunięcie tylko jego wskaźnika. Wykonanie tego w nieodpowiednim momencie kończy się źle - jak kolega się przekonał. Dlatego najpierw w raporcie kompilacji trzeba sprawdzić gdzie znajduje się najdalej położona zmienna (użytkownika lub wewnętrzna) i sprawdzić ile ona zajmuje. Uzyskasz wtedy adres od, którego BASCOM...
For A = 1 To A Shiftlcd Right Locate 1 , A Lcd "napis" Wait 1 Cls Next A Przeanalizuj swój program. Definiujesz zmienną A, Potem usiłujesz "napis" przesunąć w prawo, a następnie umieszczasz go w lokalizacji 1,A. To chyba coś tu jest nie tak.
PCF8583 nie ma rejestru roku tak jak PCF8563. Co do dnia tygodnia - muszę poszukać w DS. EDIT: Dzień tygodnia musisz odczytać z rejestru miesiąca (06). Służą do tego bity 7..5 czyli: 1. odczytać rejestr 06 2. zamaskować wartość za pomocą AND &B11100000 3. przesunąć w prawo o 5 (Shift Rejestr_06 , Right, 5)
Oj, muszę się jaśniej wyrażać, skoro trzy dni nad tym myślałeś :) Tak, przy xor licznik byłby *2, ale wystarczy to podzielić przez 2 (znaczy przesunąć wynik o jeden bit w prawo) i masz to co chcesz. xor ciut upraszcza warunki, ale nie ma to aż tak dużego znaczenia dla 5 kHz.
No właśnie, zastanawia mnie, czy wyszukiwanie numeru jest dobrze [syntax=vbnet] Sub Get_caller_nr Pos1 = Instr(inp_str , "{034}") 'szukam pierwszego znaku Incr Pos1 'zwiekszenie o 1 pozycji Pos2 = Instr(pos1 , Inp_str , "{034}") 'szukanie pomiedzy pierwszym a drugim znakiem Pos2 = Pos2 - Pos1 'kalkulacja polozenia pomiedzy dwoma znakami Caller_nr =...
Unsigned Char to 8 bitów czyli Bajt a nie Word, to po pierwsze. Przesunięcia bitowe robi się za pomocą Shift [variable], 8*, Right ale tutaj to chyba nie ma zastosowania. To po drugie. * ilość bitów oczywiście do wyboru. ..a po trzecie wystarczy tak: [syntax=vbnet]sub Wraddr(byval x as integer, Byval y as Word) Local Dim Xh As Byte , Xl As Byte Xh =...
Prze locate nie zrobisz. Wrzuć cały tekst do zmiennej tekstowej, nawet jak będzie za długi to nie problem. Następnie w pętli wytnij wymagany fragment z tego tekstu na podstawie zmiennej liczbowej. W pętli zwiększaj lub zmniejszaj zmienną, a wycięty tekst wrzucaj na wyświetlacz. Nie pisałeś w jakim języku, zapewne BASCOM o tego wiele na forum. Poszukaj...
Z tym dwukropkiem rzeczywiście mogłem go o jeden stopień przesunąć w bok no ale cóż następnym razem:) ----------------- Jak obiecałem wcześniej w załączniku pliki brd oraz bas. Mariuszek15 jeśli był byś chętny do poprawy kodu to by było fajnie ponieważ, braku wolnego czasu nie mogę na razie działać nic w tym kierunku.
niby jakim cudem wzmacniacz mialby przetworzyc cokolwiek poza swoim zakresem zasilania, pomijajac juz sprawe zebezpieczen wejsc. Niezupełnie. Jeżeli wzmacniacz jest w układzie odwracającym to na jego wejściu nigdy nie pojawi się to -25V jeżeli wejście + jest podłączone do masy. W pewnym sensie układ jest sterowany prądowo. Teraz, do pomiarów napięcia...
nie mam teraz bascoma ale spróbuję coś poradzić tylko musisz zobaczyć jak w bascomie zapisywana jest zmienna typu long, bo może sie okazac że moja rada będzie do bani... > deklarujesz zmienną long to jest (chyba 4 bajty): xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx > zapisujesz w niej dwa starsze bajty: xxxxxxxx xxxxxxxx SSSSSSSS SSSSSSSS > teraz trzeba by...
Na mój gust to tam jest byk bo na rysunku nr 2 jest jak wół 1 bajt komendy, 1 bajt danych więc z tym oscylogramem coś nie halo. A jesli ma być zwrócone słowo 11,12,13 ect bitowe to trzeba nieznacząe bity zignorować i np. przesunąć w w prawo o tyle ile bitów będzie brakowało do slowa 16 bitowego.
już mi ręce opadają - z delphi dlaczego jak nie ustawie na hardware tylko zostawię bez kontroli przepływu to comport działa nie tak jak powinien? poza tym jak z bascoma wyśle printbin 5;4;3;40; itd (czyli konkretne wartości ) to delphi odczytuje Ok jak wyśle jako zmienna to jest do bani - i wszystko sie krzaczy - żeby było śmieszniej to za pomocą programu...
Dziex, ale już wpisałem ldi bitcount, low(CRC16poly). Wcześniej mi to nie działało. Może zrobiłem jakąś literówkę. PS. Żeby wywalić starszą połówkę to trzeba przesunąć 8 razy z nie 4. Wiem że LDI działa tylko na liczbach 8-bitowych. Assembler AVR mam w jednym palcu. Dziwiłem się tylko że kompilator automatycznie nie wstawia młodszej połówki jak widzi...
Po pojawieniu się PINB.0 = 1 zwiększaj indeks tablicy Idx. Idx to zmienna którą będziesz indeksował tablicę w poleceniu: Lcd Tablica(idx). Ponieważ program może być na tyle szybki, że mógłby przesunąć indeks tablicy o parę kroków naprzód jeśli na PINB.0 utrzymuje się stan wysoki, to musisz też zapamiętać czy zwiększenie zostało już wykonane i pozwolić...
prześledź dobrze ten programik. Większość można wywalić bo to obsługa za pomocą RS'a. Dla ciebie przyda sie procedura: ustaw_czestotliwość i następne po niej. Ponieważ konstruktorzy chcieli lepiej to teraz trzeba pokombinować - najpierw troche przesunąć - potem zapisać starszy bajt i dodatkowo wyzerować najstarszy bit. potem młodszy i w trzecim bajcie...
Witam Buduje sterownik bramy przesuwnej w której występuje zabezpieczenie graniczne które zwiera do masy gdy brama dojdzie do końca suwnicy. Załóżmy, że brama otwiera się dojdzie do końca i brama się zatrzyma (zabezpieczenie graniczne ciągle zwiera - czyli jest włączone) lecz jak się pojawi sygnał zamykania brama się powinna się zamykać. Zabezpieczenie...
- hunterhaus - czy możesz napisać na ile moja wypowiedź jest dla ciebie zrozumiała :?: dla mnie tak :) a tak w ogóle to huntrehouse ale luz :) teraz kolega rakuś widzi że nie tylko ja miałem problemy ze zrozumieniem problemu czyli napiszmy to jasno, ukontroler dostaje z PC wektor o jaki musi przesunąć frez, czyli x, y, z, no i jakaś informacja o czasie...
Witam, właśnie jestem w trakcie zabawy z GPSem, wstępny program udało mi się przygotować na podstawie tego co znalazłem w internecie ale mam problemy: 1. nie mogę poprawnie wydzielić prędkości z danych odbieranych przez GPS: $GPVTG,165.48,T,,M,0.03,N, 0.06 ,K,A*37 prędkość nie zaczyna i kończy się zawsze w tych samych miejscach, odczytując Case 24 To...
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, mam nadzieję że tym razem rozwieje już wszelkie wątpliwości... A więc robimy filtr-przedwzmacniacz, tak jak w załączniku. zasilanie może być to same co uC, aczkolwiek zalecam więcej, np. 9V. Masa wspólna. Na schemacie nie rysowałem samego uC, a to dla tego że każdy wykorzysta inny, więc mija się to całkowicie z celem... LCD podłączamy pod dowolny...
Chyba brakuje Home po ___lcde = 1
Niemcy i my mamy tę samą strefę czasową. Zapewne tak, tylko, że oni w nadawanym sygnale nie dodają/odejmują godziny. Wysyłają tylko DCF77TIMEZONE i samemu należy to obsłużyć. Znalazłem coś takiego: res = DCF77TimeZone() Res The target variable that is assigned with the result. The result will be: - 0: when there is no valid DCF77 data yet - 1: when...
Poczytaj w pomocy o instrukcjach: DATA , RESTORE, READ. Kiedyś robiąc skomplikowane menu używałem tego do przechowywania stałych tekstów/opisów. Wszystkie były tej samej długości. Aby nie używać SELECT CASE zrobiłem wstawkę asemblerową. O ile dobrze pamiętam rejestry R8 i R9 są używane jako wskaźnik dla funkcji READ. Możesz też wszystkie swoje dane...
Czy mógłbyś napisać dlaczego 0x38 i 0x39 ? Bo adres musisz bitowo przesunąć o jeden w lewo (czyli przemnożyć x2) ze względu na bit R/W, który znajduje się na końcu transmisji.
Dobrze by było podac w czym programujesz asembler, C++, bascom??
On będzie się zwiększał o 1 w tym przypadku, bo wartość przesunięcia przekazywana do funkcji też się tak zwiększa. Jeśli jednak np. zacząłbyś przesuwać w prawo to funkcja nie działałaby prawidłowo, poza tym musiałbyś tą wartość zapamiętać poza funkcją dla danego napisu (tak, jak teraz przesuniecie ). Dlatego trzeba to liczyć.
Prawdopodobnie zbyt duza rozbieznosc zegarow i na pozycji 6 bitu w komputerze lapie sie juz bit stopu. Przy kwarcu 1MHz w zasadzie najszybsza predkosc jaka sie da uzyskac bez wiekszego bledu w zegarach to jest 4800 bps dla trybu 1x i 9600 dla trybu 2x. Wszystkie predkosci powyzej daja juz blad w okolicach 8% co jest niedopuszczalne. Pozdro Dexter
Tak, zapewne tak się skończy. Ustawić "1" a potem przesunąć ją na odpowiednie miejsce w 74HC595. Tak wydaje się najprościej. Dziękuję za pomoc i zaangażowanie.
Rozwiązałem problem. Tkwił w linii: Dzw = Dzw + 5, u mnie musi być + 10. Widać u mnie nr jest przesunięty.
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
Posiadam płytke testowa AVT-3500. Podłaczyłem wyświetlacz LCD 16*2. Napisałem program testowy i mam problem. W pierwszym wierszu napis jest przesuniety w lewo o dwie litery i nie widać go całego. jesli w programie dam spacje LCD (" Test") to widać cały napis, ale to nie jest rozwiazanie. jaka może być przyczyna. W drugim wierszu jest ok.
Witam Zlecę napisanie programu w bascomie. Ogólne założenia są takie: Urządzeniem w formie suwmiarki wykonywany jest pomiar elementu. Operator po naciśnięciu przycisku wysyła drogą radiową zmierzoną wartość do urządzenia wykonawczego następnie na podstawie tego pomiaru urządzenie wykonawcze ma przesunąć element o określony odcinek drogi. to tyle z grubsza....
Zamień PB3 z pb4 jak schodek się zmieni to bascom jak zostanie to lcd ;)
Nie lubię i nie używam Basica, ale moim zdaniem jest tak: PRINT wysyła dane typu STRING, a FUSING zamienia liczby na ciągi ASCII. Dodatkowo PRINT wysyła znaki końca wiersza. Żeby wysłać bajt spróbuj CHR() mniej więcej tak: PRINT CHR(Msb); CHR(Lsb) Teraz wysłane zostaną dwa bajty - starszy i młodszy a za nimi znaki końca wiersza. Teraz...
To chyba tytułem różnicy rejestrów PINn i PORTn wszystko zostało powiedziane. A w temacie - czułość układu zależy od wielu parametrów: 1. rozmiary pola dotykowego 2. wartość rezystora "pomiarowego" 3. prowadzenie ścieżek między procesorem a polem (na kabelkach wyniki są mało powtarzalne - wystarczy przesunąć kabelek o parę mm bliżej/dalej innego i już...
Bascom jest tak beznadziejny, że adresuje tablice od 1 a nie od zera. To by jednak dawało przesunięcie o jeden a nie 2.
Może spróbuj przesunąć przecinek: zmienna x 10 lub 100 Wykonać obliczenia np na byte (jeśli wynik mniejszy od 255) lub na word/integer Potem z powrotem przesuń przecinek. Pozdrawiam.
bascom przesunąć tablica przesunąć fazowy assembler przesunąć
panasonic 48as640 matryca dyplom elektryka sterowanie mikroprocesorem
domofony cyfrowe reason instrukcja
Najmniej awaryjne silniki TSI: 1.4 TSI EA211 i 2.0 TSI EA888 Gen 3 Laptop nie widzi sieci Wi-Fi, telefon tak - rozwiązania