Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Czyli przetwornik zwraca wyniki w kodzie U2. Tam nie ma znaku minus. Jest za to przesunięcie poziomu. Najprościej mówiąc, zastosowanie takiej funkcji do konwersji: Napiecie = Zmierz1 * 256 Napiecie = Napiecie + Zmierz2 da Ci złe wyniki....
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...
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...
Zrobiłem jak pisał Driver, odłączyłem wejście sygnału do LM7001 i podłączyłem sterowanie nap. warikapów przez potencjometr. Przy ok.2,2V miałem f=132MHz a przy ok.7,2 f=136MHz to by było z zapasem dla odbioru i ok.11,5 f=146. Ponownie podłączyłem zgodnie ze schematem, nie zaskoczyła... Myślę że podanie częstotliwości ze skanera nie ma co sprawdzać,...
(...) ' 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...
nie pisze w bascom ale z tego co pamientam gosub jest wywałaniem podprogramu Gosub Y wywołuje samego siebie i prawdopodobnie zapychasz stos procesora - ja napisałbym Goto Y o ile taka instrukcja istnieje. Chodzi o to aby wykonać skok a nie wywoływać podprogram. Po Gosub powinien być gdzieś Return
Witam, Włóż to w procedure obsługi przerwania od licznika, w srodku moze byc jeszcze jakas dodatkowa zmienna aby zwiekszyc zakres opóźnienia. W tym przypadku opóżnienie bedzie wynosiło czas pomiędzy przerwaniami razy dodatkowa zmienna. BASCOM to nie mój język, ale jak będzie CI bardzo zależało to postaram się napisać procedurke. Pozdrawiam. PS funkcja...
Powiedzmy, że mam zmienną N, która może przyjmować wartości całkowite z przedziału od 1 do 20. Chciałbym żeby dla niektórych (rozmieszczonych przypadkowo) wartości wykonało się jedno polecenie a dla pozostałych drugie. Myślałem o instrukcji "Select Case" ale czy da się to zrobić w uproszczony sposób, czyli do jednego "Case" wstawiamy pierwszą grupę...
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. 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:...
dlaczego resetuje mi zmienną L do zera po zliczeniu 256 impulsów przez taimer0 L = L + counter0 Chciałbym zliczyć wszystkie impulsy prosze o pomoc jakim kodem zliczyć np 10000 impulsów z timer0 = counter Bo jest organiczenie 'do 100 lit row' (patrz uwaga nad Codem). Ograniczenie to jest powodowane zakresem zmiennej (pulses as byte), ktora Zlicza przepelnienia...
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....
Zrobiłem to ciut prościej i działa ale...najpierw kod: if godz_od >= godz_PCF then if min_od >= min_PCF then reset Portc.2 'stan aktywny end if end if if godz_do >= godz_PCF then if min_do >= min_PCF then set Portc.2 'stan nieaktywny end if end if i ten program świetnie działa ale na WSTAWIONYCH wartościach. I tu pytanie (pewnie się narażę...
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...
Czy można słów kilka o konstrukcji karmnika widocznego na zdjęciach? Jak Obsługujesz ds18b20? Sprawdzasz CRC? Jak reaguje sterownik po odpięciu poszczególnych pinów czujnika? Kolego karmnik to tak naprawdę to urządzenie http://obrazki.elektroda.pl/3445746800_1... modyfikacje z mojej strony to: zmniejszenie obudowy i wyrzucenie przycisków....
Wszystko działa dobrze, dokładnie tak jak napisałeś :-) Syfy w programie: 3) If A < 250, potem robisz A+10 co daje wartość 260 i przekręcenie się wartości. No bo przecież 8 bit nie może mieć więcej niż 255, a zobacz że ty wpisujesz tam max 260. Popraw na If A < 241 (czemu 241, a nie 240? Bo dając 240 uzyskasz max pwm 240, dając 241 max będzie...
może program nie jest bardzo dopieszczony ale działa . więc po kolei nie używam przerwań choć powinienem należy poprawić jeszcze pomiar temperatury ponieważ przy mniej niż 5 stopni czujnik nieco zawyża do jednej linijki należy dodać komende aby wynik z zmiennej był jeszcze odejmowany o 2 i sprawa załatwiona roździelczość to 1 stopień kalibracja polega...
Witam, mam następujący problem z poniższym programem. Prosiłbym bardziej obeznanych kolegów o sprawdzenie, układ powinien działać tak: ustawiam temperaturę plus regulacja histerezy, gdy temperatura jest niższa układ załącza przekaźnik do czasu wyrównania temperatury, problem polega na tym że program załącza przekaźnik (grzanie) tylko na moment po czym...
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"...
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,...
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.
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...
Doszedłem do ładu z tym, cała funkcja jest napisana prawidłowo i skrajne zakresy zawsze powinne się pokrywać niezależnie od obliczeń na liczbach całkowitych. Błąd był jedynie w zapisie złych zmienny do eepromu...
Przepraszam emarcus ale chyba mnie nie zrozumiałeś napisałem 1 sądząc iż jest to jasne ze wynosi 1.00 tak jak to wymaga program. A chodzi mi o to, CZY WYSTARCZA to CO napisałem w programie czy muszę jeszcze coś dopisać aby wartość końcowa była w kg Nie, nie potrzeba ci nic wiecej jezeli masz liniowy odczyt w calej rozpietosci zakresu pomiarowego. Mozesz...
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]
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.
inny pomysł A as integer (albo LONG ) for A = 1 to ....... ( dowolna wartość z zakresu integer / long ) wait 1 next pętla for ... next może być zawarta w oddzielnej procedurze
Na przykład tak: zmienna = RND( zakres ) Do zmiennej zostanie wpisana liczba wylosowana z podanego zakresu
Witam Czy jest jakiś sposób na zmienna losową. Tzn. wartość wypełnienia (automatycznie) wybierana losowo np z przediału 10-200. Pozdrawiam Proszę się nie wpinać w cudze tematy! Wydzieliłem z poprzedniego tematu.
Halogeny też będą zabronione ?? a co do projektu, właśnie zakończyłem projekt na uczelnie gdzie wykorzystuję sterowanie halogenem. jest to zrealizowane w ten sposób, że mam 100 poziomów jasności (0-100%). Sterowanie fazowe oczywiście i triak załączany impulsem. Logicznie, program działa tak: 1) system detekcji zera (transoptor) wykrywa moment w którym...
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ć...
[quote="lukaskay"] a gdybym czas oczekiwania zwiększył do 15 s wtedy dokładność wzrosła by mi do 4 obr/min mogę użyć komendy: Wait 15 ?? ale wtedy chyba dojdzie do przepełnienia licznika?? quote] Przy twoich parametrach silnika el., oczywiscie ze dojdzie do przepelnienia licznika0. Ponadto uwazam ze stosowanie dyrektywy "Wait" w pomiarach nie jest najlepszym...
Po ustawieniu odpowiedniej wartości zapisz ta zmienną w eeprom za pomocą polecenia "writeeeprom" a podczas włączania przed główna pętlą odczytaj tą zmienną za pomocą polecenia "readeeprom" Dodano po 12 Zapis musisz robić dla zwiększania i zmniejszania i zobacz do helpa jak wygląda składnia poleceń bo readeeprom jest źle. READEEEPROM zmienna , adres
Jak niby ma się wykonać ta pętla: For Y = 1 To W skoro W może być w zakresie od 0 do 1023 a Y tylko od 0 do 255? Zmienna Y ma być typu Word a nie byte.
Sprawdź miernikiem napięcie podawane z LM35 na ADC. Przepisałem ten kod tak by był przejrzystszy. Przy okazji zaoszczędziłem 8% pamięci. To nieistotne. Istotne natomiast jest to, że teraz widać, że układ wyłączy się jeśli odczyt na ADC będzie w zakresie 250-300. Powyżej lub poniżej tego zakresu krążek będzie świecił. [syntax=vbnet]'Program "elektronicznej...
A może podeszłaby instrukcja zmienna1 = MAKEBCD( zmienna2 ) gdzie: zmienna1zmienna, do której zapisana będzie liczba w formacie bcd, zmienna2zmienna zawierająca liczbę dziesiętną. Format BCD to coś takiego, że w 4 najstarszych bitach zakodowana jest binarnie liczba dziesiątek a w 4 młodszych liczba jedności. Normalny zakres liczby 8 bitowej to 0-255...
Proste gdzieś już przeczytałem że Grafika gryzie się z textową zawartością ekranu - czy to się da jakoś naprawić ? zaprogramowałem z wersji Demo Bascom 8.3 Lcd KS108 128x64 programem w której zmienna Line jest wyświetlana zależnie od zmiennej , jak dojdzie do końca swojego zakresu , zawartość textowa wyświetlana razem z grafiką pierniczy sie totalnie...
Tak? "8 klawiszy do sterowania częstotliwością, ok, 8 pól po możliwych dziesięc cyfr daje nam zakres 00 000 000 <> 99 999 999. Ładujemy to w zmienną typu "dword" i tą zmienną wyświetlamy na ekranie LCD (po przekształceniu na string i formatowaniu do 8 cyfr). Przyciskami 0-7 dodajemy kolejno do zmiennej dword (od prawej): 7: zmienna = zmienna +...
To nie jest żadna zamiana. Zresztą gdyby taka zamiana była możliwa to by się nie stosowało zmiennych Long tylko wszędzie Byte. A taka zamiana nie jest możliwa. To co zrobiłeś to tylko skopiowanie najmłodszej części zmiennej Long do zmiennej Byte. Czyli to działa dopóki zmienna long jest w zakresie 0..255. Czyli u Ciebie w sumie nigdy bo ilość wolnego...
Dokładnie, zmienna menu nie ma ograniczeń i wychodzi poza zakresy menu. I teraz właśnie zastanawiam się czy do każdego podmenu mam robić warunki, czy da się to może jakoś prościej rozwiązać ?
oj oj ;) W Bascomie zmienna to Double 8 Bytes 5.0 x 10^–324 to 1.7 x 10^308 Doubles are stored as signed 64 bit binary numbers, jest inaczej traktowana, zobacz na jej zakres!!! Nie operuj na tej zmiennej, skoro chcesz numer seryjny pilota to wystarczy zmienna 32 bity skoro jest on 28 bitowy. Dodatkowo Keeloq ma podzieloną transmisje na dwa bloki...
Powinno działać : $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output 'Wyjscie Pwm Config Pind.4 = Input 'wejscia na przyciski Config Pind.5 = Input Sw1 Alias Portd.4 Sw2 Alias Portd.5 Set Portd.4 'podniesienie przyciskow do plusa Set Portd.5 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Dim I As Byte...
Powiedz jeszcze czy ta częstotliwość wejściowa będzie sie zmieniać w dużym zakresie czy to po prostu 200Hz z jakimś marginesem ? Jeśli zmienna to jaka najmniejsza częstotliwość na wejściu wystąpi? Z uzyskaniem 1,4kHz na wyjściu nie powinno być żadnego problemu.
Nie wiem co się dzieje , ale nie mogę poprzez komendę -- Lcd A -- napisać(wyświetlić) liczby większej od 9 . A jest zmienną typu Integer . Program jest prościutki i dotyczy tylko tego wyswietlania. Jakies pół roku temu pisałem program i wyświetlałem liczby z zakresu 21-69 i nic się nie działo . Symulator robi w tym punkcie stop i już. Żeby wyświetlić...
... pytanie czy zmienna typu Word, poprawnie obsłuży odczyt z 1-wire i porównanie? W zakresie temperatur dodatnich, może być WORD, ale jako że DS1820 "koduje" wartość temperatury typem INTEGER, to takiego typu należałoby użyć.
a kolega atom1477 skąd wytrzasnął taką informację kosmiczną ? ;) , że Waitus w Bascomie działa tylko do 255 ????? :roll: toż wystarczy do hepa zajrzeć i przeczytać: Syntax Wait uS uS The number of microseconds to wait. (1-65535) This must be a constant. Not a variable! tak więc można podać parametr dla tej funkcji z zakresu od 1 do 65535 jedynie trzeba...
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ć...
zakres zmienna zmienna bascom bascom zmienna
komunikacja profibus włączyłem hasło zwiększanie wartości zmiennej
Toshiba 55UA3A63DG recovery, firmware USB, płyta 17MB170, matryca VES550QNDS-2D-N41 Parallel 12V Power Supplies: Current Sharing in Tethered Drone with 15V 25A PSU and 15V 100A LiPo