Bascom help: "FUSING" :)
Zedytowałem post. Zobacz. Dodano po 1 Ale i to może by zadziałało. Dodaj jeszcze jedno "0": Z = Fusing(a , "#.##") Z = Format(z , "00000")
Jeśli pomnożysz x 1000 to funkcje int i round są już niepotrzebne. target = FUSING(source, "mask") target = FORMAT(source, "mask") Dokładny opis w helpie.
Text = "99.9999" Text = Format(text , " 0.00") LCD Text Pytanie poza konkursem: dlaczego wszyscy notorycznie stosują Fusing(xxx, "#.&&")? Nie lepiej Fusing(xxx, "#.##")?
Poczytaj helpa o funkcjach Fusing i Format.
... Może ktoś wie jak to zrobić bez sztucznego sprawdzania i dopisywania końcówek. PL Ja chyba wiem ;) 'dla Frm = 0 , kompiluje Fusing() 'dla Frm = 1 , kompiluje Format() 'teraz mozna porównać "pamięciożerność" Const Frm = 0 Dim A As Single , B As Integer , C As String * 10 A = 1.1625 B = A * 10 #if Frm C = Str(b)...
W miejsce instrukcji Fusing użyj Format.
W bascomie masz takie funkcje : FUSING FORMAT STR cos z tego powinno pomóc i warto czasmi przeglądnąc helpa ;)
To sięgnij po" fusing" dla single i "format" dla reszty.
Poszperaj w pliku pomocy do bascoma (1.11.7.4), zwróć uwagę na funkcję fusing(), format() Pozdrawiam.
Poczytaj o "Fusing" i "Format" Edytowałem post. Robak
Problem leży w tym że zaraz po pierwszym odczycie bez uśredniania wyników zerujesz flagę [syntax=basic4gl]If Flaga_1uruchomienie = 1 Then Wart_nap1 = Fusing(y , "#.#" ) Wart_nap1 = Format(wart_nap1 , " ") Flaga_1uruchomienie = 0 Else Wart_nap1 = Fusing(yyy , "#.#" ) Wart_nap1 = Format(wart_nap1 , " ") End if[/syntax] a powinno być [syntax=basic4gl]If...
rozwiązałem to w nstp sposób gdzie: -x0 to korekta dla zerowego ciśnienia -x4 to wartość dla 4rech atmosfer -a,b zmienne pomocnicze -ezero, e4bar wartości zapisane w eeprom x0=ezero d=getadc(0) x4=e4bar a=x4-x0 a=4/a b=d-x0 p=a*b S = Fusing(p, "#.#") thirdline lcd "Bar="; Locate 3 , 5 S = Fusing(p, "#.##")...
Witam Kolego Unreal89. Pracuję pod Bascomem 8051 i nie spotkałem się z funkcją, o której wspominasz. Przejrzałem pliki help'a i tam również nic nie znalazłem. Zainteresowany jestem z jakiego powodu odpada komenda "fusing"? Dla czego pytam? Pozwolę sobie obszerniej skomentować zaprezentowany listing. 1. Termometr DS18B20 przechowuje informacje o temperaturze...
Zaoszczędziłem 32bajty. A teksty z lini: 45, 47, 304, 373, 477, 517, 519, 566, 568, 614, 616, 663, 665, 713, 715, 761, 763, 798 dlaczego nie są w Eepromie :)? Możesz wykasować spacje w łańcuchach i zmodyfikować początek Display_msg. Te wszystkie sztuczki pozwolą ci zaoszczędzić parę bajtów , ale największe oszczędności przyniesie ci rezygnacja z liczb...
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Widzę, że kolega zamierza ostro optymalizować swój kod, skoro dał 1wreset do podprogramu. Z tym, że skoro nie przekazuje do niej żadnego parametru to szkoda go deklarować i lepiej użyć Gosub. Druga spawa to jeśli jest zegar to zamiast używać waitms do wstrzymywania programu na czas konwersji to można by np. w sekundzie nieparzystej rozpoczynać konwersję,...
Fusing to jest do ułamków dziesiętnych... Do formatowania służy Format, ale już sobie poradziłem, dzięki wszystkim za pomoc, zamykam temat.
Tak na szybko mam takie rozwiązanie: Dim Go_s As String * 2 , Mi_s As String * 2 , Se_s As String * 2 Go_s = Str(godzina) Mi_s = Str(minuta) Se_s = Str(sekunda) Lcd Format(go_s , "00") ; ":" ; Format(mi_s , "00") ; ":" ; Format(se_s , "00") Wartości...
Witam Wart_nap = Fusing(r , "#.##" ) Wart_nap = Format(Wart_nap , " ") Wtedy nie będzie się przesuwał napis
Witam Może dla większości proste pytanie, ja niestety nie umiem sobie z tym poradzić. W zmiennej single mam wartość z kilkoma miejscami po przecinku i teraz mam pytanie: czy jest możliwość odcięcia zbędnych cyfr po przecinku tak, aby w/w zmiennej fizycznie pozostała pożądana wartość? np: wartość w zmiennej 1.2345 potrzebna 1.2 lub 1.23 Dodam tutaj,...
pisałem że próbowałem rozwiązać problem, patrzyłem do helpa i nie wykombinowałem więc pisze tu. Takie wyświetlanie miałem już zrealizowane bez funkcji format (dodając parę pętli if) jednak na przyszłość chciał bym wiedzieć normalne rozwiązanie. Według mnie bascom help mówi żeby zrobić tak Stout1 = Fusing(wout1 , "##.#" ) Stout1 = Format(stout1...
Witam serdecznie! Mam problem z wysyłaniem po RS danych. Korzystam z funkcji Print , używałem jej z i bez średnika, używałem też konwertowania na hexy cuda, wianki..... :) Program odbierający stringi (c#) czyta mi z tego portu jakieś badziewie (prawidłowy format to 20.58) a dostaję: 20.58 .58 0.58 8 20 20.58 celowo dałem tam spację bo jest, w bascomie...
durny błąd Nap: Wart_u2 = Getadc(4) U2 = Wart_u2 * 0.004887585533 V2 = U2 * 4.83 Wart_nap2 = Fusing(v2 , "#.#" ) Wart_nap2 = Format(wart_nap2 , " ") Return 'to wywalić Select Case Wyswietlanie Case 0:
...Pytam, ponieważ muszę użyć funkcji: X = Fusing(ds1 , "#.##") A dlaczego musisz :?: Mam nadzieję że nie dlatego bo chcesz wyświetlić część ułamkową ;p Jeżeli już to: Dim Ds As Integer Dim Ds1 As Single Ds1 = Ds X = Fusing(ds1 , "#.##") Jeżeli chodzi tylko o dodanie kropki to może: Dim Ds As Integer X = Str(ds)...
Fusing i Format to nie rozwiązanie mojego problemu ze względu na to że String to zmienna tekstowa a ja potrzebuje wynik otrzymać w postaci zmiennej liczbowej. próbowałem już to zrobić z "div" ale jednak nie ma takiego polecenia w bascomie, sprawdziłem już opcje z backslashem i działa. Dzięki :D
Dzis spróbuje napisac sobie procedure konwertujaca liczbe na format 0,00 - mam pomysła:-). Koncepcje podsunął kolega xury i wielkie dzieki dla niego. Jaka jest najnowsza wersja Bascom, ale taka która pewnie i stabilnie działa? Czy nowsza wersja nie będzie mieć problemów z konwersjami czy lepiej zrobić sobie jednak na piechote i nie łudzić sie że "niedobre"...
Juz lepiej z przejrzystością kodu , sam chyba przyznasz ze łatwiej ogarnąć program , tylko te Wait'y . Miałeś je usunąć z programu . Stosujesz dokładne odmierzanie 1 sekundy i minuty a zatrzymujesz program Wait'em 10 na około 10 sekund . Napisałem jak wykorzystać odmierzanie 1 sekundy do odmierzenia 10 sekund dla buzzera Dopisz w tej linijce kodu Wart_nap...
Program napisany w BASCOM AVR i wyskakujące 3 błędy , mogę wiedzieć dlaczego one wyskakują podczas kompilacji , poniżej zamieszczam kodzik. 'podwójny woltomierz i amperomierz (dwa kanały pomiaru napięcia i dwa kanały pomiaru prądu 'UWAGA _ PONOWNE WGRANIE PROGRAMU SKASUJE WARTOŚCI WSP KOREKCJI Z PAMIECI EPROM '---------------------------------------...
Tak też robiłem ale to nic nie dawało. Wyświetlacz cały czas pokazuje zero. On wogóle tej zmiennej nie zwiększa. W kość daje ta linijka U_wy = Fusing(v , "#.&") ona powoduje wyzerowanie zmiennej licznik i za cholerę nie mogę dojść dlaczego. Spróbuj tak: [syntax=basic4gl]Do Wart_ac = Getadc(1) 'odczytanie wartości z wejścia 'ADC1 mikrokontrolera Lcd...
super dokładne wyniki nie są aż tak wymagane... w sumie to zasilacz i odczyt napięcia i prądu. Potwierdzam, wiem, że funkcja fusing zabiera sporo flasha i przygotowałem już w zanadzu podobną do Twojej funkcję wykorzystującą str i format... mniejszy kod fakt ! Byłem ciekaw co szło nie tak z tym fusing stąd ten post. Szukam po helpie informacji odnośnie...
Jest to woltomierz: $regfile = "m8def.dat" $sim $crystal = 1000000 Config Lcd = 6 * 1 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portd.3 , Rs = Portd.2 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Pinb.1 = Input Portb.1 = 1 S1 Alias Portb.1 Dim Wart_u1 As Word Dim U1 As Single...
w negatywie nie (też to kiedyś przerabiałem ;-) ) zostaje tylko lcd designer , zapisywanie temperatury do epromu , nie wiem ile to pamięci zabiera sprawdz czy np przy pomocy debounce i dwuch przycisków ( + , - ) mógłbyś ustawić sobie (niestety za każdym razem jak wyłączysz zasilanie) temperaturę alarmu , może zaoszczędzisz trochę pamięci trochę poprawiłem...
Działa elegancko. Żeby było wiarygodnie to nawet wygrzebałem Ardu Leonardo z m32u4 na pokładzie. Na jedną rzecz bym jeszcze uważał. Twój kod nie jest w żaden sposób synchronizowany. Może się kiedyś zdarzyć, że jedna z wiadomości nie dojdzie. Z nie będzie miało wartości 3 i przy nastepnej wiadomości procesor zacznie przypisywać wartości innych zmiennych...
Troszkę długo to trwało, bo miałem problemy, atmeszkie 16 spaliłem przez przypadek nie wiedząc o tym i z tym się bawiłem bo mi ADC nie działały........... Mam problem z czymś innym mianowicie zabrakło mi pamięci i wyskoczyło mi w bascomie komunikat. A w optymalizację programu się nigdy nie bawiłem a muszę jeszcze sporo dopisać. Jak na razie wyrzuciłem...
To była moja pierwsza myśl, Disable INT0 umieściłem w pętli głównej na zasadzie [syntax=basic4gl]Do Czas = Czas * 0.22148394241 Predkosc = Fusing(czas , "###.#") Predkosc = Format(predkosc , "00000") Mid(predkosc , 4) = " " Text = Predkosc Disable INT0 gosub sendnap Enable INT0 Loop [/syntax] I działanie to przyniosło efekt w postaci narastania licznika...
64kb brakło na 12 DS-ów ? Ja zrobiłem termometr na 8 DS-ów z wykresami , liczeniem średniej na liczbach "single" , zapisem do eproma i kilkoma drobiazgami wszystko to na lcd graficznym i zajęło mi 7,38kb w Bascomie . Czy wykorzystujesz wszystkie nogi procka ? Ja podłączyłem DS-y do osobnych wyjść , procedurę pomiaru temperatury mam jedną , zmieniam...
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]...
Witam serdecznie! Mam problem z inkrementacją zmiennej Z, ponieważ wszystko opiera się o dokładność przedstawiania liczby zmiennoprzecinkowej. Zamiast 0,1 pokazuje 0,09. Próbowałem już fusing(), frac() (wskazywanie liczby po przecinku, chciałem tą resztę zaokrąglać round() ) , może format() ale tu trzeba non stop konwertować zmienne na znaki z liczb...
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Witam. Żeby trochę usystematyzować: - posiadam enkoder 100pulsów/obrót - spodziewam się wyniku na wyświetlaczu z rozdzielczością powiedzmy 1/10 obrotu Poczyniłem taki krok, że zmienną Encounter zmieniłem jak Single. Dodatkowo wstawiłem linijkę Encounter=Encounter/100 poza pętlą Do...Loop według sugestii Kolegi. Niestety nadal wyświetlana jest ilość...
Witam. Buduję woltomierz do zasilacza laboratoryjnego. Jak zwiększyć zakres pomiarowy tego woltomierza ? Obecnie mierzy on od 0V do 24,04V. To fragment programu: Start Adc 'uruchamia wbudowany przetwornik 'początek pętli programu Wart_ac = Getadc(1) 'odczytanie wartości z wejścia 'ADC1 mikrokontrolera 'czyszczenie LCD 'kursor do drugiej linii...
Poprawiłem błędy, w tym ten związany z częstotliwością a nie z okresem sygnału. Dodałem zmienną typu Single Czestotliwosc, do obliczeń zmiennoprzecinkowych. W Timer0 wpisuję na starcie 131, Config Int0=Rising. Czy dobrze to robię, czy we właściwych miejscach kodu? Pytania: Jak zaokrąglić wynik ze zmiennej Czestotliwosc do dwóch miejsc po przecinku?...
Witam wreszcie znalazłem chwile czasu. czyli ma podleczyć START i STOP po portd.1 i portd.2 i kod zmienić -> $regfile = "m8def.dat" $crystal = 8000000 Config Pind.1 = Input Config Pind.2 = Input Config Pind.3 = Input Set Portd.1 Set Portd.2 Set Portd.3 Bramka_start Alias Portd.1 Bramka_stop Alias Portd.2 Przycisk Alias Portd.3 Nie bardzo...
wynik końcowy faktycznie za każdym razem jest inny. (at) emarcus możesz podpowiedzieć jak powinien wyglądać serwis int1? Popatrzyłem troche bliżej na twoj kod. Z jakiego powodu potrzebujesz otrzymać wynik ("Czas_2") z dokładnocią aż do 9 miejsc decimal? Jeżeli jeden z czynników iloczynu (rozdzielczość timera) jest liczbą wymierną z dokładnościa do...
Złego jest to, że nie jest to mój wynik czasu zapisany jako jedna zmienna w postaci dziesiętnej. Potrzebuję tego, aby później porównywać ten wynik zapisanymi z innymi danymi i zależności od tego czasu zmierzonego będzie wykonywać inne zadania. Nie wiem jak to rozwiązać. Więc tak jak pisałem: przeformatuj wynik! Zmień wymiar zmiennej 'Del' na: Dim Del...
Witam mam problem z zapisem w programie następującego wielomianu: y = 3,627*V1 do potęgi 6 - 38,63*V1 do potęgi 5 + 167,9*V1 do potęgi 4 - 382,0*V1 do potęgi 3 + 475,2*V1 do potęgi 2 - 307,4*V1 + 101,2 Wynik y ma być wyświetlany na LCD. Próbowałem tak, ale wychodzi zły wynik: $regfile = "m16def.dat" 'informuje kompilator o pliku $crystal =...
Witam kolegów serdecznie tuż przed świętami. Piszę program realizujący pomiar temperatury i zapisujący uzyskane dane do pliku zlokalizowanego na karcie SD. Powoli wtrącam timery zamiast wait(). Mam w sumie trzy problemy. 1) Formatuje uzyskane dane przez zapisem do pliku. Niestety nie wiem jak w stringu zamienić kropkę na przecinek i dopiero taki format...
Testując dłuższą chwilę wydaje mi się, że teraz na pewno nie wywala się program, i temperatury śmigają aż miło. Wyrzuciłem całe obliczenia: [syntax=vb]'----------------------------... ADC2------------------------------------... Adc2: Wart_u1 = Getadc(6) U1 = Wart_u1 * 0.004887585533 V1 = U1 Y = V1 ^ 6 Y = Y * 3.627 X = V1 ^ 5 X = X * 38.63 Y =...
Witam mam taki kod: $regfile = "m1280def.dat" $crystal = 16000000 $baud = 9600 Dim A As Integer , B As Single Dim S As String * 7 A = 0 Config Portb = Input Portb = 255 Waitms 1 Enable Interrupts Config Timer0 = Timer , Prescale = 1024 Enable Timer0 On Timer0 Prze_timer0 Do B = A * 256 B = B + Timer0 B = B / 15625 S = Fusing(b , "#.###")...
Wgrałem taki kod niestety uśrednianie nie działa (wynik tak jakby jest co pętle dodawany do siebie jeżeli powinno być 18 to co sekundę rośnie o 18, 36...), ale sformatowane jest dobrze. Co do wyświetlanie wartości zaokrąglonej to w takim układzie w linijce widzę tylko jedną cyfrę. [syntax=vb] Dim Wart_u1 As Word Dim U1 As Single Dim Dys As Single Dim...
Witajcie, mam problem z kodem poniżej. Chodzi o ten element: [syntax=basic4gl]Do B = A * 256 B = B + Timer2 B = B / 15625[/syntax] W takim przypadku kompilator wywala mi błąd w wierszu z Timer2 - niezadeklarowana zmienna TIMER2. To nie jest zmienna!! A gdy zmieniam na Timer1 - wszystko jest OK. Ale dla mnie ... to całkowicie bez sensu. Błędy w kompilatorze?...
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 =...
Kursor jest zawsze na 1,1 i tylko piszesz LCD... Ale... W programie kiedy kręcisz enkoderem i coś ma sie zmienić to na końcu piszesz Call Odswiez_lcd a sub sam okresla co bedzie wyswietlał Użyłem zmennej refresh, jeśli 1 to ma wyświetlić, a to "home" mam ustawić tak jakby przed warunkami case, tak? Zrobiłem właśnie tak i teraz jest świetnie! Nic nie...
Obawiam się, że AT90S2313 nie jest tak ambitny jak Ty. Aby wyświetlić temperaturę z dokładnością do 0,1'C z DS 1820 trzeba przeprowadzić kilka obliczeń na odczytanych z czujnika bajtach 7 i 8 (a nie tylko na 1 i 2). Wymaga to operacji na liczbach zmiennoprzecinkowych (chyba, że ktoś się zaweźmie i spróbuje zrobić to na typie Integer). Takie kombinacje...
Witam! Bawiłem się przetowrnikiem A/C do pomiaru napięcia na mikrokontrolerze Atmega8. Myślę, że na Twoim układzie będzie tak samo. Nie mam w tej chiwli możliwości sprawdzenia czy działa, piszę na podstawie książki "Programowanie mikrokontrolerów AVR w języku BASCOM", którą aktualnie posiadam. Więc tak, najpierw konfigurujesz sobie LCD, częśctotliwość...
Witaj W procedurze : Rf12_wrt_cmd_2: Rf_sck = 0 'Waitus 2 'USUNĄC TEN WIERSZ Rf_nsel = 0 'Waitus 2 'USUNĄC TEN WIERSZ Data_in = 0 For I = 0 To 15 Waitus 1 Rf_sdi = Data_out.15 Shift Data_out , Left , 1 Waitus 1 Rf_sck = 1 Waitus 1 Shift Data_in , Left , 1 Data_in.0 = Rf_sdo Waitus 1 Rf_sck = 0 Waitus 1 Next I Rf_sck = 0 'Waitms 2 ' USUNAĆ TEN WIERSZ...
Witam Mam następujący problem z termometrem DS18B20. Oto mój kod: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portb.6 , E = Portb.7 , Db4 = Portd.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 Config 1wire = Pinc.1 Deflcdchar 1 , 14 , 10 , 14 , 32 , 32 , 32 , 32 , 32 Dim T As Single Dim...
Witam. Po jakimś czasie musiałem wrócić do mojego projektu gdyż przydałby mi sie woltomierz w aucie teraz i postanowiłem dodać go do mojego zegarka z temp. Wszystko działa ok ale po kilku sekundach wyskakują mi jakieś krzaki na LCD. Może ktoś zerknąć na kod i zobaczyć gdzie dałem ciała ;) tak to wygląda: http://obrazki.elektroda.net/83_12427340...
Masz już zrobioną część elektryczną? IMO, zrób sobie zapis na kartę SD i późniejszy odczyt i analizę na PC( choć tu juz musisz się zastanowić nad ATMEGA32). Po twojej stronie będzie tylko kalibracja, aby uzyskać max rozdzielczość. Masz obslugę ADC w bascom ( to przetwornik z linijką świetlną i wynikiem napięcia i wartości z ADC na LCD): PortB podłączamy...
Witam Mam problem za programowaniem przycisków w EVB 4.4 atm644p . Chciałbym uzyskać przy naciśnięciu przycisku: - s1 = temperatury -s2 = napięcia -s3 = Pomiar rezystancji -s4 = Pomiar prądu Prosze o pomoc z Tym Kodem: [syntax=basic4gl]$regfile = "m644pdef.dat" '$regfile = "m32def.dat" '$regfile = "m16def.dat" $include "ds18b20_commands.bas" $crystal...
Kiedyś zrobiłem prosty voltomierz na atmega32 z linijką diodową i wyświtlaniem LCD: $regfile = "m32def.dat" $crystal = 16000000 'konfiguracja wyświetlacza LCD Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Config Lcd = 16 * 2 Cursor Off 'konfiguracja portu b - dla wyswietlania...
Po przeczytaniu wielu postów napisałem program który ma wyświetlać na wyświetlaczu LCD Napięcie , prąd oraz temp. Chciałem to wykorzystać do zasilacza, którego właśnie buduje. jednak po zaprogramowaniu procka wyświetlacz mi się nie inicjuje (zaświecają się kwadraty w pierwszej lini). Czy jest jakiś błąd w moim programie ? Proszę o sprawdzenie. $regfile...
Cos z tymi ifami jest nie tak. Bascom sie wypluwa. Error 7 i 123 w lini 0. Mam jeszce jedne klopt z PWM. Szukalem na elce i na google i nigdzie nie moge znalezc sensownie wytlumaczone z przykladem jak uzywaskac konkretna czestotliwosc na PWM i jak ja regulowac (wyp. 50%). edit: Ok, jakos wybrnelem :D Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare...
Witam niestety komendą LCD nie można wyswietlać zmiennej typu Word. Jak obejść ten problem? Zadeklaruj jakąś zmienną jako string (np. tak jak poniżej jest ss1) Dim Ss1 As String * 12 Ss1 = Fusing(W, "#.&&") ' formatowanie zapisu doformatu x.xx Lcd "U=" ; Ss1 jak wartość odczytana komendą getADC ma się do wartości napięcia...
Dziękuję zaraz sprawdzę i zapoznam się.. A menu ma wyglądać coś w tym stylu: http://obrazki.elektroda.pl/4292689600_1... Dodano po 3 Przedstawieniem co mam na razie zrobione, menu jest zapożyczone na 4 przyciski. Dodałem do niego odczyty z czujników. Ogólnie te menu działa tylko biednie wygląda :-(((. [syntax=bascom] $regfile = "m16def.dat"...
Witam. Posiadam inkubator i sterownik do niego. Wszystko jest okej gdy program działa na wait'ach. Chcę przepisać go do przerwania na timerze ale program mi się zawiesza po wgraniu. Po uruchomieniu nie zawsze pokaże temperaturę, po wyjściu z "menu" również czysty ekran zamiast pomiarów. Cała konstrukcja składa się z: *czterech przycisków Sw1-Sw4 *dwóch...
Witam. Mam problem z napisaniem sterowania grzałką do wytrawiarki. Program ma za zadanie wyświetlać na LCD aktualną temp. i grzanie/niegrzanie płynu. Po naciśnięciu S1 wchodzę w opcje do ustawiania temperatury docelowej (S2 do góry, S3 w dół). Cały problem polega na tym, że przycisk S1 w ogóle nie reaguje (nie wchodzi do menu, wyświetla tylko sub praca)....
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Witam mam przed sobą kod w Bascomie, komputera samochodowego, liczacego spalanie itd...Nie rozumiem jednego fragmentu: Poczatek: Timer1 = 0 Start Timer1 Do If Pind.5 = 0 Then Incr Impw ' PinD.5 = nóżka T1(11) Loop Until Timer1 = 15067 Stop Timer1 Impw - impulsy wtryskiwacza Jak sie domyslam kod ten ma liczyc czas trwania kiedy wlaczony jest...
Witam na wstępie chciałem powiedzieć, że nie jestem dobry w programowaniu, bo dopiero zaczynam i mnie to powoli wciąga. Mam parę pytań i postanowiłem napisać. Chce zrobić sobie taki mini komputer pokładowy do Fiata Cinquecento 700. Ten mały układ ma wskazywać temperaturę w środku samochodu i na zewnątrz a tak, że będzie pokazywać napięcie, jakim jest...
Witam Mam układ, który mierzy dwie temperatury ( DS18B20 ), dwa napięcia ( PCF8591 ( pobiera czas ( PCF8563 ), a z powodu niedużego wyświetlacza ( 12 x 4 ) wskazania są zmieniane do 10 sekund po przepełnieniu Timer1. Układy PCF8563 i PCF8591 są podpięte z "zewnątrz" przewodami około 10 cm. Magistrala I2C ma obniżoną prędkość przez Config I2cdelay =...
witam Czy ktoś z wytrawnych bacom-owców mógłby mi podpowiedzieć jak poprawić kod ;) Program jest banalny dla was ;) ja dopiero się uczę ;) Napisałem program z menu przełączanym jednym klawiszem - zmienna Menu_id zliczana i ze względu na nią i ponowne naciśniecie klawisza wywołuję podprogramy - wszytko działało super dopóki nie dodałem pomiaru temperatury...
$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja portów od wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5 Config Lcd = 16...
Wklejam ten kod [url=http://bascom-forum.de/showthread.p... właściwego postu . [syntax=basic4gl]'----------------------... ' Dateiname : TEA5767-TP.bas ' Revision : 1.0 19.08.2012 ' Controller : AVR ATmega8 ' Autor : Thomas Palluthe (www.tp-homesoft.de)...
Proszę o pomoc, nie wiem czy dobrze kombinuję z tym Capture Mode. Próbuję cały czas to jakoś odpalić w moim programie, ale nie wiem czy czy dobrze robię. [syntax=vb]'--------------------KONFIGUR... $regfile = "m16def.dat" 'informuje kompilator o pliku $crystal = 8000000 'informuje kompilator o częstotliwości...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
Bascom nie jest taki głupi i nie pozwoli skompilować jeśli Relative Call or Jump jest zbyt daleki. Wywali błąd. Przykładem jest biblioteka hexval.lib autorstwa MWS. Nie jest to biblioteka MCS i użyto w niej RJMP i RCALL. Jest pomocna bo sprawdza czy wartości HEXstringów zawierają tylko dozwolone znaki A-F 0-9, jednak dla większych programów np. z obsługą...
Witam. Jako początkujący, a już trochę wiekowy (46)proszę o wyrozumiałość. Napisałem w Bascomie takie coś , zrobiłem układ i nic. Nie działa. W którym miejscu jest błąd ? Na schemacie nie ma tranzystorów PNP w anodach, rezystorów w segmentach - celowo , bo to oczywiste. No więc tak na początek staraj się opanowac ten projekt "segmentami"; Najpierw,...
Masz tu przykład prostego programu. Z realizowaniemkilku zadań "jednocześnie" ' i2c SCL-PortD.4, SDA PortD6, 1Wire1 - portA.0, 1Wire2 - PD4, LCD: Enable - PortB.0, RS - PortB.4, D7 - PortB3 , D6 - PortB2 , D5 - PortC2 , D4 - PortB1 ' PA0 + dla LED1, PA1 + dla LED2 , PC3 - przycisk 1 , PC5 - przycisk 2 , PC6 - przycisk 3 , PC4 - przycisk 4 $regfile =...
Witam Właśnie robie sobie wyświetlacz do samochodu, na razie mam dwie temperatury i napięcie... Zamieszczam listing: $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.1 , Db5 = Portd.2 , Db6 = Portd.3 , Db7 = Portd.4 , E = Portd.0 , Rs = Portd.5 Config Lcd = 20 * 4 Config 1wire = Portd.7 Config Pinc.0 = Output Config...
Znalazłem poniższy kod na "Elektrodzie" załadowałem do procesora, pomiar napięcia jest zrealizowany zgodnie z przykładem z książki o Bascomie, niestety coś jest nie tak, ponieważ mimo że do ADC1 nie przykładam żadnego napięcia na wyświetlaczu pokazuje napięcie 1,96-2,03 V, po przyłożeniu napięcia 5V wskazanie wyświetlacza jest prawidłowe. [syntax=basic4gl]...
Witam! Jakiś czas temu wykonałem termostat cyfrowy na Atmega 8. Problem polega na tym, że kiedy chcę ustawić temperaturę, to mogę ją ustawić, ale tylko do temperatury 100°C i wszystko wraca do ekranu głównego. Podobnie jest z ustawianiem histerezy, tylko tam już nic nie mogę zmienić. W związku z tym mam prośbę dla forumowiczów którzy orientują się w...
Teraz mam inny problem. Chcę robić pomiar temperatury i zapisywać na kartę SD. Używam do tego modułu prototypowego tego autora: Ponieważ post dotyczy innego tematu niż oryginalny wątek, temat podzieliłem. Na przyszłość proszę w przypadku napotkania problemów niezwiązanych z oryginalnym tematem postu zakładać nowy wątek. W ten sposób inni będą mogli...
Witaj,kiedyś napisałem program w Bascomie do załączania żelazka które nie miało żadnego czujnika i regulatora temperatury,program jest napisany pod czujnik temperatury LM35 ponieważ ma duży zakres mierzenia,może ci to pomoże w rozwiązaniu twojego problemu: [syntax=basic4gl][/syntax] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack =...
Dzięki za cenne uwagi. Teraz wiem czego szukać. Generalnie zmiana kontrastu pokaże że dolna linia nie działa. Szpilki na zasilaniu przy LCD mogą się pojawić, nie dałem dodatkowego kondensatora. Inicjalizacja wyświetlacza co pewien okres czasu na pewno pomoże. Poprawki wykonam w Piątek lub Sobotę i się odezwę za tydzień. Kontrast jest regulowany dla...
Witam Chciałm zrobić automatyczną regulację obrotów silnika. Pierwszy silnik napędza drugi silnik który pracuje jako prądnica i muszę wraz ze zmianą obciążenia prądnicy regulować obroty silnika tak aby uzyskać stałe napięcie na wyjściu prądnicy. Do sterowania zastosowałem Atmegę 8. Napisałem taki programik i niby działa, ale ... regulacja jest zbyt...
Witam! Sterownik lcd t6963. Bascom Jak zrobić czyszczenie ekranu? Próbuje cls, cls text, cls graph, ale nie działa... Mam podprogramy, i chce wyczyścic ekran po przejsciu do następnego podprogramu. Niestety nie działa czyszczenie ekranu.. Kod wygląda na razie tak: ........................................... [syntax=basic4gl]$regfile...
Buzzer działa świetnie. Mam problem z ADC. odczyt mam tak: [syntax=vbnet] Rezu = Getadc(0) Wynik = Rezu / 205 V = Fusing(wynik , "#.##") Setfont font8x8tt : Lcdat 1 , 96 , V ; "V" '3 , 1 , V ; "V"[/syntax] W kodzie od Ciebie jest : [syntax=vbnet]Dim Prev_adc As word [/syntax] Kompilator odwołuje do ustawienia Prev_adc as Single. Czy to ma związek z...
Witam, Jak w temacie. Mam układ w którym (niestety) pracuje wykręcona do 25MHz Atmega 32. Wszystko działa bardzo dobrze i nie przeszkadza jej taki ovrclock ale mam problem z odczytem danych z czujnika DS18B20. Komunikacja typu RS232, ISP, i2C działa idealnie. Nie mogę zejść z taktowaniem niżej. [syntax=vbnet] If DSwait < 5 then 1wreset 'reset magistrali...
Program napisany jest w Bascom. Delay nie ma w ogóle. Program napisany chaotycznie, ale działał ok dopóki nie dopisałem obsługi DCF77. Gdy przyjdzie odpowiednia godzina, dioda IR ma wysłać kod do odbiornika. Wtedy właśnie procesor zwalnia. Sekundy wtedy "idą" co 3 no i dźwięk ma zwolnione tempo. [syntax=vbnet] $regfile = "m32def.dat" $crystal = 8000000...
Witam Miałem podobny problem z wyświetlaniem. Trzeba prawidłowo przypisać typy zmiennych a formatowane umieścić w poleceniu LCD "123";Fusing(X, #.##);"123". Tylko takie umieszczenie formatowania rozwiązało mi problem z wyświetlaniem całkowicie. Odpowiednie akcje na zmiennych należy wykonywać po zaokrągleniu do całości instrukcją np Round(Vol) lub Int(Vol)...
witam mam nastepujacy problem w bascom moze banalny ale nie moge go przesskoczyc:(brak logicznego myslenia) chodzi o pomiar temperatury na ds 18b20 przed wyswietleniem temperatury formatuje liczbe za pomoca polecenia: Str_temp = Fusing(temp , "#.&") wiec z liczby np: 22.6255 zostaje mi 22.6 i moge to wyswietlic jest ok tylko liczba jest zapisana jako...
wymieniłem procesor i zamieniłem kolejność kodu ................ coś pomogło :) chyba zmiana kodu :) Raczej pomogła zmiana processora... Obie alternatywy kodu nie różnią się od siebie, ponadto patrz wyjaśnienia; mam jeszcze problem po przerobieniu na volty wyświetla mi np. 345 a powinno 3.45 stosuje: Pokaż w jaki sposób "przerabiasz" odczytaną wartośc...
Po kilku dniach pracy urządzania stwierdziłem że jednak przydało by się żeby serwerek dodatkowo wysyłał dane do "https://thingspeak.com/" chociaż z termometru domowego. Próbowałem na rożne sposoby ale nie mam pojęcia jak to zrobić. Może ktoś z Was jest w stanie zmodyfikować kod ? Może kolega (at)bart-projects czyta ten temat? ;) (to ten sam kod co w...
Tu masz prosty programik, który kiedyś pisałem. Przedstawia obsługę zarówno wersji B jak i S. [syntax=basic4gl] $regfile = "m8def.dat" 'deklaracja procesora $crystal = 8000000 'deklaracja czestotliwosci taktowania Config Lcd = 16 * 2 'typ wyswietlacza i konfiguracja pinow Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5...
Etap 1 - znalazłem to: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Bd(1) = 1wread(2) 1wreset T = Bd(2) And 1 Dz = Bd(1) And 1 Dz = Dz * 5 Shift Bd(1) , Right If T = 1 Then T = Bd(1) Xor 127 If Dz = 0 Then Incr T Minus = "-" Else T = Bd(1) Minus = "...
Witam. Jestem w fazie pisania programu z zegarem DS3231 i atmegą16. Mam podłączone wejście INT0 atmegi z wyjściem INT/SQW DS-a. Podciągnięte rezystorem 10k do 5V. I nie wiem co robię źle ale procesor nie reaguje na sygnał przerwania z DS-a. Powiem szczerze że nigdy nie korzystałem z przerwań zewnętrznych ale znów ustawienie tego nie jest skomplikowane...
Witam. Zmuszony jestem znów zapytać Kolegów gdzie robię błąd w obsłudze SHT11. [syntax=basic4gl] $regfile = "m16def.dat" '$crystal = 400000 '**************KONFIGURACJA LCD***************** Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.4 , Rs = Portd.0 Cursor Off Cls Deflcdchar 0 ,...
bascom fusing fusing bascom bascom fusing przecinek
linux puppy zasilacz lenovo zamiennik pasek rozrząd citroen
Kopcenie Suzuki podczas jazdy - przyczyny i rozwiązania Różnice między Volvo Penta Z 100 a Z 280