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....
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 =...
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...
Witam, Czy istnieją biblioteki do BASCOM do Parsowania danych tekstowych? Dajmy na to mam taki string: aaaaaaaaaa,bbbbb,ccccc,dd Potrzebuje zapisać z tego tekstu aaaaaaaaa do jednej zmiennej bbbbb do drugiej zmiennej ccccc do trzeciej i dd do czwartej, przy czym długość tych znaków może się w programie ciągle zmieniać. Pozdrawiam i czekam na odpowiedź.
Koncepcja liczenia się zmieniła. Coś źle robię. Chce zapisać pomiar czasu jako jedna zmienna, Pomiar = Sekundy_d + " " + Sekundy_j "" + Setne_d "" + Setne_j Jak i : Pomiar= pomiar + str (sekundy_d) pomiar = pomiar + str (sekundy_j) wtedy to już kosmiczne wyniki mam. Jak to zapisać poprawnie ? Po pierwsze: Bascom akceptuje tylko jedną operacje arytmetyczną...
Witam. Mam problem mianowicie potrzebuję edytować określone znaki w zmiennej string. Coś w tym stylu że jest zadeklarowana zmienna mająca 16 znaków a ja potrzebuję zmienić znaki od 8 do 16 nie ruszając znaków 1-7. w jaki sposób można tego dokonać z poziomu bascom-a. Udało mi się zrobić to wstawką w asm poprzez wstawienie danych pod odpowiednie adresy...
Witam Program ma za zadanie otrzymania 6bajtów przez RS232 i operacje na nich Problem w tym że po odebraniu transmisji program staje i trzeba resetować procka Pomocy! Siedzę przy przy tym już kilka godzin i nic $baud = 2400 $regfile = "m32def.dat" $crystal = 16000000 Dim Bufor As String * 6 Do Enable Interrupts On Urxc Odebrano Enable Urxc...
Witam szukam po internecie i nie mogę znaleźć jak z ciągłego tekstu typu string wydzielić poszczególne wyrazy oddzielone przecinkami i wpisać je od danego elementu tablicy np: , poniedziałek,wtorek,środa,czwartek, tablica1 poniedziałek tablica2 wtorek itd, Z góry dziękuję za pomoc.
Witam. Krótko: mam zmienną string*3. Przykładowa wartość tej zmiennej to 2.7 Muszę zamienić ją na Byte o wartości 27 oraz informację, czy zmienna jest mniejsza od 10. Oczywiście nie da się pomnożyć zmiennej string (razy 10)... Co z tym zrobić? Pozdrawiam.
Witam Po odebraniu stringu (nie przekracza 20 znaków / bajtów) za pomocą komendy input potrzebuję go przeanalizować i wydzielić trzy człony. Pierwszy (od początku do napotkania znaku spacji), drugi - do napotkania znaku "/" oraz trzeci - do napotkania kolejnego znaku "/" lub końca stringu. Pierwsza myśl to pętle: [syntax=basic4gl] do incr licznik incr...
Witajcie! Szukam tego od sporego czasu. Dzisiaj znowu potrzebuję tego użyć i po kolejnym gmeraniu nic. Czy w bascomie jest funkcja która dzieli stringa na tablicę tak jak explode() w php? Tzn daje stringa np. takiego: Ala-Ma-Kota i jako znak daję -. Na wyjściu dostaję tablicę: [0] => Ala [1] => Ma [2] => Kota Potrzebuję tego aby łatwo analizować dane...
Znalazłem kod tablicy świetlnej, 8x8 sterowanej przez rejestr 74164, niestetypo załadowaniu programu na tablicy świecą się tylko trzy kolumny diód :(. Czy ktoś mi pomorze to rozgryść? 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED 'Częstotliwość sterowania kolumn wyświetlacza wynosi ok. 333 Hz 'czyli częstotliwość...
...Ps. Tak, już dla ścisłości to skoro do tej pory nie używałem tej pamięci to czas to zrobić. A przy okazji to czy zmienną typu STRING też tak samo łatwo tam zapiszę...? To działa ze zmienną dowolnego typu :D Ijeszcze jedno podejście do tematu.. Napisałem kod z uwzględnieniem Twoich uwag Piotrek tzn: Dim x As Eram Single Kod się skompilował i jest...
A jeśli chodzi o "Błędne operacje matematyczne" , to: Czy rozumiesz dlaczego zmienną Pokaz , zadeklarowałeś jako Integer , a nie np. Byte,String czy Double :?: Sprawdź jakiego typu zmienne oferuje Bascom Basic , postaraj się zrozumieć czym one się miedzy sobą różnią , a wtedy 1-szy problem masz z głowy ;) Piotrek
E tam, nic strasznego.... Tu masz błąd: Dim U_wy As String * 2 Zwiększ to na: Dim U_wy As String * 3 I leci aż miło. Nie mieścisz się w zmiennej, that's all:) Poza tym skonfiguruj watchdog oraz TIMER. Pewnie jeszcze coś tam siedzi (wyświetlanie bez wymazywania poprzednich, większych o rząd wartości na przykład) ale to tak na szybko. Pozdrawiam, TD
Error 10:Wrong type(bit,byte,integer,word,or string) Linia przy której Bascom protestuje , ma za zadanie zmienić znak zmiennej T2 , na przeciwny.To co przechodzi w BascomAVR , nie działa na Bascom8051-fakt.Każdy , kto chce pisać jakiekolwiek programy na uP czy uC , nie może być z algebrą na bakier :D 2 przykłady: If T2 < 0 Then T2 = T2 * -1 lub...
nie ja piszę z pamięci więc może tam i niema nawiasów. Przypisuje jej pusty ciąg po każdej operacji ale to nic niedaje
Nic nie jest wcześniej robione automatycznie a także ty nie musisz robić żadnych takich sztuczek cyrkowych jak to podałeś w ostatnim przykładzie. W obydwu przypadkach albo za każdym razem bez żadnych dodatkowych czynności odbędzie się ta sama prosta operacja. Zarówno do zmienna_byte jak zmienna_typu_string trafi dokładnie ta sama wartość czyli 97 czyli...
Jak chcesz wpisywać liczbę z klawiatury to powinieneś uwzględniać wagę poszczególnych składników tej liczby. Pierwsza cyfra z trzech to, waga=100 zatem key*100, przy następnej cyfrze waga=10 zatem key*10, a na koniec samo key bo waga=1 i operacja mnożenia jest zbędna, jak to wszystko zsumujesz to otrzymasz ostateczną liczbę. Np. liczba 467 to 4*100+6*10+7....
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...
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...
Chodzilo mi o bascoma, wiec jesli ktos mialby rozwiazanie pod ten jezyk to chetnie ogladne.
I jeżeli np. zmienna_tekstowa , z której będę pobierał poszczególne znaki może mieć max 5 znaków, a zapiszę do niej np. tylko 3 - tj. "ABC" . I jak jako pierwszy znak do zwrócenia(tj " początek ") podam pozycję np. 1, a ilość znaków 1 - to mi zwróci ze " zmienna_tekstowa " do zmiennej " zmienna " literkę A. Tak. -> A co będzie, jak podam jako pierwszy...
Pozwolę przyłączyć się do tematu. Przeglądając kod natrafiłem na deklaracje zmiennych w dziwny sposób Dim Tekst1 As String * 10 Dim Tekst2 As String * 10 Dim Tgodzina As String * 4 Dim Tminuta As String * 4 Dim Tsekunda As String * 4 Co oznaczają te znaki mnożenia? Czy można z takimi zmiennymi wykonywać operacje arytmetyczne jeśli tak to jak? ja jak...
Czy gdzieś znajdę może opis (bardziej uporządkowany niż w helpie) operacji tekstowych ? Potrzebuję "wyciągnąć" określony string z stringu pobranego przez INPUT. Czyli np - string pobrany przez INPUT ma długość 10 znaków. A ja potrzebuję pierwsze 4 znaki.
odnośnie zapamiętywania i pobierania stringów z pamięci ROM(flash) to nie mam jakby problemów ale chodzi mi o sposoby obróbki tych "ala" stringów. Tzn po wykładzie kolegi Freedie już czuję o co chodzi ale np tak: w pascalu(delphi) mam taką swoją ulubioną i często potrzebną mi funkcję function ScanStrSP(var Text: string; Separator: string):...
To akurat nie wina BASCOMa. Masz zmienne na 3 znaki podczas gdy potrzebujesz na 4: Volt = Fusing(v , "#.$$") Czyli znak, kropka (czyli też znak) i dwa znaki. Razem 4 znaki. Winą BASCOMa mogło być dopiero to że zmienne String wpływały na działanie przycisków. Ale jednak tak nie było. Teraz to przeanalizowałem i to jednak nie to. Przyciski...
Nie dokładnie opisałem. U mnie A01 jest uzyskiwane ze zmiennej Sring - i tu jest problem jak to wyświetlić. Może tak - w wyniku operacji na zmiennej string otrzymuję wynik A01(też string). I teraz potrzebuję wyświetlić to co jest zapisane pod zienną A01 (czyli w przykładzie tekst1. c jest string = 5 , d jest string = 0, A50 ="Test1" B = C + D E = Val(b)...
Witam Poszukuję polskiego tłumaczenia Avr-libc. Mam wersję anglojęzyczną ale jakoś nie mogę zrozumieć działania na stringach. Znalazłem w sieci kilka szczątkowych tłumaczeń ale to nie to o co mi chodzi. Czy dysponuje któryś z Forumowiczów takim tłumaczeniem albo potrafi mnie naprowadzić na sposób aby ze stringu np: "ABCDEFGHIJKLMNOP" wyodrębnić do...
Dim S As String * 15 , Z As String * 15 S ="ABCDEFG" Z = Left(s , 5) Print Z 'ABCDE Z = Right(s , 3) : Print Z Z = Mid(s , 2 , 3) : Print Z End Komendami left, right i mid masz możliwość operacji na tekscie. Troszke sprytu i robisz bardzo ładny scroll
Spróbuj użyć tego sposobu obsługi parametrów zapisywanych w EEPROM (traktujesz je jak zwykłe zmienne): Dim Reserved As Eram String * 8 'Przyzwyczajenie ze starych AVRów - zapobiega(ło) utracie danych z początku obszaru EEPROM :) Dim Zmienna1 As Eram Byte Dim Zmienna2 As Eram String * 8 Dim Zmienna3 As Eram Long Dim Temp as Byte [...]...
Panowie, cały problem tkwi w konwersji zmiennych. Pewnie nikt nie wie co się stanie jak BASCOM zrzutuje integer (16) i to pewnie ze znakiem (signed) na bajt albo lepiej char (bajt ze znakiem). Trzeba się dowiedzieć jak on to robi albo po prostu zacząć pisać w poważnym języku na poważny kompilator (bez obrazy oczywiście) :) Pozdrawiam (M.) Nie wiedzą...
W tym przykładzie Zakładam że czytałeś to: Nie łatwo przejść tak z marszu z Basic na LUA, za dużo w LUA znaków przy instrukcjach, których w Basic niema. Łatwiej z C wejść do LUA, bo to prawie C tyle, że wyższego poziomu. Dlatego trzeba uważać na aplikacje gdzie potrzeba dużej wydajności, a LUA nie przewiduje wstawek w asemblerze ;) Na domiar złego LUA...
Witam Mam taką sytuację, odbieram w przerwaniu dane z RFM12 i ustawiam Flagę. W pętli głównej jest warunek, że jeśli wystąpi Flaga, to będą się wykonywać obliczenia. Odebrany ciąg zawiera pięć znaków identyfikujących nadajnik. Dołożyłem również warunek określający, czy ma się wykonać ta czy inna operacja, w zależności, który nadajnik przysłał dane....
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...
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...
Drodzy koledzy. Mam poprawnie skonfigurowane połączenie pomiędzy dwoma Atmegami8 przez RS485. Nie ma problemu z komunikacją wszystkie znaki odbieram, niestety pojawia się przed każdym ciągiem danych znak prawdopodobnie "spacji". Na razie robię proste testy na RS485, ale później muszę użyć tego do komunikacji między ruchomą głową a sterownikiem. 1. Najpierw...
Wykombinowałem coś takiego :), przykład można uruchomić w symulatorze (dane wejściowe np. porta.1): EDIT: poprawiłem mały błąd w przykładzie, bity można nawet kopiować jeżeli port źródłowy i docelowy jest ten sam [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64 $baud = 57600 Dim Src_port_str As...
Druga kwestia, to zapis do pamięci 24c04 liczby zmiennoprzecinkowej, hmm. nie robiłem nigdy tego, nie bardzo wiedziałem jak to ugryźć. Sprawa jest generalnie prosta. Liczba typu single zajmuje cztery bajty, wystarczy więc ją rozbić na pojedyncze bajty i zapisać każdy z osobna. Przy odczycie robisz dokładnie odwrotnie. Powiesz pewnie "no dobra, ale...
Dzięki. Spróbuję obu metod. A dlaczego w podprogramie jedynie ustawić flagę a całość operacji realizować w głównej pętli? Jaka jest zaleta tego rozwiązania a wady obsługi w podprogramie? Pytam gdyż pętla główna w docelowym programie będzie miała i tak co robić, więc nie chciał bym jej jeszcze dodatkowo blokować. Na razie problem odbiory kilku danych...
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...
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...
Część po przecinku to sobie normalnie matematycznie wyodrębniasz. Nie wiem dokladnie o co chodzi:( mozesz troszke jasniej? moze na jakims przykladzie? Kolega snow ma rację , ale nie koniecznie musi to być "matematycznie" :) Załóżmy , że po pomiarze i obliczeniu napięcia w zmiennej SINGLE , użyjesz instrukcji FUSING , do konwersji SINGLE na STRING.Po...
Wiem że zżera. Ale nie wiem w jaki inny sposób mógłbym to rozwiązać.Pewnie , lepsze było by jakieś bezpośrednie ładowanie grafiki na LCD. W przypadku "showpic" nie ma problemu ale znowu grafika musi siedzieć albo bezpośrednio w atmedze albo w zewnętrznym eepromie co w obu tych przypadkach nie ma miejsca bytu. Zapewne C lub asm poprawiło by wyświetlanie...
Ja zrobiłem taki układ na SE T300 (może być też T68i) jeśli chodzi o odbiór sms i sterowanie czymś tam jest fajny przykład w samples - sms.bas Mój układ dzwoni do mnie i wysyła sms kiedy mam alarm na centralce, a po odebraniu sms o treści UZBR lub ROZBR uzbraja/rozbraja zdalnie centralkę alarmową. Jeśli zaś treść sms to ZAL lub WYL to układ steruje...
Wgraj ten plik i powiedz jak działa menu i sterowanie ręczne i auto.. Zmień operacje na temperaturze na pozbawioną części ułamkowej (po przecinku), łatwiej będzie operować na warunkach bo maja rozdzielczość jednego stopnia więc to co wyświetlasz na LCD z przecinkiem nie jest potrzebne Tobie. Można to zrobić np tak. [syntax=basic4gl]'**********************...
Witam, W moim programie umieściłem dane typu LONG w pamięci EEPROM $eeprom 'dane do zapisania w EEPROMie Data 0 ' nie uzywany bajt Tab_czas1: Data 0& , 1& , 2& , 60& , 61& , 75& , 1275& , 1455& , 1456& , 1457& , 2000& , 2001& , 2002& , 2060& , 2061& , 2075& Data 3275& , 3455& , 3456& , 3457& , 4000& , 4001& , 4002& , 4060& , 4061& , 4075& , 5275&...
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...
B100=4 ;) tyle to wiem, tylko w tamtym przypadku to było zapisywanie konkretnych pozycji do tablicy, potem konwersja danych z tablicy do stringa, potem do binarki no i nie pamiętam jak to się robiło :) Co do kodu - póki co nie działa. Wyświetla się tylko na pierwszej pozycji wyświetlacza na zmianę znaki * oraz -. Całość nie reaguje na żadne wejścia...
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
Dzięki! Dokładnie o coś takiego mi chodziło. (at) Paweł Es. , pomiary są wykonywane co 750ms i na bieżąco wyświetlane na wyświetlaczu, dlatego dopiero co 1200 pomiar jest brany do porównania. Niestety nie mogę zapisywać 3 pomiarów i później ich porównywać ponieważ zabrakło pamięci Flash dla ATtiny2313. Muszę ograniczyć się do 2 pomiarów. Pojawił się...
Walczę i walczę z tym programem ale nie daje rady.... :cry: Wrzucam cały kod, jest on zrobiony na bazie jak wspomniałem wcześniej: Projekt powiadomienia o alarmie by Xury wersja 2.0 [syntax=basic4gl] '***************************************... 'Projekt powiadomienia o alarmie by Xury wersja 2.0 'Działanie na przerwaniach...
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...
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
Tzn. wiem, że zmienna typu bajt nie może być większa niż 255, ale zapomniałem, że nie robi się operacji na różnych typach zmiennych razem [syntax=vbnet] Solar_mid_mod_temp = Solar_mid_mod_temp \ 2 ' srednia z dwoch czujnikow = 283 [/syntax] co prawda przekracza 255, ale wynik z dzielenia przez 10 i Modulo 10 już nie, czyli 28 i 3 [syntax=vbnet] Solar_mid_dec...
Termostat, zasilanie 230V, praca w pomieszczeniach suchych, temperatura 20..30 stopni Celsjusza. Wejścia: 3 termometry ds18b20, max 100m (można stosować repeatery, konwertery protokołów czy zdalne termometry RF). Wejścia zabezpieczone przed uszkodzeniem, i zwarciem. Awaria jednego termometru nie może wpływać na pozostałe. Klawiatura lokalna foliowa...
bascom string string bascom bascom operacje zmiennych
kolumny aktywne klipsch multimetr ciągłość przewód sharan ogrzewać
viessmann vitola comferral viessmann vitola comferral
Kody błędów BSI Peugeot 307 1.6 16V 2001 Błąd E-09: Brak ciśnienia w piecu Termet jednofunkcyjnym