Witam. Kodu w BASCOM nie mam, ale może to ci pomoże. http://www.elektroda.pl/rtvforum/topic96... W jednym z moich postów na dole strony podaję link do stronki, na której bardzo fajnie i przejrzyście opisane jest, jak zastosować szyfrowanie DES. dla kogoś znającego dany język programowania będzie to roboty na jakieś trzy godzinki (łącznie ze zrozumieniem...
Próbowałeś zmieniać word na stringi (funkcją STR() ) ?
liczbę zamień na string: S1 = Str(i), a stringi dodaj.. S=S1+S2+S3
To pewnie wynika z tego że powstało dużo różnych AVR`ów. Jeśli na początku ktoś korzystał tylko z jednego typu to mógł sobie w IDE ustawić konfigurację dla stosów a nawet wyświetlacza LCD czy I2C. Stąd dla wstecznej kompatybilności dalej tak można zrobić. Na przykład ustawienia dla stosów są tutaj tylko moje są już zmienione bo mogę szybko wkleić to...
Potrzebuję 6xADC i2c 8xGPIO :-) Lubię ESP, ale w LUA nie dam rady tego wszystkiego zrobić-C nie znam, a BASCOM jako-tako rozumiem i dlatego taki wybór. Ludzie wymyślili coś takiego jak I2C więc podłączenie ADC i IO expanderów to żadnen problem dla ESP.
Tablica Bufor() jest typu Byte więc to nie Stringi i konwersja Hexval do niczego się nie przyda. Bajty są zamieniane niejawnie we Frame tylko na potrzeby wyświetlania na LCD. Coś w ten deseń powinno działać. Ogólnie to można to mocno poskracać, ale nie chciałem zaciemniać. [syntax=vbnet]Dim Arr(4) As Byte Dim Test As Single At Arr(1) Overlay Dim Bufor(9)...
Zamiast wysyłać przez RS232 binarnie - co często przy przesyłaniu większych porcji danych przez początkujących będzie się kończyło samymi problemami - to nie łatwiej ci zamieniać przesyłane liczby na stringi a po odebraniu ze stringów na liczby. Dzięki temu twoja ramka będzie mogła być po ludzku zakończona znakiem ENTER a co za tym idzie wszystko co...
Bascom domyślnie "naciska za Ciebie Enter" przy printowaniu. Jeśli nie chcesz zatwierdzać linii bo na przykład chcesz nadać w tej samej linii jeszcze jakieś znaki lub całe stringi to stawiasz średnik . To wiadomość dla kompilatora że nie ma dodawać Entera. Rozum więc to tak, że w podpowiedzi kolegi Jaca pierwsza linia jest nadawana z enterem a w drugiej...
Najłatwiejszy "słownik" komend Bascoma jest tutaj -> https://wiki.mcselec.com/bavr/BASCOM-AVR... -> bo widać je wszystkie na raz alfabetycznie i szybko można kliknąć. Tłumaczyć można oczywiście całe bloki teksu, albo w GoogleTranslator, albo DeepL Ja korzystam z wbudowanej pomocy czyli wciskam w Bascom F1 i szukam sobie w Index. Dla mnie działa szybciej...
Witam serdecznie! Mam problem z wysyłaniem po RS danych. Korzystam z funkcji Print , używałem jej z i bez średnika, używałem też konwertowania na hexy cuda, wianki..... :) Program odbierający stringi (c#) czyta mi z tego portu jakieś badziewie (prawidłowy format to 20.58) a dostaję: 20.58 .58 0.58 8 20 20.58 celowo dałem tam spację bo jest, w bascomie...
Witam. Buduję sobie urządzenia połączone ze sobą interfejsem RS485. Urządzenia przesyłają pomiędzy sobą informacje całymi stringami. Chciałbym zrobić coś w rodzaju CRC w celu wykrywania i eliminacji błędów transmisji. Co pomiędzy sobą przesyłają urządzenia? Urządzenie A wysyła do urządzenia B kilka informacji (stringów) kolejno po sobie. Na podstawie...
jak zmienną cool2 dam na byte to kompilator wywala błąd i drze się o stringi :D
Poczytałem sobie o tym "Pack" Jest to funkcja która zamienia poszczególne bajty na string. Dodatkową ważną informacją jest, że jak to w stringu bywa, każdy taki string będzie zakończony NULL`em czyli wartoscią 0. Taki string terminator. Bascom oczywiście też kończy stringi zerem. Kiedy więc wysyłasz : Print "test wyswietlacza" ; To na końcu wyświetlacz...
Tak często bywa w przypadku programów na Arduino ;) Wkleiłem to żeby było wiadomo jakie stringi przesyła ten program. Prośba do wszystkich. Wskazaliśmy autorowi tematu różne drogi i gotowy przykład w C, ale zadecydował, że zostaje Bascom. Proszę dalej nie ciągnąć tematów innych języków.
w sub'ie wyciąłem (k), ale wciąż nie działa Nie wiem czy Bascom obsługuje w ogóle to co chcę zrobić. A muszę wysyłaś stringi jako element tablicy bo mam ich trochę, nie chcę deklarować każdego z osobna, poza tym wykorzystyjępętlę do zwiększania k. Wciąż nie działa
Ale po co zamieniałeś to na pojedyncze znaki? Teraz zrobienie konwersji na Byte jest trudniejsze niż by było gdybyś to pozamieniał na całe stringi (i wtedy był bym skłonny dać gotowca :D).
String chyba i tak musisz przekodować na odpowiadające kształtom liter sekwencje na wyświetlaczach. Całkowicie przypadkiem dwa dni temu napisałem takie coś żeby sprawdzić wyświetlacz który poskładałem. Może sie admin nie obrazi za inne forum albo się usunie ;) Nie będę narzekał. Tutaj wrzucam stringi całe i program sam oblicza ich długość i zamienia...
Ja to robie na przykład tak: dziele cyfre co ja mam wyswietlic przez 1000 i mam juz liczbe tysiecy czyli moge ja wyswietlic na pierwszym miejscu, nastepnie poleceniem a=wynik mod 1000 dostaje reszte z dzielenia przez 1000 dziele ja przez 100 i mam liczbe setek i znowu mod 100 i mam reszte z dizelenia przez 100 kolejne dzielenie przez 10 da w rezultacie...
a Temperatura(1) to co to jest? ID DSa odczytujesz? to niby w czym je trzymasz? stringi jakieś jak masz określoną długość i coś z nimi robisz w trakcie działania programu....
Można to tak zrobić: [syntax=basic4gl]Dim Command As String * 4 , Bajty_command(5) As Byte At Command Overlay Printbin Bajty_command(1) ; Bajty_command(2) ; Bajty_command(3) ; Bajty_command(4) ; Bajty_command(5)[/syntax]
WAIT 2. faktycznie - juz poprawione Mój ulubiony "kwiatek" :) Gosub Wybor Wybor: Potem mamy masę gosub'ów bez poprawnego wyjścia. gdybys konkretnie wyjasnil co jest nie tak. To nie watchdog tylko przepełnienie stosu. Chociaż i watchdog może w kilku przypadkach resetować, zwłaszcza tam gdzie jest Jak nie ma włączonego watchdoga program staje w miejscu...
Ato jest proste czytaj co pisze kompilator : Source string could be too big to fit into target string in line 375 (....) Masz zbyt długie stringi ;) fajnie brzmi to pierwsze a możliwe ze program mimo kompilacji będzie ci nadpisywał stosem zmienne , Ramu jest tyle ile jest i trzeba nim dobrze dysponować jeśli przy każdym przerwaniu odkladasz na stos...
A więc udało się :) Oczywiście korzystam z funkcji tak jak chciałem. Deklaracja: Declare Function Ds_odczyt(byref Stringi As Byte ) As String Wyszukiwanie: ' Wyszukiwanie Ds_count = 0 Ds_tempcount = 1wirecount() If Ds_tempcount > 0 Then Ds_i = 1 Ds_j = Ds_i + 7 Ds_id(1) = 1wsearchfirst() Do If Ds_id(ds_j) =...
Racja. Do tego typu obliczeń są potrzebne większe procki. Wracając do tematu licznika. Stworzyłem już kod, który odlicza czas i zlicza naciśnięcia(maksymalne wychylenia). Nie mogę dojść do sposobu jakim mam obliczyć resztę. Nadal ufam,że jeszcze na ATtiny uda mi się to zrobić :) Wzór G = k * l/T^2 gdzie k tam stały współczynnik 39,44 l - długość, zakładam...
I znowu mam dziwy problem z moim led cube. Sprawa ma się tak że odczytuje plik txt z karty i jeden plik śmiga aż miło a drugi już nie :( Program działa tak: 1 otwieram plik .txt 2 pobieram z tego pliku pierwszą linijkę w której mam zapisane krotność powtarzania jednej klatki animacji. 3 kolejnych 8 linii to długie stringi które później dzielę na 3 znakowe...
Wielkie dzięki e marcus, naprawdę mi pomogłeś. Mój program jest już niemalże na ukończeniu jednakże mam jeszcze jeden kłopot... Trudno tu "zgadnąc" przyczynę nie widząc całego programu. Wielokrotne zaliczenie akcji przycisku może byc w pierwszym rzędzie spowodowane fenomenem "Switch bounce". Zapobieganie temu zjawisku zwane jest 'DEBOUNCE'. Patrz odpowiednia...
witam, chcę osiągnąć coś takiego: Declare Function Set_by_spi(co As String*10 , Wartosc*40 As String , Procesor As Byte) As Byte Dim A As String * 10 A = "1234567890" Dim B As String * 40 B = "b12345678901234567890" Dim C As Byte C = 1 Dim Sesja3 As Byte Sesja3 = Set_by_spi(a , B , C) do loop end '''tutaj PROBLEM...
Jak koniecznie ze stringu chcesz wyłuskać pojedyncze cyfry, to użyj "MID" znak = MID( zmienna_tekstowa , początek [, ilość znaków] ) Pozostaje skonwertować stringi do zmiennych przez "VAL". Naturalnie prościej zrobić jak pisał poprzednik.
Niezupełnie - chodzi o to, że do programu wartość jest dostarczana właśnie jako string. Muszę mieć natomiast zmienna, aby móc ją porównywać z zadaną wartością (mniejsza, większa itp). Ale nie może być tak, że zamiast 84.2 (która to wartość jest prawdziwa, i taka jest w stringu), to do porównania używam 84.199999 czy coś podobnego. Mógłbym usuwać przecinek...
pewnie piszesz w bascom ,wiec masz kod odbierania danych (całych stringów ) w przerwaniu :) : Config Serialin = Buffered , Size = 20 do If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor Call Read_rs232 End If loop Sub Read_rs232 Dim Bufor As String * 24 Input Bufor Noecho end sub
Nigdzie nie jest pokazane jak są zdefiniowane stringi Ss i zmienne I. Może stringi masz za krótkie. W raporcie po kompilacji, niema żadnych warningów dotyczących stringów?
To przycinaj zmienną LONG przed skonwertowaniem jej na text.
Witam Mam dwie zmienne typu string i chcę zrobić tak : Dim Energia_s As String * 2 Dim Energia_na_lcd As String * 2 Energia_na_lcd = Enegria_s Po czym kompilator wywala mi błąd 242 source varibles does not match the target varible, dziwne ? Jak więc mam to zrobić ?
możesz od razu napisać : Lcd Fusing(napiecie0 , "#.#"); i nie trzeba deklarować stringów
Nikt nie jest w stanie mi pomóc? nie wie wiem dla czego kontroler nie porównuje wartości Rozumiem że jesteś początkujący , ale nawet Ty powinieneś wiedzieć , że nie porównuje się zmiennej binarnej(Us) ze stringiem (Tmp) :( To tak , jak byś porównywał kilogram z czerwonym :D Poza tym , ten program jest niezwykle pamięciożerny(Fusing,Single). Jeśli ten...
jak dodac dwa bajty np 1 i 2 w sposob taki aby wyszlo 12 a nie 3 chodzi mi o wynik w bajcie .... bo umiem to zrobic na stringach
Bo taka konstrukcja w Bascom nie jest dopuszczalna do operacji na stringach - to że coś jest intuicyjne, nie znaczy, że istnieje w specyfikacji języka ;-)
...może jakaś sugestia please ;) Zapomniałeś o $hwstack = 32 $swstack = 32 $framesize = 16 Wartości w/w parametrów mogą być inne(czytaj:większe) , jeśli "obrabiasz " długie stringi. Poza tym , komplikujesz niepotrzebnie proste rzeczy(czytaj:nie "wgryzłeś się" w help-a) ;) Function Scanstrsp() Local I As Byte I = Instr(text , Sep) 'zwróć...
A w ogóle to ten input zadziała Ci tylko raz, po uruchomieniu programu (poza pętlą Do...Loop), ponadto w przypadku takich urządzeń nie robi się "eliminacji drgań styków". A ma szanse się skompilować i ba, nawet działać, tylko chyba bascom nie dopuszcza porównywania stringów wprost, dlatego zastosuj odpowiednio skonfigurowaną funkcję INSTR. Ale pierwsze...
A najlepiej by było jakby można było używać kompilatora bascoma w eclipse :) i wszystkie kłopoty by zniknęły No ja bym dodał, żeby Bascom jeszcze miał wskaźniki, C-stringi, i oczywiście podział plików na *.c oraz *.h ;)
[syntax=c]TWI_write(pgm_read_byte( &cyferki[cy4] ));[/syntax] Mam tablicę znaków wyświetlacza "cyferki" a zmienną "cy1" - "cy4" wskazuje odpowiedni znak z tablicy. W buforze z RFM12 mam stringi a potrzebuje int aby wyświetlić znaki z tablicy.
To jest dosyć niewygodny sposób na przesyłanie zmiennych w postaci znaków ASCII i sam się nieco ograniczasz, bo pierwsza zmienna musi mieć zawsze dwa znaki, druga trzy itp... Jeśli chcesz troszkę bardziej uniwersalnie podejść do tematu to przesyłaj wartości zmiennych w ten sposób: PRINT XX,YYY,Z,KKKK czyli każda wartość oddzielona np przecinkiem. Później...
Zaprezentuj krótszy program tylko z odbiorem, ale z wszystkimi ustawieniami, configiem i deklaracjami zmiennych. Może coś się od razu rzuci w oczy :D Nie wiadomo czy zadeklarowałeś wielkość ramki której Bascom używa do obrabiania danych pracując na stringach lub tablicach ($framesize) Kiedy jest za mała to program może jeździć po innych zmiennych ;)
No właśnie tak jak napisałeś. Parameter(8) = "Off" to jest właśnie zapis. Oczywiście pod warunkiem że jest to tablica Stringów a nie jeden String.
jeżeli już uzyjesz procka a dwoma uart'ami to budujesz procedure która odbiera od twojego urządzenia string'i jeżeli wykryjesz odbior pierwszego string'u (czyli nagłówka) np if odebrany="wzór nagłówka jeden" then ustaw flagę że nastepny string to będą pierwsze dane wtedy : if flaga1=1 then pierwsze_dane=odebrana:reset flaga1 z drugim nagłówkiem i drugimi...
Faktycznie! przecież bzdury miałem. Poprawiłem na: Function Stringi(zawartosc As Byte) As String Local Tt As String * 3 Tt = Str(makedec(zawartosc)) Stringi = Format(Tt , "00") End Function , ale teraz na wyświetlaczu mam 00, które po kilku sekundach zmienia się w 01, 02...09, 00 i stoi. Stos standardowo wg...
chcę zrobić tablicę z nazwami dni tygodnia do kalendarza. deklaruję dim tablica(7) as string * 12 Po co Ci aż 7 12-bajtowych stringów :?: Wystarczy: Dim Dzientygodnia As String *12 , Nrdnia As Byte ... Dzientygodnia=Lookupstr(Nrdnia,Tabli... '0=Pon, 1=Wtor, ... Lcd Dzientygodnia; ... Tablica: Data "poniedziałek", "wtorek"...
Nie znam sie na asm za bardzo, ale wydaje mi sie ze bin czy hex mozna zdeassemblowac na asm, tam spokojnie pozamieniac stringi nawet na takie o innej liczbie znakow. Nasteonie calosc skompilowac. Tylko musisz miec opdowiedni kompilator i deassembler. Niestety nie wskaze Ci takich programow, bo nigdy sie assembleremi nie zajmowalem, ale mysle ze na elektrodzie...
Albo w ogóle nie bawić się w liczby zmiennoprzecinkowe, tylko... utworzyć 2 zmienne całkowite, jedna odpowiedzialna za części tysięczne, druga za jedności i wyższe. Dodatkowo zaoszczędzisz nieco flash'a, gdyż operacje na liczbach zmiennoprzecinkowych zajmują dużo pamięci programu. A zabawę w Stringi też odradzam... nie wytaczajmy armaty na muchę :D
Co to znaczy ilość jest zmienna? W Bascomie rozmiar tablicy jest stały. Rozumiem, że pozostałe po prostu są pustymi stringami. Może polecenie SORT się nada, Ale do zmiennych STRING go nie próbowałem używać więc....
stringi bascom tablica stringi bascom atmega bascom stringi
zawieszona nawigacja goclever reallocated sector samsung ue40k5500
kompresor bezolejowy zawór zwrotny karta tonsil
Schemat ideowy radiotelefonu Maxcom WT-210 - dostępność i alternatywy Zamienniki tranzystora BT40T60: IHW40T60, STGW40V60F i inne