Jest też polecenie Shift.
Jak w języku c stosuje się instrukcje przesunięcia i rotacji? Chodzi mi o Bascomowe instrukcje Rotate i Shift :)
Zawsze odbierasz przez UART dane binarne. Możesz je tylko sobie wyświetlić lub wypisać jako znaki, liczby dziesiętne lub szesnastkowe. Odbierasz bajty, masz z nich złożyć daną 16-bitową, np. tak: wartosc = bajt_mniej_znaczący + bajt_bardziej znaczący * 256 Szybciej będzie wartosc = bajt_mniej_znaczący + SHIFT bajt_bardziej_znaczący,LEFT 8
W bascomie można tak: 'zmienna_long = (zmienna_byte & 3) << 10; Zlong = Zbyte And 3 Shift Zlong , Left , 10 'zmienna_long |= (zmienna_byte <<2) & 3; // ???????? Shift Zbyte , Left , 2 Zbyte = Zbyte And 3 Zlong = Zlong Or Zbyte Pozdrawiam Piotrek
Ehh.. Nie znam bascoma ale jak po prostu trzeba zamienić miejsca to Zamiast [syntax=basic4gl]A=Wart And &B00001111 Shift Wart , Right , 4 B = Wart[/syntax] Zrób [syntax=basic4gl]B=Wart And &B00001111 Shift Wart , Right , 4 A = Wart[/syntax]
Witam.Czy ktoś z was wie jak wsunąć 48 bitów do jednej zmiennej poprzez shift in?Czy zmienna typu string się do tego nadaje?Czy ewentualnie rozbić te 6 bajtów na 6 zmiennych typu byte?Jeśli tak to jak to zrobić?Mógłby ktoś podać jakiś przykład?
jesli pracujesz nad avr'rem to prosto to mozesz zrobic w bascom avr poleconiem shift
liczba=0 for i=0 to 2 liczba=liczba+bajt[i] shift liczba, left, 8 next i liczba=liczba+bajt[3]
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...
no przecież koledzy podają Ci rozwiązania jak na talerzu. Teraz tylko lektura helpa i analiza przykładów w nim zawartych. Przede wszystkim: Lookup For...Next Debounce No i masz symulator w Bascomie, który sobie poradzi z tak prostym programem no i jeszcze nieśmiertelne Rotate Shift
Ok, zrobiłem obliczenia na kartce papieru by przypisać odpowiednie wartości w warunkach :) Miałeś policzyć parametr doobliczenia wewnątrz funkcji Przesow_tekstu2 , bez dodawania parametrów do tej ostatniej...
dim TEMP as Word TEMP=Odczyt_temp(1) Shift TEMP, Left , 8 TEMP=TEMP+Odczyt_temp(2)
zapoznac sie z poleceniem shift albo shift lcd.
Nie wgłebiajac sie w kod moze zamiast LSR daj LSL i po sprawie. Nie ma '8' bitu chyba.
No oczywiście, ze jest proste: Zmienna.7 - dostęp do bitu 7 w zmiennej set Zmienna.5 - ustawienie jedynki na 5 bicie zmiennej. Jeśli odwrócisz logikę zapalania diod, to mogą Ci się przydać SHIFT i ROTATE
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]
Do przesuwania bitów służy polecenie shift :) Poczytaj w pomocy bascom'a.
Witam W jaki sposób można zmienić w Bascomie zmienną typu WORD na dwie zmienne typu BYTE... Jaki Bascom , 51 czy AVR :?: Dla 51 , to dzielenie , Shift ,High,Low , a jak AVR , to jeszcze dyrektywa Overlay . Piotrek
Skąd wiesz, że 64? Da się odczytać a nie ustawic? Czy tylko po pomiarze rezystancji wnioskujesz? Pomiar między B i W rozumiem? Tam sie ustawia czy ślizgacz ma byc z którymkolwiek końcem połaczony czyli Ślizgacz z B albo Slizgacz z A. Normalnie nie są połaczone i pomiar tylko między W do B bo wyjście A nie jest podłaczone domyślnie (FIGURE 5-2). [EDIT]...
Nie słuchasz , co się do Ciebie mówi ;) Sub Odczyt Cs = 1 Cs = 0 Clk = 1 For I = 0 To 11 'start CS 1 potem 0, 1 puls na zegar Call Zegar Y = Dataa 'a to ? , co to niby ma być ??? Shift Y , Left Next End Sub .. Jeśli chcesz sobie "po posuwać" , to użyj instrukcji assemblera ;) Piotrek
Nie definiujesz opóźnienia, pewnie odbiornik nie wyrabia. Jak chcesz przesyłać szybko, użyj SPI.
Jak mogę wysłać dwa bajty ale za pomocą tylko jednego wyprowadzenia w Procku i to w bascomie avr kombinowałem za pomocą Shift out ale to nie to co chcę buduję nadajnik radiowy z własnym algorytmem niestety utknąłem na tym problemie tym wyprowadzeniem mam kluczować nadajnik 432MHz
Błąd w logice. Twój kod czytam tak -> Dopóki zmienna nie ma 5 to cały czas resetujemy pomiar i startujemy nowy (już Select Case byłoby lepsze). Potem próbujemy to czytać jak zmienna ma powyżej 100. No daj spokój. Są tu tego tony jak to obsługiwać. Mój/nie mój sposób to dwa suby. Jeden Startuje konwersję a drugi Czyta. Sprawa polega na tym by odwrócić...
Koledzy...kopiujecie kody znalezione w necie i nawet nie wiecie, że zawierają błędy. Wystarczy sięgnąć do noty katalogowej MAXa i wszystko jest jasne. Po pierwsze nie ma konieczności żadnej wstępnej inicjalizacji układu. Po ustawieniu CS w stan niski można od razu zrzucać dane SO. Wciągamy 16 bitów, z czego pierwszy jest pusty, drugi to device id, trzeci...
uzyj polecenia shift a linie enabled obsluguj "recznie"
Shift obsługuje Dword, tak jak tu w przykładzie, który ma cztery bajty. Bierzesz zmienną która pomiesci to co chesz i potem nakładasz na tę zmienną bajty poprzez Overlay. W ten sposób masz dostęp do poszczególnych bajtów. Tu wyświetlam wszystkie cztery, ale równie dobrze możesz sobie wyświetlić tylko B. https://obrazki.elektroda.pl/9998771000_...
Przesuwanie było w pierwszym poście. Tamta wersja nie działała jak powinna bo odbierała jak pisałem. Na razie nie mam dostępu więc teoria tylko. Czy wystarczy polecenie shift left 1 przesuwając Dana? Pozdrawiam Maciej.
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Sugeruję zapoznać się z instrukcją "SHIFT zmienna, kierunek, ile bitów przesunąć"... 8-)
Tak to da się zrobić. Godziny 5 bitów, minuty 6 bitów, miesiąc 4 bity, dzień 5 bitów, rodzaj x bitów. Razem 20 bitów + x. Kodowanie: Dim temp as long '.... temp = godziny shift temp, left, 5 temp = temp OR minuty shift temp, left, 6 temp = temp OR miesiac Działa jak widać dodajemy przesuwamy o odpowiednią ilość bitów i następną zmienną dodajemy w puste...
Jeśli chcesz potencjometrem regulowac prędkość, to łączysz jego opór pomiędzy szyny zasilania mikrokontrolera, a suwak dajesz pod przetwornik ADC. I przykładowo program: Config Adc = Single, Prescaler = Auto, Reference = Avcc Start Adc i w programie co jakiś czas sprawdzasz sobie: opoznienie = getadc(0) i zamiast waitms 500, dajesz waitms opoznienie...
Pomoże ktoś???
HEJ tu masz kod do sterowania AD9851 http://www.qsl.net/pa3ckr/bascom%20and%2... wytniesz sobie co trzeba :D zresztą gdzies już podawałem na elektrodzie kody do sterowania AD9850/AD9851 a także AD9951 z BASCOM ten kod nakońcu postu to wysłanie obliczonego FTW do DDS /Jarek kod działa, czego dowodem jest http://sp3swj.googlepages.com/vnawoblerl...
Chodzi o instrukcję SHIFT ? ... Nie, chodziło mi o MAKEINT(LSB,MSB), bo co Ci po SHIFT, skoro nie wiesz w którą stronę przesuwać :D
Przy tak prostym problemie nie ma siły żeby nie znaleźć przyczyny. A co się dzieje gdy np. zamiast wszystkich tych ustawień portx = blebleble,pętli do loop i waitms w petli wpiszesz po prostu jakąś wartość do rejestru port (tego na którym masz te feralne diody) tak żeby się któraś z nich zapaliła. Też się jarzy czy pali normalnie? W ogóle jak patrzę...
Użyj pętli for. Co do nazw to możesz np założyć że pierwsze 10 znaków po shift in to nazwa pliku, a kolejne do nast. Shift in to plik
Cześć. Nie miałem czasu wcześniej tego zamieścić. Nawet teraz go nie mam :D Zerknij. W tych trzech przykładach pokazuję jak można ustawiać zmienną która ma cztery bajty. W Bascom bez problemu możesz nadać Aliasy każdemu bitowi. Wprawdzie zmienna ma cztery bajty, ale to chyba nie problem. Poprzez Shiftout możesz wysunąć tylko 24bity, albo wszystkie,...
wywal starsza połówkę np przesuwając rejestr w lewo czterokrotnie komendą LSL - Logical Shift Left a następnie przesuwając w prawo LSR LDI działa tylko na stałych 8bitowych P.S. Bardziej po polskiemu to się "używa" niż "urzywa"
Witam Propozycje dzielenia przez ilość próbek np. 10 są bezsensowne, jeśli już uśredniać to można to zrobić z głową, daj 16 próbek i przesuń wynik w prawo, to że w BASCOMie wygląda prosto to wcale nie znaczy ze po kompilacji wyjdzie prosto. Nie mam BASCOMa pod ręką ale poszukaj instrukcji Shift Right lub coś podobnego. Piotr
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 =...
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)
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...
Najpierw poczytać o rejestrze przesuwającym, potem w Helpie Bascoma o instrukcjach rotate, shift i zobaczysz jakie to łatwe.
Czyli przesuwająca się linijka jak rozumiem... poczytaj o instrukcji Shift, bo na temat odczytu portu (przyjmowaniu impulsów) napisano już na forum wiele.
Trzeba skracać czas który Timer ma odmierzać. W tym trybie zrobisz to najłatwiej w przerwaniu. Zaraz pod "Obrot:" użyj jednej z komend Load albo Timer= Po prostu teraz Timer liczy od 0 do 255. Jak coś do niego wpiszesz to będzie liczył, na przykład, od 128 do 255 czyli krócej. Dodaj sobie potencjometr do układu i będziesz mógł sterować prędkością w...
Witam ! Uruchomiłem przesyłanie danych pomiędzy dwoma procesorami AVR z wykorzystanie poleceń shiftout i shift in. Problem w tym, że procesor odbierający zatrzymuje się na instrukcji Shiftin i czeka aż dostanie dane. Jak to rozwiązać, aby program mógł iśc dalej jak nic nie nadejdzie ? Innymi słowy jak ustalić że jest coś nadawane i trzeba to odebrać...
Poprawiłem - nie sprawdzałem. Dim Odczyt(2) As Byte dim T As Integer dim T1 As Single dim T2 As Single Dim Temp As Long Do Ds18b20 Print Temp Wait 1 Loop End Sub Ds18b20 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Odczyt(2) Shift T , Left , 8 T = T + Odczyt(1)...
Przykład masz we własnym kodzie. Z tą różnicą, że czytasz nie z rejestru 2 tylko 6 i czytasz 1 bajt, a nie 3. Do przesunięcia używasz [url=http://www.avrhelp.mcselec.com/inde...
Zacznij używać klawisz SHIFT. Jak nie poprawisz postów, to będę musiał cały temat umieścić w koszu.
... Coś pominąłem ? Tak, zapomniałeś "pomyśleć" :P Zastanów się nad tymi obliczeniami. T2 = T And &B00001111 Shift T , Right , 4
A tak pozatym to 1wread(2) może odczytywać bezpośrednio do zmiennej Integer. Nie trzeba wtedy będzie tych kombinacji z Shiftem i dodawaniem. Też to zawsze trochę szybciej biorąc pod uwagę że BASCOM niczego nie optymalizuje w kodzie (kompilator C by to zoptymalizował).
Ok masz słownie przedstawione algorytmy dla snifowania I2C start stop i stransmisji (wprowadzanie danych możesz zrobić przy pomocy shift right w bascom) Teraz musisz z tych elementarnych procedur poskładać snifowanie transmisji dla PCF8574. 1. procesor zaadresuje PCF i wedle tego adresu możesz uzyskać czy jest to zapis czy też odczyt i do którego z...
Było już sporo przykładów na forum. Sam to wyłuskałem z przykładów konwersji temperatur z DS18b20. Np. cos takiego: godzina = Makebcd(godzina) Jednosci = Temp And &B00001111 Shift godzina , Right , 4 Dziesiatki = godzina
Jest do tego polecenie Shiftin , Shift Ale całą obsługę sobie trzeba napisać samemu. Powyższe polecenia po prostu wrzucają do zmiennej bit po bicie.
- czym jest / są: Spmcsr.0, Eecr.1. To nazwy rejestrów ATmegi z których odczytywany / badany jest pojedynczy bit . W przypadku Spmcsr bit 0 a w przypadku Eecr bit 1. Taka konwencja zapisu.... - czym są r0, r1, r30, r31 To są rejestry wewnętrzne ATmegi.... - z czego wynika dzielenie firmware-u na kawałki akurat 128 bajtowe ? Z tego, ze zapis Flasha odbywa...
Proszę , oto przykład: $crystal = 11059200 $regfile = "m32def.dat" $Baud = 19200 Dim Buf(160) As Byte , Pdu(140) As Byte , J As Byte Declare Sub Text2pdu() Declare Sub Pdu2text() Do Buf(1) = Lookupstr(0 , A1) 'przepisanie "stringa" A1 do RAM Call Text2pdu() 'konwersja Tekst/PDU...
operacje mnozenia i dzielenia dumnie opisane jako przesuniecie bitowe lepiej zrealizowac jako przesuniecie bitowe ;) polecenie Shift, szczegóły w helpie... inne propozycje jak bede mial wiecej czasu ;) Pozdrawiam
Witam Chciałbym wydzielić tylko to co znajduje się po przecinku odczytanej temperatury na przykład w Tempp. Czyli ładuje wartość odczytaną z ds1820 do Tempp potem: Shift Tempp , left , 8 if Tempp >= 10000000 then Tempp = to co jest po przecinku tak?
... Tzn tak rozumiem, że to powinno działać. Ale nie działa :/ Ok , jedziemy dalej ;) Config Portb = Input Programowo "działa" , niestety sprzętowo jeszcze nie , ponieważ sprzęt(tzn. PORTB) jest źle skonfigurowany :( Piotrek
Gdybym to robił bez wykorzystania peryferiów MCU, zrobiłbym to tak (albo podobnie, nie pamiętam czy Bascom pozwala na użycie zmiennej w wyrażeniach wait): Potrzebowałbym wygenerować 4 przebiegi pseudo-prostokątu do max 1kHz(sygnał CLK) z możliwością przestrajania częstotliwości. Nie muszą one działać równocześnie. Najlepiej to wykonać tak jak kolega...
Na tym spi chodzi ale troszke ostatnio pogrzebalem i duzo lepiej chodzi na i2C z tym ze czy wpychane przez spi czy i2c to przy ladowaniu nieparzystej ilosci bajtow (1 driver jest 2 bajtowy (16bitowy) ) wszystko sie rozkracza kawalek mojego kodu Sub Send_bytes() For I = 1 To 64 ' send byte array to shift regs Tempbyte1 = Bytes(i) Shiftout...
Biorę się za lutowanie:)' -------- EDIT: Nie pomogło...:/ Kod programu: Config Lcd = 16 * 2 Cls Lcd "Hello world." Wait 1 Lowerline Wait 1 Lcd "Shift this." Wait 1 Resztę ustawień wybieram w Opcjach BASCOM-AVRa
UFF udało się i działa ale dodatkowo w bajcie Control/status trzeba było ustawić bit 3 ustawić na zero wtedy pokazuje pozycje 5 i 6 niemaskowane i widać rok . Czy instrukcja shift right bedzie najlepsza do rozdzielenia dnia od roku ? WIELKIE DZIĘKI
mógłby mi kolega dopisać jakiś komentarz do tego fragmentu kodu [syntax=bash] If Old_val <> Leds_pwm Then Old_val = Leds_pwm Speed = 127 - Leds_pwm Shift Speed , Left , 1 M = Memcopy(leds_pwm , Led(1) , 3 , 2) [/syntax]
Musisz wiedzieć że ADC Atmegi ma 10Bit czyli w uproszczeniu skalę do 1023 Kiedy jako napięcie odniesienia dla ADC użyjesz napięcia zasilania procesora (AVCC) to dokładność pomiaru wynosi : 5V/1024 czyli -> 5000mV/1024 = 4,88mV na jedna podziałkę ADC. Nie napisałeś jaki masz ACS a wystepują w wersjach 5A, 20A i 30A Zakładając że masz ten najczulszy 5A...
Częstotliwość taktowania trzeba ustawić bo korzysta z niej _delay_ms() Zmienne: Byte - 1 bajt - uint8_t Word - 2 bajty - uint16_t Long - 4 bajty - uint32_t czytelniej: [syntax=c]#define CLK_PIN (1<<PD0) #define RST_PIN (1<<PD1) #define DQ_PIN (1<<PD2) #define LED_PIN (1<<PD5) #define IN1_PIN (1<<PD3) #define IN2_PIN (1<<PD4)...
Trzeba nauczyć uC jak przekształcać jedno w drugie. Bascomowcy opracowali coś takiego. Sprawdzałem w symulatorze - działa. $regfile = "m128def.dat" $crystal = 8000000 Dim I As Byte Dim J As Byte Dim I1 As Byte Dim J1 As Byte Dim Pdu_len As Byte Dim Smslen As Byte Dim K As Byte Dim K1 As Byte Dim K2 As Byte Dim K3 As Byte Dim K4 As Byte Dim...
Przykładowo zrobiłem coś takiego: A = &B00010010 C = &B00100011 Wartm = A A = Wartm And &B00001111 Shift Wartm , Right , 4 B = Wartm Warth = C C = Warth And &B00001111 Shift Warth , Right , 4 D = Warth i ładnie wyświetla się 23:12
A, to całkiem zmienia postać rzeczy, za pomocą rejestru przesuwającego to się da zrobić, ale oczywiście te WA za pomocą tranzystorów kluczujących, nie bezpośrednio do +5V. Trzeba to zrobić tak jak się to robi dla 74164, a więc poczytaj w helpie o takich instrukcjach jak: ROTATE, SHIFT i odwiedź temat [url=http://www.elektroda.pl/rtvforum/to...
Witam! Udało mi się napisać obsługę pilotów NEC w Bascomie i postanowiłem się tym podzielić. Byłbym również bardzo wdzięczny za wszelkie uwagi, co do implementacji. Poniżej zamieszczam kod, jeśli ktoś ma jakies pytania - śmiało pisać. [syntax=basic4gl] $regfile = "m644pdef.dat" $crystal = 16000000 'KONFIGURACJA LCD Config Lcd = 16 * 2 Config Lcdpin...
No nic nie zmieni. Przecież shiftout jest robiony programowo więc co ma mieć wspólnego z nazwami pinów MOSI , SCK itp ??? Nie rozumiesz jeszcze co to jest programowe SPI?? to znaczy że możesz sobie je skonfigurować na dowolnych pinach procka i nie ma żadnego związku ze sprzętowym modułem SPI.
Witam Bardzo dziękuję za pomoc oaz ten program. Jedyne czego nie rozumiem w programie Kolegi, to zasady działania polecenia Shift. Z tego co zrozumiałem, to chodzi o przesuwanie bitów zmiennej, czyli umożliwia to de facto dzielenie lub możenie liczby. A co w przypadku, gdy chcę pomnożyć moją liczbę np przez 0.74, w tym wypadku byłby to zapis: [syntax=vbnet]Liczba...
widze tu spory nieład.. odczyt 8 bitów można zorganizować tak (półpseudokod): odczytaj_bajt: TMP = 0 M = 128 pętla_8_razy: jeśli Inp=1 to TMP = TMP + M M = M/2 (lub M >>= 1 lub M = M>>1 lub shift M,1,right) wykonaj wystawienie_sekwencji_przejscia_do_kolej... koniec pętli koniec odczytaj_bajt odczytaj_8_bajtow: wykonaj...
to już opanowałem jednak można to zrobić komendą shift z lekkimi poprawkami działa jak chciałem teraz zabieram się za program główny myślę , że z tym pójdzie mi lepiej niemniej dziękuje za zainteresowanie
Odczytaj dwa rejestry PIN, potem zamaskuj niepotrzebne bity w odczytanych danych (AND), potem scal w jedną zmienną (OR). Ewentualnie jak potrzebujesz to poprzesuwaj bity przez SHIFT.
Czy ktoś wie jak rozwiązać problem shiftlcd? Po jego użyciu wyglada na to że wyświetlacz podzielony jest na 2 części 8 znakowe. Na jednej przewija się część tekstu a na 2 osobno 2ga część! ;) Wiem że problem był poruszany tylko w innym kontekście. Dokładniej wygląda to tak że na pierwszych 8 znakach przewija się to co było na tych znakach wyświetlone...
dzieki, z tym bitem CKOPT faktycznie jest tak. Kwarc ruszył. jesli chodzi o linie uart/spi to mam ją ustawioną w stan wysoki/uart. Tak czy siak- transmisja przy odczycie rejestru "CR" jest zawsze synchroniczna, udało mi się odczytać te bity, złapałem je na oscyloskopie. bieżacy problem jest taki: nie wiem jak zapisać te dane. Jak ma wyglądać bascomowa...
Jeśli nie masz na stanie generatora to może zainteresuje Cię, albo kogoś innego, taki najprostszy generator który operowany jest dwoma potencjometrami. Jeden ustawia częstotliwość a drugi wypełnienie 1%-99%. To pozwoli szybko znaleźć odpowiednie parametry dla przetwornicy i potem można ustawić Tiny13 na rejestrach . Kod będzie działał na Arduino Mega2560,...
Witam.Wiem jak obsługiwać jeden rejestr przesuwny(przynajmniej ze strony teoretycznej :D). Schody zaczynają się gdy chciałbym obsłużyć dwa układy, żeby zrobić np to: http://www.elektroda.pl/rtvforum/topic16... tylko że w Bascomie. Wiem że do wysyłania służy instrukcja SHIFTOUT. Można prosić o przykład kodu , który jedną zmienną wysyłałby do jednego...
Witam ! Przesylam uartem sobie zmienna single(4bajty) a w drugim procku ją odbieram, dostaje 4 bajty ktore nie mam pojecia jak wbic do zmiennej single i jak to zrobic najszybciej. Probowalem uzywac SHIFT Zmienna, left ale dziala to tak jak powinno jedynie na zmiennych: byte, integer, word, long. bede wdzieczny za pomoc. Pozdrawiam !
Chyba dopiero zaczynasz z tymi tablicami ASCII :D Znaki od 0 do 32 (chyba) są niedrukowalne. Należą do nich CR Carriage Return i LF Line Feed. Numer 32 ma spacja. Kolejny to chyba wykrzyknik. Teraz jeśli masz tablicę z wzorami jak dany znak ma wyglądać, i na przykład w kodzie Autora informacja jak dany znak ma wyglądać mieści się w pięciu bajtach, to...
Witam, Mam pewien problem ze zmienną Single. Muszę się do niej "dobrać" aby zamienić pierwszy bit (znaku) z "1" na "0". Niestety polecenie Shift nie działa ze zmienną typu Single. Chodzi mi o to, żeby wartości ujemne były zamieniane na dodatnie. Prosze o pomoc. Pozdrawiam
Chce odczyt binarny a potem dodać do siebie.... A od czego mamy instrukcje logiczne :?: D=P3 And &B00000110 'maska na bity 1 i 2 Shift D , Right 'przesunięcie o 1 pozycję w prawo jeśli to konieczne ;) Piotrek
zmienna = 2bajty_starsze SHIFT(zmienna, 16, LEFT) zmienna = zmienna OR 2bajty_młodsze Wszystko to pod warunkiem, że operujemy na formacie big-endian, a BASCOM z tego, co pamiętam używa formatu little-endian. Wobec tego takie coś można zrobić tylko na zmiennej, jeżeli trzeba zapisywać do pamięci (za pomocą poke), to kolejność bajtów trzeba odwrócić....
Witam, tylko w tym poście jest program w bascomie dlatego tu zapytam robię pomiar napięcia [syntax=vbnet] I2cstart I2cwbyte &H80 I2cwbyte &H02 waitms 200 I2crepstart I2cwbyte &H81 I2crbyte bajt1 , Ack I2crbyte bajt2 , Nack I2cstop Danav = makeint(bajt2,bajt1) SHIFT danav , right , 3 Danav = danav *4 xsingl = danav/1000 Napis = fusing(xsingl , "#.##")...
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)....
Witam. Mam któciutkie pytanko: czy da się za pomocą Bascoma przesuwać tylko jedną linię wyświetlacza 2x16 znaków - najlepiej w trybie 4-bitowym? Wspomnę tylko, że polecenie Shiftlcd Left działa na obie linie. Zależy mi na uniknięciu odświeżania górnej linii, która ma "stać w miejscu."
niestety mam... oto program '---------------------------------------... ' (c) 1997-2001 MCS Electronics '---------------------------------------... ' file: LCD.BAS ' demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME ' CURSOR, DISPLAY '---------------------------------------... $sim Rem...
To kontroler 8bit...jak chcesz mieć wynik 12 bit jak nie przez składanie 2 bajtów? Znasz się minimalnie czy jesteś początkujący? Zresztą w bascom możesz normalnie całe 2 bajty czyli word odczytać jak np przez adca_chaXres, czyli zmienna_typu_word = adca_chaXres, po czym Shift zmienna_typu_word , right , 2
Witam Mam pytanie, jak można w bascomie odczytać stan konkretnego bitu z konkretnego rejestru. Dokładnie chodzi mi o odczytanie stanu 4 bitu w rejestrze R6 w Attiny 13. Podłączyłem do niego klawiaturę AT i potrzebuje wiedzieć jaką wartość ma ten bit gdyż jest on używany jako flaga stanu klawisza shift. Podejrzewam że ktoś z was wie co na to poradzić,...
Masz jakieś bardzo dziwne kody wysyłania. Niezgodne z formatem SPI. Ustawiasz SCK na 1 jeszcze przed rozpoczęciem wysyłania (przed pętlą). W pętli SCK ustawiasz na 1 lub 0 zależnie aktualnie wystawianego stanu na linii MOSI. Kompletny burdel. Spróbuj na takim kodzie: [syntax=vbnet]Rfm65w_wrt_cmd_2: ' dobieranie czasow aby rejestru 1 miescila w czasie...
Nie może być dwa razy settime.Błąd --duplicate label box i jeszcze jakieś dwa inne.Nie jestem do końca pewien, ale chyba tu mam coś nie tak: [syntax=basic4gl] Second = Makedec(second) Minute = Makedec(minute) Hour = Makedec(hour) Year = Day Shift Year , Right , 6 Year = Makedec(year) Year = Year + Yearbase Day = Day And &B00111111 Day = Makedec(day)...
Stosując twój kod, jest znaczna poprawa, byłbym wdzięczny za wytłumaczenie komend: "shift" oraz "right" bo w materiałach z jakich korzystam do nauki Bascoma, nie natknąłem się na takie komendy. W kwestii dziwnych wartości kątów, zapomniałem dodać, że korzystam z silnika z przekładnią.
Dostosuj do swoich potrzeb i spróbuj tego: Dim I As Byte Dim J As Byte Dim K1 As Byte Dim K2 As Byte Dim K As Byte Dim Flaga As Byte Dim Pomoc As String * 2 Dim Pomoc2 As String * 1 Dim Dlugosc1 As Byte Dim Dlugosc2 As Byte Dim Numer_tel As Byte Dim Komunikat As String * 80 Dim Numer_gsm As String * 13 Numer_gsm = "48604604604" ' tu wpisz...
Przerwanie_0: 'co 2ms If Liczniczek_przygotowanie_odczytu < 400 Then Incr Liczniczek_przygotowanie_odczytu If Liczniczek_przygotowanie_odczytu >= 400 Then 'co 800ms odzyt DS Liczniczek_przygotowanie_odczytu = 400 Flaga_przygotowanie_odczytu = 1 End If End If Flaga_dodatkowa = 1 'do wykorzystania w innym sub- też co 2ms- to Twoje sterowanie...
Jeśli 1 bajt to A a 2 to B to trzeba je "skleić" poprzez MAKEINIT i następnie przesunąć o 4 bity w prawo. Dim Zmienna as Integer Zmienna = MAKEINT(B , A) Shift Zmienna, Right , 4 (Mam nadzieję, że nie pomyliłem zmiennych)
czy opa proci są tego samego typu AVR - AVR , czy AVR - 51 ? jaka jest odległośc między nimi ( czy mają ten sam zegar taktujący) ? A wiec 2x AVR (AVR-AVR) qwarc 2x 8000000 próbowałem funkciami shift (in/out) tylko jakoś nie wychodziło. Byłbym wdzięczny jeśli wysłały mi ktoś skrucony program.
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
Wysłałem rożne napisy, i jest ok. Program napisany jest w "Bascom" https://www.elektroda.pl/rtvforum/viewto... Bez głębszej ingerencji w kod, mogę modyfikować tylko bajt "key modifier" czyli alt,shift, ctrl i bajt kodu klawisza. Zwykła klawiatura działa dobrze, ale ona nie wysyła sama kombinacji dwóch klawiszy. Wysyła taką kolejność...
Witam Zerknij na mój kod. Procedury napisane są pod AT89S52. ' ten podprogram czyta czas z RTC i wyswietla go na LCD Sub Read_time() I2cstart I2cwbyte 160 I2cwbyte 2 I2cstart I2cwbyte 161 I2crbyte S , Ack I2crbyte M , Ack I2crbyte G , Nack I2cstop Waitms 1 S = Makedec(s) M = Makedec(m) G = Makedec(g) If S = 0 Then Set...
shift register bascom sprint shift schemat shift
matryca iphone lodówka elektrozawór sprawozdanie prawa kirchhoffa
roomster schemat elektrozawór zmywarki ariston
Rygiel drzwiczek pralki Samsung, Electrolux, Bosch – samoczynne odskakiwanie, diagnostyka, typowe usterki Mercedes W204 dekodowanie kluczyka FBS3 – CGDI MB, VVDI MB, programowanie, EIS, ESL