BASCOM może mieć problemy z odjęciem od liczby 65536 zmiennej Word lub Integer. To po pierwsze. Więc zastosuj zmienne typu Long. W dodatku stosując offset (wartość odniesienia) nawet zoptymalizowanie programu nie pozwoli zastosować zmiennych dwubajtowych, bo niektóre wyniki będą miały wartości większe od 65535 (lub inaczej: dodatnie wartości mogą wyskoczyć...
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...
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
https://obrazki.elektroda.pl/2363772900_... W miarę rozprzestrzeniania się na całym świecie koronawirusa coraz częściej zastanawiamy się, jak zapewnić sobie i innym bezpieczeństwo w domu, pracy lub innym miejscu spotkań. Dezynfekowanie i sterylizacja za pomocą płynów na bazie alkoholu wszystkich pomieszczeń, w których przebywamy i przedmiotów,...
Witam po krótkiej nieobecności ( no cóż praca ) Chodzi mi o to, żeby "wpasować" w ten zakres 86 px dane z pomiarów w dwóch zmiennych typu Byte, albo w zmiennej typu integer, czyli np. temperatura 26,7 będzie jako 267, czyli np. temperatura 0 stopni to punkt 118 (minimum ), a temperatura 40 stopni to punkt 32 ( maksimum ). Teraz widzę, że źle do tego...
Witam. Proc: Atmega8 IDE: Bascom Piszę dość spory kawałek kodu, a zatrzymałem się na prostej funkcji. Jej zadanie mam być konwersja liczby z jednego zakresu na inny (np. 0-1023 na 0-255). Napisałem taki kawałek kodu: Function Mapuj(byval Z As Byte , Byval In_min As Integer , Byval In_max As Integer , Byval Out_min As Integer , Byval Out_max As Integer)...
Witam, Jeżeli chodzi o Bascom to może to być trudna droga, dawno temu jak Bascom ujrzał światło dzienne zainteresowałem się tym tematem, ale napisałem kilka programików i moje doświadczenia w tym temacie się kończą. Jeśli Bascom ma możliwość kompilacji plików języka C to może. Jeśli chodzi o działający przykład to z biblioteki V-USB załadowałem przykład...
Witam. Wyobraźmy sobie takie zadanie: ma być zbudowany generator w.cz. na układzie DDS np. AD8950. Generator miałby byc sterowany z małego Atmela np. 89c4051. Język programowania to Bascom. Zakres częstotliwości to powiedzmy 10-25 MHz z krokiem 1 Hz. I tu pojawia sie problem. Mianowicie typowy system wyliczania słowa jakie ma być wysłane do DDSa to:...
Hi!! Ja mialem dokladnie to samo. Jesli chodzi o instrukcje waitus. A najgorzej bylo jak wstawialem zmienna to nidgy nie dziala poprawnie np: for x =1 to 100 instrukcje.... waitus x next x W bascomie 8051 rzeczywiscie zakres zmiennych mogl byc tylko bajtowy,ale w AVR jest juz dwubajtowy. Poprobuj tak jak pisze moj przedmowca z wartosciami jednobajtowymi....
hmm masz racje cos pokręciłem, ale myślę że tak było by lepiej: If Temperatura(1) < G Then Portb.0 = 1 Locate 2 , 15 Lcd "G " Elseif Temperatura(1) >= G+1 Then Portb.0 = 0 Locate 2 , 15 Lcd " " End If hmm przyszło mi coś do głowy, ten kod powinien działać więc... to tylko moje przypuszczenia, być może masz gdzieś...
Wartość wynikowa Z musi być typu word jest podstawiana do ustawień Timera w dalszej części programu i musi pozostać tego typu. Wartość wynikowa Proc ma charakter informacyjny jej rola jest drugoplanowa. W zależności od dwóch zmiennych wejściowych X oraz Y , które określają zakres pracy pętli, gdzie X może przyjmować wartości od 1 do 510 natomiast Y...
PCF8591 jest 8-bitowy, jeżeli nie musisz mieć dużej dokładności to można podłączyć LM53 do niego, ale pamiętaj, że LM ma współczynnik 10mV/st.C. Zeby zwiększyć dokładność musisz zmiejszyć zakres pomiarowy i zastosowac konwerter napięcia (np. LM324 ;-)) dla dopasowania poziomu. Minusowe liczby w BASCOMie najlepiej przeliczać na zmiennych typu INTEGER...
Witam. mam problem z nastawą temperatury, a mianowicie zadeklarowałem drugą zmienną od nastaw, która się wyświetla na LCD, lecz program nie chce się skompilować. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5...
PRZEPRASZAM, POPEŁNIŁEM BŁĄD !!! WZÓR JEST "Vref/1023", a nie, jak pisałem odwrotnie Atmega8 żeby mierzyć napięcie musi mieć jakieś odniesienie - napięcie odniesienia czy też inaczej referencyjne. Są trzy możliwości - napięcie referencyjne to: - napięcie zasilania AVCC (około 5V) - napięcie odniesienia wewnętrzne 2,65V - napięcie referencyjne z zewnątrz,...
Myślę że Ci którzy piszą swoje programy bo są dociekliwi i potrafią rozwiązywać problemy nie piszą postów na Elektrodzie. Tutaj jak pokażesz ranę to Ci ją jeszcze posolą Ahahahahaha. Posty z prostymi problemami najczęściej piszą osoby które chcą osiągnąć jakąś funkcjonalność a nie jest ich celem życiowym zostanie programistą. Kiedy wiec akurat mam czas...
Witam, mam program (attiny2313) do obsługi termometru DS18b20 i wyświetlacza, układ posiada 3 przyciski +/M/-. Program reaguje na zwieranie przycisków do masy, a chciałbym zrobić tak by procesor reagował na przerywanie masy. Znajdzie się ktoś kto mógłby rzucić okiem na program i podpowiedzieć co trzeba zmienić?? [syntax=vbnet] $regfile = "Attiny2313.dat"...
Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
Zaokrąglenia single... na LCD. Powiem szczerze ze pomysłów mi już brakło. Spróbuj więc takiej funkcji: CONFIG SINGLE = SCIENTIFIC , DIGITS =1 co obcina zbędne miejsca zmiennej 'single' do jednego miejsca po decimal point. Zamiast 1 może byc dowolna wartośc w zakresie 1 do 7. albo jak wyżej "FUSING". e marcus
Osobiście w przerwanie wrzucam zawsze tylko to co musze. wrzuc dodatkowa zmienna w petli np: obrczas. obrmin = 36 000 000/wynikczas Lcd obrmin pamietaj zeby zmienne nie przekraczaly zakresów.
Ponieważ Fusing zwraca zmienną tekstową więc deklaracja zmiennych stanowiących wynik tej instrukcji powinna być następująca: Dim V As String * 6 Dim A As String * 6 Dim P As String * 6 Dim R As String * 6 Dim Vod As String * 6 Zmienne są wystarczająco długie dla zakresu 99.9. Jeśli wartość przekracza 100 powinno być String * 7
Wystarczy zmienić linie Dim Wynik as byte na Dim Wynik as word Poza tym nie rozumiem po co wykorzystujesz dwie zmienne ? Wystarczy jedna typu word
Z tą dowlnością w używaniu rejestrów byłbym bardzo ostrożny. Nieodpowiednia zmiana - program się wysypie. Nie wolno używać w trybie zapisu bez wcześniejszego zapamiętania: Y ( soft stack pointer ), R4:R5 ( frame stack pointer ), R6 ( status register ), R8:R9 ( data pointer ), R23 ( translate register ), R12:R13:R14:R15 ( fp calculator ). W sumie można...
O ile mi wiadomo to Bascom w jednym wierszu potrafi wykonać tylko jedno działanie i tylko na dwóch zmiennych i tak też jest napisane u mnie to równanie.
witam napisałem taki banalny program: [syntax=basic4gl]Do If Up = 0 Then Waitms 50 If Up = 1 Then A = A + 5 End If End If If Down = 0 Then Waitms 50 If Up = 1 Then A = A - 5 End If End If Pwm1a = A Locate 1 , 1 Lcd ; A; Loop End [/syntax] zmienna A wyświetlana jest na lcd jako podgląd. up i down to przyciski. już na wiele sposobów próbowałem jak zrobić...
Przecież masz 5 kanałów - wyjścia: OC1A, OC1B, OC2, OC3A, OC3B... Zmienne przedstawiają wartość modulacji w każdym z kanałów z osobna. Wszystkie PWMy są skonfigurowane jak 8 bitowe zatem zakres to 0..255. Ma tak być. Ponieważ nie ma aliasu (jeszcze) PWM2 dla zmiennej COMPARE2 (rejestr sprzętowy OCR2), BASCOM nie rozpoznaje nazwy PWM2. Jak zajrzysz w...
W timerze (np. co 0.5 sek) gasisz albo zapalasz flagę (powiedzmy o nazwie fMiganie) Oczywiście po każdej zmianie flagi (fMiganie) następuje odrysowanie całości wyświetlanego zbioru elementów w najstępujący sposób: 1. Jeśli fPozycja jest poza zakresem zbioru wyświetlanych elementów (np. =0) - wtedy obraz wyświetlany jest bez migania. 2. Jeśli fPozycja...
Nikt nie jest jasnowidzem... Może przekraczasz zakres zmiennej do której wpisujesz drogę
Po pierwsze to z adc dostajesz zmienną w zakresie 0-1023 , a w pwm zadeklarowałeś 8 bitów czyli zakres 0 - 255. Spróbuj tak: Dim U As Word Dim P As byte Start Adc Do U = Getadc(0) U = Getadc(0) P=U/4 Pwm1a = P Loop End Przy konfiguracji przetwornika użyj Reference = avcc. Ewentualnie pisz na GG, a wyniki opiszemy w temacie :D . Pozdr. Daniel
To jest właśnie jeden z powodów, dla których porzuciłem bascom'a jednakże jest na to rozwiązanie - wykorzystaj zmienną pomocniczą: [syntax=basic4gl]Dim B As Byte Dim C As Byte Dim Tmp As Byte Dim Malo As Bit Dim Rowno As Bit Dim Duzo As Bit Tmp = C - 1 If B < Tmp Then Reset Malo Else Set Malo End If Tmp = C + 1 If B = C Or B = Tmp Then Reset Rowno...
Sprawdziłem miernikiem czy jest zwarcie pomiędzy rxd a txd, nie wiem jak fachowo się nazywa ten zakres na mierniku który podczas zwarcia kabli daje sygnał dźwiękowy :)
Witam, już wcześniej na podstawie tego fragmentu kodu, który podałeś mówiłem, że program ten wykorzystuje płynne sterowanie jasnością tylko ty tam wstawiłeś stałą o wartości 70. Mówiłem też, że skoro nie wiadomo jakie jest taktowanie procka to ciężko powiedzieć co z czego wynika. Ale teraz widać jak na dłoni potwierdzenie tego co pisałem, jest to typowe...
Chyba się źle zrozumieliśmy teraz mam tak, że nie mogę ustawić innej wartości jak 1 i 2 a powinno się zmieniać od 0 do 255 bo taki jest zakres zmiennej bitowej.
Najprościej stworzyć podprogram który w pętli ustawi 3 pozycje serwa, po ustawieniu odczekać na stabilizację pomiaru odczytaną wartość zapisać do zmiennej o nazwie pozycji np Pomiar_lewy. Analogicznie z pozostałymi pozycjami serwa, mając 3 zmienne z wynikami pomiaru wystarczający je porównać i wiesz w której pozycji serwa było / nie było przeszkody....
Na przykład tak: zmienna = RND( zakres ) Do zmiennej zostanie wpisana liczba wylosowana z podanego zakresu
Jeśli konkretne bajty znajdują się w jakiś przedziałach, a nie są rozrzucone po całym zakresie zmiennej bajt, można pokusić się o ztablicowanie Fusów.
To jest tak oczywista informacja że nie ma tego w Helpie. Tak samo jak całego alfabetu czy tabliczki mnożenia ;p Skąd Lookup miał by wiedzieć jaką długość mają kolejne elementy? Owszem mógł by, ale taka tablica musiała by dodatkowo zawierać pola określające długość elementów czyli też była by dłuższa. Po drugie to trafia do pamięci programu a nie do...
witam mam pytanko a mianowicie jak ustawic w c zakres zmiennej w instrukcji switch ?? w bascom mozna bylo wpisac case "0 to 25" w c taki zapas nie dziala czy ktos moze mi pomoc przegladnolem w domu wszytkie ksiazki o c i nie znalazlem nic na ten temat z gory dzieki za pomoc
A nie prościej wykorzystać tylko polecenie waitms lub waitus przypisując mu wartość przetwornika ewentualnie dodając mnożenie lub dzielenie aby otrzymać wymagany zakres zmian czasowych .
Nie zawsze kolego:) Mnie się podało raz 10V i przeżył:] (Voltomierz ze zmiennym zakresem przełączanym przekaźnikiem...ale sie nie przełączył:P):D
Witam. Potrzebuję informacji czy w bascomie można wykonywać operacje typu zmienna1*zmienna2 lub zmienna1=zmienna2 gdy jedna zmienna jest np.typu integer a druga long?, gdy zawierają liczbę która mieści się w zakresie dozwolonym dla obu?. Jeśli ze zmiennej long zrobiłem licznik zliczający w obie strony a później próbuję po pewnym okresie zliczania przypisać...
Witam, nigdy nie byłem orłem z matematyki, i mam problem ze stworzeniem równania za pomocą którego mogę wyznaczyć ciśnienie. mam czujnik który na wyjściu daje napięcie 0,5 to 4,5 volta dla 10 atmosfer. do dyspozycji mam dane o ciśnieniu 0 i ciśnieniu 4 atmosfer ( zmienne zero i 4bar ) mam także odczyt z przetwornika adc. i tu leży pies pogrzebany. nie...
Witam Problem w tym, że jeśli zwiększam wartość zmiennej to jest w porządku, jeśli dojdzie do górnego zakresu, ale jeśli zmniejszam i dojdzie do dolnego zakresu to przeskakuje na wartość 255. Daj więc ten sam warunek co przy incrementacji: "................... Elseif Dol = 0 Or Enk_prawo = 0 Then Decr M If M > 59 Then M = 59 ...................." to...
Stosowałem procedury dla serv w bascom-51 jak i AVR w kilku wersjach jak narazie nie było żadnego problemu. czasem trzeba poeksperymentować z parametrami reload i wartościami dla zmiennych servo proponuję byś zobaczył na oscyloskopie co wychodzi z pina sterującego na servo , i ew. dobrał parametry... parametry trzeba dobrać do zegara proca i ilości...
W Bascomie optymalizacja stara się skrócić program, rozpisując inaczej pewne operacje. Dowodzi temu załączony przykład. Oczywiście przekłada się to na zmniejszenie rozmiaru kodu, a co za tym idzie - także przyśpieszenie jego wykonywania. Niestety kompilator jest tak zbudowany, że tam gdzie tylko można używa gotowych fragmentów - pobranych z bibliotek,...
Witam Przy pomiarze dwóch napięć z przetwornika (jeden kanał reprezentuje napięcie, drugi prąd) i późniejszym wymnożeniu tych wielkości jako moc, zmienna ta znika kiedy zakres przekroczy ponad 10W, natomiast wartość prądu i napięcia pokazuje w całym zakresie. O co biega? Przekroczony zakres zmiennej? Teraz jest typu single .[/i][/u]
kiedy wpisze w zakresie 0-254 oczywiście działa poprawnie ale jeżeli wartość jest inna niż podana w zakresie to również się wykonuje A w jaki sposób zmieścisz inną wartość do zmiennej typu Byte?
Komeda LCD zmienna zamienia zmienną na ascii wystarczy teraz to ominąć. Dla przykłady zamiast zmienną dla cyfr modyfikować w zakresie 0-9 modyfikować w zakresie %h30-&h39. I wysyłać na LCD, poprzez chr(zmienna), lub dodawać do stringa.
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
W Bascom'ie masz instrukcję VAL. Najpierw deklarujesz zmienne B [byte/word] i S [string*x; x=liczba znaków] a następnie konwertujesz B=val(S) i dalej używasz zmiennej B. W odbieranym stringu muszą być tylko znaki z zakresu 0..9 bez literek ;-) inaczej "krzaki".
zakres zmiennych bascom zmiennych tablice zmiennych bascom
brama hormann sterować multiroom premium sterowniki biostar
xprog programator xprog programator
Napięcie przy kręceniu rozrusznikiem w Piaggio Liberty 125 2006 Thrustmaster T500 RS – przeskakiwanie kierownicy, zmiana pozycji, diagnostyka FFB