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]
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...
liczba=0 for i=0 to 2 liczba=liczba+bajt[i] shift liczba, left, 8 next i liczba=liczba+bajt[3]
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ć...
dim TEMP as Word TEMP=Odczyt_temp(1) Shift TEMP, Left , 8 TEMP=TEMP+Odczyt_temp(2)
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]
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 =...
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"
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...
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...
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...
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...
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,...
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...
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 =...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
] Gdybym chciał jednak mierzyć załóżmy do 1kHz to wymaga aby zliczać przepełnienia? Dlatego napisałem..."Nie znaczy to jednak..." w złym obliczeniu 1 sek wartość wynosiła 61630, przy prawidłowym obliczeniu wynosi 34 286 uwzględniając czas 1sek, częstotliwość taktowania 8MHz i prescaler 256. Przecież czas (1 sec.) odmierzasz timerem0, który jest 8-bitowy...
https://obrazki.elektroda.pl/2807245700_... Witam, Temat odgrzany, i nie mojego autorstwa, ale warty przypomnienia. Potrzebowałem aby pewne urządzenie wystawiało mi do PCta kilka klawiszy klawiatury. Słyszałem już kiedyś o projekcie SWUSB pisanym w jedynym języku który choć trochę znam - Bascom. Zaprojektowałem jednostronną niewielką...
Może cos takiego ? Config Scl = Portc.0 ' I2C Clock. Config Sda = Portc.1 ' I2C Data. Config I2cdelay = 100 Declare Sub I2c_ram_write(byval Addres_desired As Word , Byval Byte_to_write As Byte) ' Writes data to the I2C EEPROM. Declare Function I2c_ram_read(byval Addres_desired As Word ) As Byte ' Reads data to the I2C EEPROM. Declare...
Siemka ugh123 :D Co prawda nie mam tego wyświetlacza (Nokia), lecz o wiele większy. Ale do do tematu. Pliki ".bgc" są zapisywane w 8-bitowym kolorze, Ja pracuję z 16-sto bitowymi kolorami, więc konieczna jest konwersja z 8 na 16 bitów. Informacje na temat wymieniony przez Ciebie znajdziesz w sieci (poszukaj). Nie dam Ci gotowca,i sądzę, iż nikt Ci nie...
Prześledź to: (co zbyteczne, wyrzuć. Mega 8 daje radę) '-----------LCD for Nokia 3310 and Mega AVR-------------------------------------... ' 'Based on Louis Frigon program in C: "Nokia LCD Library" at www.microsyl.com 'and 'Darek Dobrowolski program in Bascom: "Wysterowanie wyświetlacza LCD LPH7779(Nokia 3310) przez ATmega128L...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
Wprawdzie ... to nie humanitarnie z mojej strony dawać niemalże gotowca ... :D [syntax=basic4gl]$regfile = "m2560def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64 $include "Config_PCF8583.bas" Declare Sub Displaytime() Declare Sub Settime() Declare Sub Cancel() Declare Sub Plus() Declare Sub Minus() Declare Sub Saveandexit() Declare...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Chciałbym dzisiaj przybliżyć Wam trochę tensometr, który czasem jest również nazywamy: czujnikiem tensometrycznym, belką tensometryczną czy też czujnikiem naprężeń. Będzie tutaj trochę teorii i praktyki. Zostanie tutaj opisany chyba najbardziej popularny tensometr czyli tensometr oporowy. https://obrazki.elektroda.pl/8825635100_...
To jest działający kod dla INA226 napisany dla ATMega16. Pewnie mógłby być ładniejszy, ale wiadomo - zawsze da się coś poprawić :-) Z pewnością da się łatwo zaadaptować dla INA219 Nie porównywałem datasheetów, ale sprawdź adresy do komunikacji, być może będziesz coś musiał zmienić w sekcji "inicjalizacja". Zakładam, że dokładnie przestudiowałeś datasheet...
Jak w języku c stosuje się instrukcje przesunięcia i rotacji? Chodzi mi o Bascomowe instrukcje Rotate i Shift :)
http://obrazki.elektroda.pl/9838687700_1... Trochę z obawą prezentuję kolejny już na elektrodzie sterownik oświetlenia, no bo ileż tego już tutaj było? A jednak nie znalazłem rozwiązania mnie zadowalającego, dlatego też powstał niżej prezentowany układ, powstał ponieważ klasyczne lampy z czujnikami ruchu mają pewną zasadniczą wadę:...
jesli pracujesz nad avr'rem to prosto to mozesz zrobic w bascom avr poleconiem shift
Bascoma nie znam, ale moim zdaniem ten kod działa zupełnie przez przypadek i zupełnie inaczej, niż wyobraża to sobie Autor. Co jest w pętli, a co poza pętlą? To powinno być zrobione w automacie - na początku pętli pobieramy bajt patrzymy, co to za jeden i co to może oznaczać. Offtop: jeśli w Bascom x * 256 jest wolniejsze od shift x left 8, to nie należy...
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ć...
Do przesuwania bitów służy polecenie shift :) Poczytaj w pomocy bascom'a.
zapoznac sie z poleceniem shift albo shift lcd.
Program ma pobierać dane z tablic i ustawiać odpowiednie bity na PORTB. Timer0 ma co 0,5s pobrać z tabeli aktualną prędkość z jaką timer2 ma zmieniać stan na PORTB. Osobno timer'y działają, razem nie chcą . [syntax=vbnet] $regfile = "m2560def.dat" $crystal = 16000000 Config Portb.7 = Output Config Portb.6 = Output Config Portb.5 = Output Config Portb.4...
Witam! W programie napisanym w Bascom do wyświetlania na matrycy 8x8 , używam rejestru przesównego, do którego ładuję dane poleceniem " SHIFTOUT" wygląda to tak: Shiftout Ds_a6276 , Clock_a6276 , Temp Chcąc troszkę to przyspieszyć wpadłem na pomysł żeby zoptymalizować tą funkcję i skleciłem kod w ASM: $asm lds r18 , {Temp} 'Wczytaj do r18...
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
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
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)....
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...
uzyj polecenia shift a linie enabled obsluguj "recznie"
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
Napisz "wolny przesuw" przez u otwarte, "krótki" przez o zamknięte a "hołota" przez samo h i może ruszy :D ...a tak poważniej to na screenie widać, że błąd jest w liniach 479 i 711 więc tam należy szukać. Kliknij w linię informujacą o błędzie to Cię tam przeniesie. Czasem te komunikaty o błędach nie są precyzyjne i wcale nie musi chodzić o zmienną "lista_znakow"...
Witam. Dzieki atom1477 za kolejne informacje. Ja tez sie troche pogubilem w tym wszystkim tym bardziej ze jak testowalem na sofcie na ARDUINO UNO to RFM sie dalo usytawic a ogladane przebiegi analizatorem byly zgodne ze zboczem opadajacym zegarowym. Teraz aby to zrobic jeszcze raz to musze odczekac troche czasu bo ARDUINO zabral studnet na pare dni....
Najpierw poczytać o rejestrze przesuwającym, potem w Helpie Bascoma o instrukcjach rotate, shift i zobaczysz jakie to łatwe.
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ę...
Funkcja pulsein wstrzymuje działanie programu na te 655ms? (lub krócej) Nie, nie wstrzymuje, cały czas mierzy. Tyle tylko może zmierzyc(!!!). Jeżeli mierzony przedział czasu jest dłuższy to powie (Err=1) ; znaczy to że jego miara jest za krótka. Tu masz przykład pomiaru impulsu (active low) timerem 1 [syntax=basic4gl] 'Timer1 measure time interval...
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.
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?
shift register bascom phase shift bascom sprint shift
głośniki studyjne części electrolux denon bluray
Opel Astra G – schemat podłączenia alternatora Bosch, Valeo, Delco, kolory przewodów Obwody bezpotencjałowe – jak rozpoznać zwarcie lub rozwarcie? Pomiar rezystancji, testy PLC