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() ) ?
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...
Ale - dla stringu "84.2" otrzymuję wartość zmiennej 84.199996946 Niestety rozdzielczość zmiennych typu Single jest skończona i nie można w nich zapisać każdej liczby zmiennoprzecinkowej. Jak sądzę, jest to problem konwersji do single - czy jest jakiś sposób, aby otrzymać tą wartość dokładnie taką jak w stringu ? Jeśli masz dużo pamięci RAM to zastosuj...
liczbę zamień na string: S1 = Str(i), a stringi dodaj.. S=S1+S2+S3
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.
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]
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
jak zmienną cool2 dam na byte to kompilator wywala błąd i drze się o stringi :D
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 ;-)
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?
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 ;)
Witam, mam mały problem ze stringami w Bascomie. Może pokaże to na prostym przykładzie. dim tekst as string * 10 dim tekst1 as string * 2 dim zmienna as long zmienna = 12345 tekst1 = str(zmienna) tekst = format(tekst1, "0.0") I teraz wynik jest taki, że zmienna tekst1 = 123 (nie powinna 12, skoro jest string * 2 ? ), a zmienna...
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 ;)
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.
Raczej to nie wina wysyłania printa. W końcu jest wait 1 po zapisie do czujnika DS18b20. Ja stawiam na złe odfiltrowanie LF po CR . Zamiast do "programu odczytującego stringi" podepnij się np. do Putty lub innego terminala i tam sprawdź jakie dane są słane.
a prościej się nie da? stringi mi zżerają przestrzeń
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...
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...
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....
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...
[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.
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...
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...
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...
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...
Hmm wróżki na urlopie... A jakich danych się spodziewasz? A jakiego typu jest zmienna? Czy dane jakich się spodziewasz są stałej długości? Dodano po 46 PS do przechywtywania było chyba input (po RSie) albo coś takiego - czytało do CRLFa jako stringi...
...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óć...
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).
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
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)...
pewnie to jest CRC8 (8 od ośmiu bitów) i tego należy szukać. nie wiem tylko jak bascom traktuuje takei większe liczby i czy to czasem nie operuje na stringach, czy tablicach. W kadym razie jak znajdziesz już algorytm, to potrzebne są jeszcze początkowe wartości, jest kilka standardowych.
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...
Ja bym liczył normalne CRC (nie na żadnych stringach). I w odbiorniku liczył ponownie (tak samo jak w nadajniku), i sprawdzał czy się zgadza. Tak chyba najprościej.
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...
Jakoś mi ten post umknął pewnie przez to że to weekend :P W Attiny2313 SRAM`u jest dość bo 128 B tylko pewnie zderzyłeś się z czymś o czym ludzie, albo nie wiedzą, albo zapominają. Otóż chodzi o stosy. Nie wgłębiając się w zagadnienie stosów podpowiem, że operacje na stringach Bascom przetwarza w tak zwanej ramce. Kiedy ma podzielić string to robi jego...
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....
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ć ?
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.
Znalazłem swój program w którym jest: Do Disable Int0 Enable Interrupts Getrc5(address , Command) Command = Command And &B01111111 Call Lcdinit Str_address = Str(address) Str_address = Format(str_address , "" ) Str_command = Str(command) Str_command = Format(str_command , "" ) Lcdclear Lcdgoxy...
możesz od razu napisać : Lcd Fusing(napiecie0 , "#.#"); i nie trzeba deklarować stringów
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...
Ten program jest dziwnie napisany i być może po czasie brakuje mu stosu. Już wyjaśniam. 1. Po pierwsze powinno się deklarować wielkość stosu #hwstack bo inaczej to masz tam tyle ile masz wpisane w IDE a tam możesz mieć dalej jakieś Tiny2313. 2. Po drugie użycie instrukcji GoTo by przeskoczyć z jednego Sub do drugiego lub wyjście z Sub do pętli głównej...
Witam, jak wiadomo (przynajmniej mi narazie) z helpa Bascoma - zwykłe polecenie PRINT generuje na końcu dwa dodatkowe znaki CR i LF również jak wiadomo polecenie INPUT reaguje na znak CR ... co więc się dzieje ze znakiem LF po instrukcji INPUT jeśli mamy zdefiniowany jakiś bufor: Config Serialin = Buffered , Size = 80 Input String_var Noecho i przylatują...
Wydaje mi się że nie opłaca się ładować tych 32 bajtów do eepromu , pewnie procedura odczytująca zajmie więcej miejsca. Ale :) można by tam coś innego władować, w eepromie masz coś około 500 bajtów wolnych. Wolne miejsce można by wykorzystać na teksty wyświetlane na LCD. Niektóre łańcuchy też się powtarzają. Często masz np . [syntax=basic4gl]Locate...
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...
Witam wszystkich. Proszę o drobną pomoc. Muszę wyodrębnić dane z łańcucha string odebranego po UART. Łańcuch ten jest bardzo długi i za każdym razem dane z łańcucha są umieszczone w losowy sposób, długość łańcucha także za każdym razem jest przypadkowa. Jedyną stałą zależnością jest fakt, że dane zawsze rozdzielone są przecinkiem "," i chciałbym je...
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
po pierwsze skąd wytrzasnąłeś: Enable Utxc ???? - to jest bez sensu poza tym po co taki mały bufor 6 znaków. Daj co najmniej 20 jak w przykładzie po kolejne pisałem ci o specjalnym doklejaniu na końcu PRINT'a znaku CR czyli Char(13) i średnika po tym - ale widzę, że albo kolega nie przeczytał tego co napisałem albo tak krótka pamięć ? ;) a u ciebie...
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...
To wychodzi na to, że ja przesyłam stringi o długości 5 znaków (XX.XX) no i jeden znak to pewnie bajt czyli 5 bajtów w sumie. Na podglądzie wiem, że są one przedzielone "\r\n" , co zatem zrobić w takim przypadku? Programuję w c#.
Witam wszystkich Elektrodziaków! Siedzę nad tym juz jakiś czas i nie umiem znaleźć żadnej pomocnej mi funkcji. Chodzi mi o wydobycie z poszczególnych literek stringa kody ascii. Funkcja ASC() była by bardzo pomocna, z tym że zamienia ona tylko pierwszy znak. Co z pozostałymi? Marzy mi się nawigacja po stringach jak w pascalu tekst[10] i po sprawie....
Ja proponuję użyć RFM12B, albo RFM01/02. Posiadam te moduly i spedzilem wiele (naprawde wiele) godzin na probach uruchomienia ich. Niestety bezskutecznie. Byc moze moja wiedza programistyczna nie jest az na tyle zaawansowana. Przegladalem mnostwo materialow, i testowalem wiele softu ale nijak nie moge ich uruchomic. Dlatego przeszedlem na cos prostszego....
O ja... Przepisujesz (a nawet porównujesz!) Stringi. Porównuj temperatury jako liczby Integer. W ogóle to tą zabawę w wyznaczanie znaku też mógł byś sobie darować. Przecież liczba Integer zawiera znak sama w sobie i wyświetlenie jest jako takiej na LCD samo zagwarantuje dodanie bądź nie dodanie znaku "-".
Prawdopodobnie problem w za krótkiej długości zmiennej do której odbierasz znaki. Bo ona ma 29 znaków czyli tyle ile przesyłane Stringi. A powinna być dłuższa. Choćby po to żeby zmieścić ewentualny nieproszony bajt podczas błędu w transmisji. I trochę nie zrozumiałeś idei odbierania w przerwaniu. To miało polegać na odbieraniu w przerwaniu po jednym...
Moi Drodzy, Przepraszam Jezeli Moje Pytania Beda Glupie Lub Lamerskie Ale Nie Moge Sobie Z Pewnymi Bascomowymi Problemami Poradzic. Pytan Jest Troche Wiec Podziele Je Na Oddzielne Posty Aby Szybciej Mozna Bylo Na Nie Odpowiedziec: Praca Na Portach. Realizujac Projekt Wspolpracy Procesora Z Dekoderem Dtmf Musze Odczytac Wartosc Podana Na Port. Co Wazne...
Hmmmm, liczba o 16 znakach to dość nieprecyzyjne określenie :] Jeżeli chodzi Ci o przechowanie 16 cyfr, każdą z osobna, to oczywiście zwykły łańcuch tekstowy, czyli STRING (chyba tak to w bascomie sie zwie). Ale na stringach nie da się wykonywać operacji matematycznych na stringach (no dobra, da się, ale trzeba wszystko samemu od zera pisać :] ), operacje...
Trochę przerobiłem program bo mam pod ręką tylko jakieś urządzenie z wyświetlaczem TFT a ten wyświetla tylko stringi. [syntax=vbnet] Dim B As Byte Lcd_text "Scan start" , 0 , 0 , 4 , White , Black For B = 0 To 254 Step 2 'for all odd addresses I2cstart 'send start I2cwbyte B 'send address If Err = 0 Then 'we got an ack Lcd_text Str(b) , 0 , 50 , 4 ,...
Jeśli piszesz tak: Uart = Inkey() to odbierasz jeden znak z UARTA. Nie możesz potem porównywać ten jeden znak z ciągiem kilku znaków typu "12345" Musisz odbierać znaki pojedyńczo i dodawać je , dopiero jak odbierzesz np 5 znaków to wtedy porównywać ale już nie znaki lecz stringi. Zadeklaruj sobie zmienną typu String np 10 elementową. A potem wyzeruj...
Nie bardzo wiem jak "przesuwać" "0" na ostatnich 4 miejscach w pętli "For" Ponadto gdy nie jest naciśnięty żaden przycisk to zwraca 59667, ale to raczej nie problem. A żeby joy działał nie można wpisać mu zer na początku &B pierwszego układu. Ale możesz podpowiedzieć Very Happy . I nie wiem czy takie wartości da się przypisać w prosty sposób do liter...
No własnie tez nie bardzo mi to się z zgrywa ze standardem ISO. Program napisałem w C. Nie chciałem go tu wpychać bo to temat Bascom. A Uart chyba sprzętowy. Mam 4 uarty z Mega2560 używam serial2. A transmisja po prostu "Serial2.baud(10400);" Mogę wkleić cały kod jeżeli to coś da. I czemu tak dużo F ? Czy to przez to podciągniecie do +12V ? Bo wysypuje...
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...
Już sobie odpowiem: Przy Stringach znak odebrany zaopatrzony jest w zero na końcu. Wystarczy teraz dodać do zapisu: select case znak case "ON01 0 " Set Portc.5 end select i wszystko śmiga :)
Witam, sorki za może dziwne pytanie ale dopiero uczę się C, to początki. Otóż jak tu działać na tzw STRINGACH chciałbym np w programie do jakiejś zmiennej czy wskaźnika (obojętnie co) w trakcie programu w różnych np IF'ach podstawiać jakiś tam różny tekst. No i tu napotykam na ogromny problem. Jak to robić. Narazie wiem tyle, że jak zdeklaruję sobie...
Tak jak pisał "mickpr" musisz sobie to napisać ręcznie. Potrzebujesz dwóch znaczników - początek i koniec, szukasz w stringu (dobrze, że nie w stringach ;-) ) przecinka, zapisujesz pozycję jako początek, szukasz kolejnego przecinka, zapisujesz jako koniec. MIDem wycinasz tekst między początek+1 a koniec-1 i masz oczekiwany fragment. Następnie poczatek=koniec...
W porządku, ja mam swoją procedurkę w asm, co też obsługuje stringi, w dodatku ze zdefiniowanym znakiem końca tekstu (zeru musiałem powiedziec papa, bo jest kodem jednej z zdefiniowanych literek charakterystycznych dla naszej narodowej pisowni) teraz tylko jak chcę coś wypluć na wyświetlacz, to wpisuję do rejestrów ZH:ZL adres w pamięci programu, pod...
oczywiście, że można to rozpatrywać jeszcze na miliony sposobów. Ja w swoim teście nadaję te ramki co ok 50ms. Jeśli ustawię ich wysyłanie np co 10ms to tych błędów nawet bez zasobochłonnych procesów pojawia się nieco więcej. Jeśli ustawię interwał czasowy na 100ms to błędne ramki nie pojawiają się nawet przy obciążaniu windy innymi procesami. Te błędy...
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.
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) =...
Przy okazji mam jeszcze jedno pytanko.Co prawda nie dotyczy lcd ale szkoda zakładać nowy temat. Chodzi o stringi. Otóż każde z moich urządzeń w sieci zdaje masterowi tzw. raport. Otrzymuję taki tekst jako odpowiedź z modułu: <007_(at)_/TIN:H18.0_TOUT:H16.7_POZ:0... i teraz pytanie....
Witam Mam pewien program z obsługą MMC i dość dużą ilością różnych zmiennych, w Bascomie program kompiluje się prawidłowo nie pokazuje żadnych błędów ale na końcu raportu mam coś takiego : Source string could be too big to fit into target string [T(1)>___STRBUF] in line 483 Source string could be too big to fit into target string...
Dołączę do dyskusji C kontra Bascom. tmf napisał Warto spojrzeć kto doradza - jakoś tak się składa, że C/C++ doradzają osoby mające tysiące postów na koncie i często setki lub tysiące "pomógł", po przeciwnej stronie mamy osoby z licznikiem na poziomie kilku-kilkunastu. Mam "licznik na bardzo niskim poziomie" mimo to doradzam C/C++. Jestem osobą która...
Witam. Niejednokrotnie zdarza się, że mam potrzebę oprogramować urządzenie z podstawką na Attiny2313. Niestety ma on tylko 2kB pamięci kodu programu, co przekłada się na to, że funkcjonalność programu trzeba niejednokrotnie ograniczyć do minimum (a szkoda). Czy znacie jakieś triki optymalizacyjne, znacząco minimalizujące objętość kodu wynikowego? Obsługując...
(at)adamusx ja umiem bascom i asm jak potrzeba to wstawiam. co c niemogę sie przekonać bo ma taką dzika składnie. i wkurza mnie że wszyscy tylko ten c i c jak by to było niewiem co. wiem że basick kładzie go na łopadki jeśli chodzi o operacje na stringach hehe. juz kilka razy prubowałem przejść na c ale zawsze wracam na Basica. (at)bartods wyświetlanie...
Witam. Szukam sposobu przewijania kilku stringów w tym samym czasie na ograniczonym obszarze wyświetlacza lcd znakowego Mam wyświetlacz lcd znakowy 4x16, z którego mogę wykorzystać tylko 6 pierwszych znaków by wyświetlić cały długi string na wiersz. Napisałem funkcję która buforuje mi 14-sto znakowego stringa i przesuwa go w polu ograniczonym do 6 znaków...
nie o to mi chodziło, co mam zrobić z tym stringiem żeby eeprom mógł go łyknąć ?
Jak zadziała polecenie Len() ? obliczy długość dołączonych zmiennych T1 i T2 ? Tak, choć samodzielne sprawdzenie tego choćby w symulatorze zajęło by Ci 60 sekund ;-) Oczywiście mowa tutaj o zmiennej Command, która, zakładam, jest stringiem.
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...
Dla zmiennej slowo2 (string *10) przechowującej string składający się z trzech znaków potrzebuję mieć dostęp do pojedynczych znaków. Chcę do nich docierać poprzez: Znak1 = Chr(slowo2_array(1)) Znak2 = Chr(slowo2_array(2)) ... etc. Konwertuję więc zmienną slowo2 do tablicy: Dim Slowo2_array(10) As Byte At Slowo2 Overlay Mam już stworzoną tablicę (a przynajmniej...
Teoria powiadasz. Ciekawe co czytałeś... Mimo iż wyczuwam lekki roszczeniowy charakter wypowiedzi to postaram Ci się coś jednak wytłumaczyć. Kiedy pisałem o podpisywaniu zmiennych to miałem na myśli takie wysyłane osobno. Od razu uściślijmy, że dla takich wartości dwubajtowych jak Word łatwiej to przesłać jako Hexstring. Długość stringa zawsze będzie...
Jako wprawkę w Bascomie stworzyłem coś takiego: Dim Wynik As Long Dim TL As Long Dim Dzielnik as Long Dim TW As Word Dim DzielnikW As Word Dim Cyfra As Byte Dim Z As Byte Wynik = 956360 Restore DzielnikData TL = Wynik For Z = 1 To 2 Read Dzielnik Cyfra = 0 While TL > Dzielnik TL = TL - Dzielnik Cyfra = Cyfra + 1 Wend Print Cyfra Next Z TW = TL For...
Szczerze to jeśli ktoś ma takie problemy to znaczy, że coś sobie zamotał i prawie na pewno da to się łatwiej rozwiązać. Nie da się tak zmiennych wstawiać jak ty chcesz ze stringów podczas działania programu. Jedyne takie kombinacje są dostępne za pomocą preprocesora.
Nadawana Komenda to liczba, a po odebraniu porównujesz to do tekstu. ("1") Bo odbieram to stringiem. Źle?
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...
Witam Jak użyję kodu, czyli podam "na sztywno". Dim D1 As String * 8 Dim D2 As String * 8 Dim G as Byte D1 = "pwm1:050" D2 = Mid(d1 , 6 , 3) ' wyciągnięcie liczby 050 G = Val(d2) ' usunięcie 0 otrzymuję wynik G = 50, czyli wszystko OK, natomiast nie udaje mi się zmusić programu do współpracy z stringiem E
Może źle to opisałem. To ma być pilot, który odczytuje kody z innego pilota, zapisuje je w eepromie, i przyporządkowuje kolejny klawisz. Z tym stringiem to było tak tymczasowo do testów, żeby zmniejszyć długość kodu, a później przerzucę się na eeprom.
Specjalnej funkcji to nie ma, ale nic nie stoi na przeszkodzie napisać kilka linijek które to zrobią. Np. w pętli for next z użyciem mid()
Witam, Mam problem i nie wiem jak go rozwiązać. Chcę konfigurować moduł Wiznetu (chodzi tu głównie o zmianę adresu IP) aby mógł pracować z różnymi adresami. Używam instrukcji Settcp 00.08.220.03.07.24 , 10.0.0.19 , 255.0.0.0 , 10.0.0.0 i chce w miejsce numeru IP podstawić jakąś zmienną (Settcp 00.08.220.03.07.24 , IP_STAT , 255.0.0.0 , 10.0.0.0). Chce...
Hmm, czytajac ostatni post atoma, troszka sie skrzywilem. Mowie ze program ktory napisalem dziala, ale nieprawidlowo, to nie jest wynik zamiany miejscami danej z adresem, malo tego, zmienna k, która jest oczywiscie stringiem, bo jest to zlozenie LITERY P i liczby 11, ktora jest zamieniona ze zmiennej byte (kali) na stringa podstawiona w miejsce adresu...
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"...
Użyj funkcji VAL. var = VAL( s). s to string, a var to liczba.
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:) Wiem właśnie. I dla tego takie głupoty wychodziły. Ale gdy dam dodatkową zmienną string i tak "zfusuje" wartość temperatury a następnie ponownie przepiszę ją do zmiennej single procedurą Val to ponownie zamiast xx.xx mam xx.xxxxxxxxx. A = Fusing...
Chyba nie czytałeś ostatnio tego rozdziału z Language Fundamentals. W ten sposób sam sobie robisz kuku... Pomijając to myślę, że jeśli te Twoje zmiennoprzecinkowe masz tylko do dwóch miejsc po przecinku, to dlaczego, po prostu, nie pomnożysz tego x100 a na końcu wyniku nie podzielisz /100? Zapewne wszystko się wykona dużo szybciej niż na tych zmiennoprzecinkowych....
A od czego jest HELP !? "Przeznaczenie: Zwraca określoną liczbę znaków z tekstu począwszy od lewej strony. Składnia: zmienna = LEFT( tekst , il_znaków ) gdzie zmiennazmienna tekstowa, do której przepisane będą skopiowane znaki, teksttekst z którego skopiowane będą znaki, il_znakówilość kopiowanych znaków. Opis: Zobacz także: RIGHT , MID Przykład: Dim...
Hej! Zobaczcie jak ja to robię, może komuś sie to przyda: 'Powiedzmy ze zmienna Liczba(single) wynosi 22.62555426 Temp = Int(liczba) ' dzieki temu poleceniu odcinam czesc setna czyli ' zmiennej Temp(byte) przypisuje liczbę 22 Liczba = Frac(liczba) ' dzieki temu poleceniu odcinam czesc ' dziesiętną czyli zmiennej Liczba(single) przypisuje ' liczbe 0.62555426...
proszę bardzo. 3 minuty razem z sprawdzeniem. $regfile = "m162def.dat" $crystal = 7372800 Dim A$ As String * 20 Dim Temp$ As String * 4 Dim Zmianna_1 As Byte Dim Zmianna_2 as byte Dim Zmianna_3 As Byte Dim Zmianna_4 As Byte A$ = "123.234.213.132" Temp$ = Left(a$ , 3 ) Zmianna_1 = Val(temp$) Temp$ = Mid(a$ , 5...
Motam się znowu okrutnie z uartami. Mam dwa urządzenia i chcę aby w każdym nadawanie i odbieranie chodziło w przerwaniach. Urządzenia A odpytuje cyklicznie co kilka sekund urządzenie B. Całe odpytywanie polega na tym że: Moduł A wysyła poleceniem: Print #6 , "RED" ; chr(13) ; zapytanie o treści "RED" i na to zapytanie urządzenie B...
Witam. Mam problem ze zmianą odebranych danych z Uart'a na zmienną liczbową. Mianowicie na jednej Atmedze mierzę poprzez ADC wartość prądu i wysyłam ją na uart'a. Na drugiej Atmedze odbieram te dane i tu nie mam problemów - wysłane i odebrane dane się zgadzają i są poprawne. Ale odebrane dane są stringiem, nie mogę nic z nimi zrobić (matematycznie)....
tablica stringi bascom atmega bascom stringi bascom zmienna stringi
sciemniacz zarowek napięcie biegu jałowego urmet moduł schemat
zawór proporcjonalny lodówka kondensator zwarcie
Brak prądu na sterownik VVT Peugeot 308 1.6 VTi Alternatywy dla rezonatora kwarcowego: MEMS, ceramiczne, RC