staraj się nigdy nie używać Goto - dla programu to samobójstwo. Wiem - to pozornie upraszcza pisanie programu, ale przy większym projekcie prowadzi w maliny. Trudno w takim programie dokonywać zmian i śledzić jego działanie. Jedyne miejsce gdzie może wystąpić Goto to pętla główna programu . Reszta programu powinna być podzielona funkcjonalnie za pomocą...
Integer to nie jest zmienna tekstowa. Sprawdź w helpie jaki zakres ma ten typ zmiennej.
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.
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...
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...
[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...
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
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.
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...
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....
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...
Na przykład tak: zmienna = RND( zakres ) Do zmiennej zostanie wpisana liczba wylosowana z podanego zakresu
a może powiedziałbyś o co Ci chodzi? Tak zagmatwany kod ciężko sie analizuje. To co wkleiłeś to może być przestroga przed wyborem Bascoma jako język programowania. Już na pierwszy rzut oka widac że zmienna Z jest za mała. Zamień wszystkie zmienne na long, bo najprawdopodobniej przekraczasz ich zakresy.
Wystarczy jakiś mikrokontroler, wyświetlacz i odpowiednio napisany program ;) np. w Bascomie wystaczy wywołać polecenie jakaś zmienna=Rnd(zakres) , gdzie Rnd to polecenie, które zwraca pseudolosową liczbę z określonego zakresu, potem wysłać to na wyświetlacz i gotowe... ;)
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...
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.
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
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...
zastosuj funkcję rnd Przeznaczenie: Zwraca pseudolosową liczbę z określonego zakresu. zmienna = RND( zakres ) gdzie zmiennadowolna zmienna numeryczna, w której znajdzie się wygenerowana liczba pseudolosowa, zakresliczba określająca górną granicę generowanych liczb. Użyj później tej liczby do wysterowania portów ledek i masz problem z głowy. Poczytaj...
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.
A co byś powiedział na operator AND. Port = p3 AND &H0F (bierzemy pod uwagę tylko 4 młodsze bity) Wtedy zmienna Port będzie zwracała stan bitów P3.0-P3.3 w formie liczby z zakresu 0-16. Nie trzeba będzie robić ceregieli z przeliczaniem stanów kolejnych bitów.
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...
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...
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...
Możesz przetestować Funkcję BIN() A = 25 C = 14 D = 14 B1 = switch functions Sub Write I2cstart I2cwbyte 130 I2cwbyte 0 I2cwbyte A ; Głośność kanał L ; zakres 0 - 63 I2cwbyte A ; Głośność kanał R ; zakres 0 - 63 I2cwbyte C ; Bass ; zakres 0 - 15 I2cwbyte D ; Treble ; zakres 0 - 15 I2cstop Waitms 10 I2cstart I2cwbyte 130 I2cwbyte 8 I2cwbyte B1 ; switch...
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.
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...
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ć...
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...
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...
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...
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...
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ć...
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 +...
(...) ' 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...
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ć ?
... 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ć.
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ć...
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....
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ę...
Dodano po 2 podprogramie zwieksz i mniejsz zmienna ta była poza zakresem Nie mogła być bo BYTE liczy od 0 do 255. powinno być [syntax=basic4gl] Dim Jasnosc As Byte [/syntax]
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)...
Już jest prawie ok, ale za nic nie mogę dojść dlaczego programik kol. emarcus błędnie pokazuje sekundy powyżej czasu 4min15sek czyli 255 sek. Zmienna tp jest word więc nie wychodzi z zakresu. Dzielenie mod też jest raczej ok. A poza tym jak zjadę poniżej 0sek. to pokazuje zawsze końcówkę 28 sek. Czas skróciłem do 10min w ustawieniach
Cześć, Przedstawiam problem: w poniższym programie, gdy nastąpi 2razy przerwanie INT0, to zmienna limit bedzie wynosić 400. Jeżeli zmienna minuty dojdzie do 400 powinno się zatrzymać. Jednak zmienna Minuty dochodzi tylko do 255 tak jakby była zadeklarowana jako Byte, a nie jako Long. Dlaczego? Zmienna Sekundy jeżeli się przestawi z 2 na mp 400 liczy...
A co jest w tym poprawnego? Dodano po 3 Może to że warunek nie będzie wykonywany przy każdym naciśnięciu przycisku? Wersja z Inc I If I > 4 Then I = 4 End If Faktycznie będzie robiła bezsensowne obliczenia, ale zauważ że każda przypadkowa zmiana zmiennej I (na przykład pod wpływem silnego impulsu elektromagnetycznego) zostanie od razu zauważona i...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
robiłem to tak jak wczesniej opisywałeś. mamy te 4 bity po przecinku B3 B2 B1 B0 i teraz tak jeli B3 = 1 to do temperatury po przecinku dodawane jest 50 jesli B2 to dodawane jest 25 jesli B1 to 12 jesli B0 to 6 później dziele to przez 10 i powinna mi wyjsc liczba w zakresie 0-9 . dla temperatur dodatnich jest ok, a dla ujemnych czesto sie to rypie....
No dobra troche źle zadałem pytanie. Załóżmy że mam pomiar z ADC. Wynik mamy w zmiennej pomiar. Zmienna pomiar osiąga wartości od 0 do 1023. Chcę przykładowo aby dla napięć od 0 do 500 program wykonał funckję pierwszą, dla zakresu od 51 do 1000 inną a powyżej 1000 jeszcze inną. Jak zrobić to najbardziej elegancko wykorzystując Switcha ? Nie chodzi mi...
Podstawy się kłaniają ale do rzeczy. Ustawiłeś zmienna X jako bajt : Dim X As Byte a za chwilę robisz cos takiego: X = "141" Zmienna typu byte może zawierać wartości liczbowe z zakresu od 0 do 255 a nie jakiś teskt!!! Do tego celu służy zmienna typu string którą deklarujesz tak: Dim X As String * 3 Cyfra 3 informuje ile znaków będzie mogła...
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:...
Witam Kolegę Co prawda prezentowany kod to C, ale myślę że po jego przejrzeniu "załapie" Kolega w jaki prosty sposób można zrealizować funkcję triggera. [syntax=C] #include "Triggery.h" /* * Funkcja realizująca reakcję na zadane zbocze sygnału. */ uint8_t stan; //Zmienna okrelająca, czy nastąpiło już pobudzenie /* * Zmienna stan umożliwia w tym przypadku...
Jeśli dobrze rozumiem to powiedzmy chcesz liczbę 12345 wyświetlić wysyłając do wyświetlacza poszczególne cyfry. Ty to robisz w ten sposób: cyfra = 12345/10 => 1234 czyli źle bo liczba dziesiątek jest 4 liczba = 12345-12340 => 5 czyli zmienna liczba jest zapisana wartością jedności i całą informacje o liczbie straciłeś. Zaczynasz od tyłu i tracisz wartość,...
Mozemy pomoc w pisaniu, ale z helpem Bascoma powienienes dac rade, obslyga lcd ->gotwa funkcja -klawisze dasz rade, zmieniasz jedynie zmienne - odmierzanie czasu sporbuj na timer1 co np sekunde bedzie zwiekszal Ci zmienna Czas, w petli gl musisz kontrolowac by wartosc nie przekroczyla zakresu - prostym if'em sprawdzasz wartosc tej zmiennej Czas z czasem...
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...
Zrobiłem przypadek ze zliczaniem przepełnień timera1: $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 Config Timer1 = Timer , Prescale = 8 Config Int0 = Rising Dim Wynik As Single Dim Zmienna As Single Dim Zmienna2...
Dobrze, wszystko działa dokładnie tak, jak sobie zaprogramowałeś :) 1. dioda LED - masz ją podłączoną katodą do portu, więc jeśli na porcie dasz 1 to dioda nie świeci, świeci jak podasz 0. 2. diodę masz podłączoną do portu D.0, a w programie sterujesz D.3 - to że w ogóle działa to przypadek 3. Zmienna Pad21 może przyjmować wartości 0-1023, Twoja komenda...
Witam. Kolego emarcus dlaczego zmienna "Dim Czas As Dword" jest aż 32-bitowa? Nie było podane jak dużo czasu może upłynąc pomiędzy impulsami START/STOP, więc wydłużyłem go tak aby zmieścił ilośc microsecund równoważny aż 16.5 sec. Zaznaczyłem to w nagłówku 'rem'. Oczywiście, jeżeli spodziewany interwał czasowy jest krótszy to naturanie słuszne byłoby...
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...
witam ponownie mam do was prosbe mam do napisania Zegarek w bascomie 8051 ni mam tu moj programik moze rzucilby ktos okiem czy nie ma bledow :wink: Dim Sekundy As Byte 'deklaracja zmiennej SSEKUNDY jako liczby z zakresu 0...255 Dim Minuty As Byte 'deklaracja zmiennej MINUTY jako liczby z zakresu 0...255 Dim Godziny As Byte 'deklaracja zmiennej GODZINY...
Szanowni Koledzy Zaczynam "przygodę z mikrokontrolerami" Jako, że będę wykorzystywał "wiedzę" do celów "osobistych" stąd Bascom Napisałem już termostat na DS13b20 i działa Przy pomocy tego samego układu (a jest w nim jeszcze ok 4 kb wolego miejsca) chciałbym móc regulować napięciem na jednym z portów (PodrtD.5) Jak dotąd nauczyłem sie obsługi dołączonych...
Mam problem. Wydaje mi się że PRAWIE wiem o co chodzi, ale PRAWIE robi wielką różnicę:) Kompiluję Program i wyskakuje mi błąd OUT OFF INTERNAL MEMORY jeśli dobrze myślę to oznacza to poza zakresem wewnętrznej pamięci RAM. I w tym sęk. Jeśli dobrze kombinuję to ram powinien być zajmowany tylko przez zmienne??? A jeśli tak, to dla czego przy ilości zmiennych...
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....
Witam Na początku zaznaczam że jestem początkujący w zakresie pisania programów , a właściwie bardzo początkujący. Piszę co prawda programy dla uP w Bascomie, jednak to co chciałbym teraz zrobić jest dla mnie całkiem nowe. A mianowicie: Chcę zrobić wizualizację w PC procesów zachodzących podczas sterowania ogrzewaniem w domu /coś na kształt BMS/ uP...
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)....
Tak zgadza się , capture edge jest i prescaler jest to tylko akt desperacji :). Po prostu wersji w bascomie było bardzo dużo , żadna nie chciała działać. Wrzuciłem wersję z ostatniej próby , której założenie wyglądało "a może w końcu coś ruszy :/ " Próbowałem również po prostu counter, edge falling . Zawsze daje ten sam efekt . Gdy zliczy do 65535 przechodzi...
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...
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ś...
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żę...
Pobawiłem się dziś chwilkę programowym PWM. Jest to rozwiązanie na 8 kanałów - 25 może być ciężko pociągnąć ale oczywiście możesz próbować rozbudować program i zmienić częstotliwość zegara czy wywołania przerwań. Pierwszy to demonstracja tworzenia w zasadzie dowolnie biegnącego światła - dane umieszczamy w liniach Data (wartości od 0 zgaszone do 8 max...
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ć,...
Doszedłem do tego jak zamienić wartość np: 123 dla danych PWM ale mam problem przy kompilacji error 260. [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 12000000 $baud = 19200 Config Serialin = Buffered , Size = 20 Config Portb.2 = Output Config Portb.3 = Output Config Portb.4 = Output Set Portd.3 Set Portd.4 Set Tccr0a.0 Set Tccr0a.7 Set Tccr1a.0...
Znalazłem ten program. Coś mi się przypomina, że jakieś testy na szybko robiłem przed większym projektem i chciałem się upewnić, że to będzie działać zgodnie z oczekiwaniem :) [syntax=vbnet]'-------------------------... 'Proporcjonalny ruch silnika krokowego 'SylwekK '8.03.2013 '-------------------------------------- $regfile "m8def.dat" $crystal...
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...
Witam, udało mi się coś wyskrobać i zrobiłem na razie sam generator częstotliwości, właściwie jakoś tam działa ale chyba napisałem to dookoła , może ktoś spróbował by to jakoś poprawić. Nie dodałem jeszcze generatora PWM, próbowałem ale nie wychodziło mi, chciałem taktować go z wejścia T1 ale nie udało mi się to, nie wiem jak go zmusic do tego żeby...
Właśnie chcę to dokładnie zrozumieć by nawet bez kalkulatora móc to wyliczyć :) choć on bardzo ułatwia i nie trzeba za bardzo wysilać szarych komórek :) Kalkulatory jak najbardziej się przydadzą i za nie wielkie BÓG ZAPŁAĆ :) Z pierwszego kalkulatora zauważyłem, że Timer0 i Timer2 są 8 bitowe natomiast Timer1 i Timer3 16 bitowe Attiny13 ma tylko jeden...
(...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...
Nie chciał bym za Ciebie pisać tego programu, bo jest to naprawdę proste zadanie i dlatego spróbuj sam napisać go jeszcze raz od początku wg np. takiego algorytmu: Ustaw timer powiedzmy na 10khz aby każde przerwanie wykonywało się co 100 mikrosekund. Możesz też gęściej od tego zależy dokładność - tu 100us czyli 0,1ms Zdefiniuj sobie zmienną licznikową...
[syntax=basic4gl]'----------------------... 'Proporcjonalny ruch silnika krokowego 'SylwekK '8.03.2013 '-------------------------------------- $regfile "m8def.dat" $crystal = 8000000 $hwstack = 50 $swstack = 50 $framesize = 24 '-------------------------------------- Config Adc = Single , Prescaler = Auto , Reference = Avcc ' Config Timer0...
Czy ten zapis da sie jakoś uprościc ? Może jakaś zmienna tylko niemam pojecia jak to zrobic próbowałem ze zmiennymi ale mi to nie wychodziło ! Sęk w tym że tych podprogramów jest około 20 ! Wiec niewiem czy mam to robic jak do tej pory czy zastosowac zmienną proszę o pomoc ! Config Pinc.1 = Input Config Pinc.2 = Input Config Pinc.3 = Input Config Pinc.4...
Czy jest możliwość obsłużenia tego w Bascomie? Funkcja GETADC() Przeznaczenie: Pobiera wynik przetwarzania z wbudowanego przetwornika ADC na wybranym kanale. Składnia: zmienna = GETADC( nr_kanału , offset ] ) gdzie: zmienna - zmienna typu Word do której wpisana będzie przetworzona wartość, nr_kanału - numer kanału przetwornika ADC. Zwykle z zakresu...
http://obrazki.elektroda.pl/5924959500_1... Witam ponownie! Kilka dni temu chwaliłem się projektem "PALM v1.0 BETA Atmega128", a dziś chciałbym przedstawić komputerek do motoru lub roweru jaki zrealizowałem już jakiś czas temu na zamówienie. Urządzenie miało zastąpić oryginalne psujne, mechaniczne zegary. Funkcje i założenia: *Wyświetlanie...
Kolega piotrva i atom1477 mieli oczywiście rację, teraz jest OK. Natomiast w kwestii migania przy odczycie temperatury, to może to rozbić na takie części makeint powinno się sprawdzić, termometr ma być dodatkiem do budzika
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...
Witam, Mam mały problem z komunikacją między uC. Ale od początku. Schemat układu pochodzi z EP http://obrazki.elektroda.net/52_12696388... http://obrazki.elektroda.net/91_12696388... Samą komunikację udało mi się zestawić i działa bardzo dobrze (załączony kod poniżej). Master non stop odpytuje slave i jest git. I teraz mój problem,...
Witam Chciałem przesłać wynik obliczeń który jest zmienną typu Integer. Ale wcześniej muszę do zmienić na Byte i wtedy dopiero mogę wysłać. Zmienna Integer jest z zakresu 990 - 1115 ( wartość ciśnienia ). W układzie odbiorczym muszę ją z powrotem złożyć ( do wyświetlania na LCD i zapisu na SD ). Próbowałem coś takiego: Dodano po 1 Już mam: [syntax=basic4gl]...
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...
Elseif Pinb.0 => 30 And < 50 Then Elseif Pinb.0 => 30 And Pinb.0 < 50 Then Dalej nie widzisz różnicy? Wyjasniles mu sposob stoswania operatora "AND" ale w dalszym ciagu ten przyklad nie ma logiczego sensu; zaprzeczasz to co wyzej sam napisales ze: Pin moze byc 0 lub 1. Nie wiem jak Marek to zrozumial akceptujac wyjasnienie. Marek napisal:...
teraz kolega rakuś widzi że nie tylko ja miałem problemy ze zrozumieniem problemu No moi drodzy - analiza wymaga czytania! Nawet Lenin mawaił: CZYTAĆ! czyli napiszmy to jasno, ukontroler dostaje z PC wektor o jaki musi przesunąć frez, czyli x, y, z, no i jakaś informacja o czasie jaki na to mamy, lub prędkosci freza, bo inaczej to bez sensu. No wreszcie...
Witam Mam problem z sterownikiem do lampek choinkowych, układ powstał w oparciu o kit AVT2770. Jest sterowany uKontrolerem AT89C2051. Problem w tym. że P1.0 uKontrolera powinien sterować optotriakiem (podawać stan niski) jednak nie steruje. Przy wyciągnietym uK z podstawki i zwarciu końcówki P1.0 do masy lampki się zapalają. Program napisany w Bacomie...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
Witam, Proponuję spróbować tego, to kawałek kodu z mojego pliku pomocy w obsłudze termometru DS18B20: 'Odczyt temperatury z dokladnością do dziesiątych części $regfile = "89s8252.dat" $crystal = 12000000 Dim Odczyt(2) As Byte 'deklaracja dwóch zmiennych typu byte do których będą zapisywane dane z termometru Dim T As Integer , Przecinek...
Kiedyś ktoś pytał o program do linijki analogowej na LCD alfanumeryczny. Wykombinowałem takie demo: $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 Cursor Off Deflcdchar 1 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 32 Deflcdchar...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Witam, mam problem z napisaniem fragmentu kodu odpowiedzialnego za wyświetlanie paska poziomu głośności oraz wyłączenia wyświetlacza LCD po ustalonym czasie. Może zacznę od sprzętu jakim dysponuję: - uC ATTiny2313 - wyśw. LCD 2x16 znaków Najpierw pasek: ma on "zmieniać" położenie w zależności od pewnej zmiennej, pasek wygląda tak: "----O-----------",...
Dziękuje za uwagi. Nie zajmuje się natywnie programowanie w BASCOMie (pierwsze spotkanie). A poprawki jakie zaproponował były wykonane na potrzeby uruchomienia układu. Kod po moich poprawka i uwzględniających część uwag ZUMEK-a (chodzi o typ zmiennej z Word na Integer) Funkcje dodane do regulatora; 1. obsługa czujników temperatury serwii DS nie ważne...
Tego fragmentu zdania , nie jestem w stanie pojąć I tu się nie dziwię. Za co przepraszam i postaram się wyjaśnić co miałem na myśli W Czasie przeszukiwania forum znalazłem taki kod konwersji T = Makeint(odczyt(1) , Odczyt(2)) 'zrób z dwóch bajtów jednego integer'a Tspr = T 'teraz sprawdzam jaki jest wynik 'interesuje nas tylko...
Witam. Założenie jest proste czyli zwykły licznik w zakresie 0 - 99 km/h. Czujnikiem ma być powiedzmy kontaktron. Niestety mam problem z napisaniem programu. Wg mojej koncepcji przerwanie od timera ma zwiekszać stan zmiennej co 1ms. Po wykryciu sygnału od czujnika wartość czasu ma być przepisana do kolejnej zmiennej i dalej liczona dopiero predkość...
hm Czy tak powinno odbywac sie zastepowanie waitow timerem ? Nie zupenie; W 'Do... Loop ' arbitralnie przy każdym obrocie pętli kierujesz program do pomiaru/odczytu temperatury. Nie ma takiej potrzeby.. Inny szczegół co zauważyłem pobieżnie to stosujesz bez potrzeby "Start Timer0" Każdy timer startuje w momencie jego konfiguracji z prescalerem innym...
Może taki patent $ regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 Cursor Off Deflcdchar 1 , 32 , 32 , 32 , 32 , 16 , 16 , 16 , 32 Deflcdchar 2 , 32 , 32 , 32 , 32 , 20 , 20 , 20 , 32 Deflcdchar 3 , 32 , 32 , 32 , 32...
zakres zmienna zmienna bascom bascom zmienna
zaszyfrowane pliki wirus przekażnik światła mijania cewka pompa
Instalacja osobnego wyłącznika świateł przeciwmgielnych w Citroën Xsara Picasso Bezpiecznik w odkurzaczu Rainbow e2 - lokalizacja