Funkcje wait (waitms) w BASCOM nie blokują i nie resetują watchdoga. Wyłączanie watchdoga w czasie odczekania może prowadzić do sytuacji, gdy wchodzące w tym czasie zakłócenie zablokuje nam na stałe procesor. Dlatego lepiej wstawić pętelkę z resetowaniem watchdoga i zostawić watchdog włączony: for i=1 to 3 reset watdog wait 1 next
a czy wywołanie funkcji jest ok? Bo mnie chodzi o to aby funkcja liczyła reszte z dzielenia. Nie wiem czy jest ok, bo nie podałeś tej części kodu :) Sprawdź czy działa tak jak zakładałeś.
...a tak z innej beczki nie działa taki np zapis: if Scanstrsp(tekst, ":") = "dane" then tylko muszę to robić tak: a = Scanstrsp(tekst, ":") if a = "dane" then czyli w warunku nie można tak użyć argumentu funkcji - szkoda (albo znowu czegoś nie wiem). Za to tak działa ;) a="dana"...
Funkcja WAITMS nie jest odporna na przerwania. Jeśli masz jakieś to każde wystąpienie przerwania w trakcie WAITMS rozjedzie go. Niezależnie od stabilności tej funkcji, a nie ma powodu, żeby nie była powtarzalna jeśli nie jest przerywane wykonanie przerwaniami, to i tak lepsza praktyką będzie wykorzystanie timera.
To nie jest żadna składnia Timera tylko lista zmiennych. Dim to skrót od Dimension. Pisząc Dim Zmienna As Byte opisujesz zmienną że będzie jednobajtowa i tak trzeba opisać każdą. Co do chwilowego wyłączania diody D1 to to dopisałem. Zadbałem też o poprawną polaryzację D3 przy naciskaniu. Niedobrze jest tak nie znać wszystkich założeń programu i potem...
A Twój program nie chce działać? Jaki jest problem. To co w programie masz nieprawidłowo to odczyt stanu przycisku. Procedura odczytu przycisku powinna przewidywać takie sytuacje jak drgania styków lub przypadkowe zakłócenia na linii przycisku. Jedną z możliwość odczytu przycisku jest: [syntax=basic4gl]If Wejscie = 0 Then Waitms 100 If Wejscie = 0 Then...
Zainteresuj się funkcja Printbin oraz podziel dane na osobne bajty.
W tym kodzie jest błąd: Load Timer0 = 250 jest niepoprawnie zapisane bascom nie krzyczy błędem ale ta składnia nie działa. Powinno być Load Timer0, 250 Ta funkcja ładuje do timera wartość 256-wartość, czyli w twoim wypadku 6.
Panowie, to Bascom. Musiałbyś dorwać się do kodów biblioteki w ASM i zobaczyć jaka funkcja w ASM jest odpowiedzialna za reset komunikacji z LCD i jego inicjalizację i ja cyklicznie wywoływać. Bez tego w Bascom będzie ciężko, ewentualnie możesz napisać sam prostą procedurę inicjalizacyjną na podstawie DS sterownika wyświetlacza.
Jeśli chodzi o ID to chyba najprościej będzie zrobić funkcje i z głównego programu przekazywać do niej ID czujnika, natomiast funkcja będzie zwracać np bit 1/0 OK/ERROR. Podobnie chyba można zrobić z odczytem temperatury.
Przy zapisie do EEPROMU w Bascomie nie musisz wyłączać przerwań. Funkcja WRITEEEPROM robi to sama, ale READEEPROM już nie wyłącza przerwań :)
Ja też nic o zmiennej Err nie widzę. PS. Ale ogólnie to funkcja może zwrócić dwa parametry (albo i więcej). Procedura też ;)
Funkcja MID. :) [url=http://avrhelp.mcselec.com/index.ht...
Witam, Magistrala 1-wire posiada dość mocne restrykcje czasowe co do trwania poszczególnych stanów na DQ. Przerwanie Timera, a wiec wykonanie podprogramu związanego z obsługa przerwania, powodowało zmianę długości tych czasów, gdyż są one generowane softwaerowo przez Bascom. Czasem może się zdarzyć że kolizja i tak wystąpi pomimo że teraz wszystko jest...
Tak prymitywnie to wyślij to sobie ze spacją i potem podziel otrzymany string szukajac spacji [syntax=vbnet] Print V1 ; " " ; A1 Dim MyArray(2) As String * 5 , M As Byte M = Split(CalyOdebranyString , MyArray(1) , " ") 'podziel szukając spacji Locate 1 , 1 : Lcd MyArray(1) Locate 2 , 1 : Lcd MyArray(2)[/syntax] Radzę też napisać u góry w kodzie : [syntax=vbnet]Config...
Być może bascom'owe instrukcje obsługi lcd nie patrzą na kierunek w jakim działa port, tzn. w w funkcja "Config Lcdpin" ustawia wybrane porty jako wyjścia a pozostałe instrukcje obsługi lcd nie sprawdzają czy to się nie zmieniło. Spróbuj przed instrukcjami od lcd czyli przed obydwoma "cls" ręcznie przestawić wyprowadzenia uC jako wyjścia. Druga sprawa...
Wygląda na to że wszystko działa. Sprawdź czy masz właściwy Baudrate. Na obrazku widać że Adres 1 Funkcja 4 i prosi o dwa rejestry typu Word a potem dwa bajty Checksum. https://obrazki.elektroda.pl/7487360400_...
Nigdy nie używałem funkcji. Więc nie mam pojęcia jak to zrobić. Czas sie dokształcić, do Bascom jest polska pomoc z przykładami. Jaki problem? Ponadto zamiast funkcji można użyc podprogramu, choć funkcje są wygodniejsze. Ta funkcja musi być solidnie rozbudowane aby przesłać jeden znak. Bzdura, wysłanie znaku, to wysłanie bajtu do sterownika. Wyświetlacz...
Witam. Trochę to mętne , ale spróbuję ci jakoś pomóc. Każda zmienna jest przechowywana w pamięci w postaci dziesiętnej. Możesz ją zadeklarować jako kod szesnastkowy np. : zmienna= &HFF00 Ale i tak w pamięci zostanie zapisana jako konkretna wartość. Nie wiem do czego potrzebujesz, ale domyślam się że chcesz to wyświetlić jako wartość szesnastkową. Wartości...
Wszystko powinno wyjaśnić to: Jeśli w buforze nie ma żadnego znaku funkcja zwraca zero. Można najpierw sprawdzić czy w buforze transmisji znajduje się jakikolwiek znak. W tym celu należy skorzystać z funkcji ISCHARWAITING() . Nie sprawdzasz wogóle czy znak jest w buforze, zatem dostajesz głupoty.
Zmiennej lokalnej nie dasz do DMA. Znaczy dać by się dało bo jakiś adres ona tam ma. Przynajmniej w BASCOMie który nie optymalizuje kodu a więc wszystkie dane mieli na pamięci RAM. Tym RAMem jest stos. W każdym razie chodzi o to że zmienna lokalna jest tracona po wyjściu z funkcji. Stos nie znika ale jest wykorzystywany przez coś innego. Więc miejsce...
Nie znam mozliwości w tym zakresie Bascoma. Jedno jednak jest pewne. Każdy program tego typu może działać sekwencyjnie. Oznacza to, że wywoływanie kolejnych procedur w procedurze działać musi. Jest jednak tzw granica zagnieżdzeń. Może ona wynika z możliwości samego kompilatora (programu tłumaczącego - w tym wypadku Twoim nie sądzę aby tak było), albo...
No to kawa na ławę. Instrukcja Getrc5 w czasie działania używa jest licznika TIMER0 i związanego z nim przerwania. Licznik ten jest służy do generacji wymaganych opóźnień podczas próbkowania sygnału. TIMER0 może być dalej używany przez program, lecz należy się liczyć z wynikłymi opóźnieniami, gdy wykonywana będzie funkcja GETRC5(). Jest tylko jeden...
Sprawdź jeszcze jeden "myk" Wszędzie zamiast Chr( ) wpisz ten sam numer tylko w nawiasach klamrowych (bez Chr - tylko sam nawias i trzy cyfry) Przykład: Zamiast Chr(1) wpisz Lcd {001} Zamiast Chr(7) wpisz Lcd {007} Zamiast Chr(32) wpisz Lcd {032} Kod się znacząco zmniejszy co może się czasem przydać przy małych mikrokontrolerach. Chr( ) to funkcja zamieniająca...
Witam, Polecenie SOUND port , il_impulsów , czas_impulsu To mi nie pomoże. Jako argument chcę podać potrzebną częstotliwość (liczba), a nie ilość impulsów i czas impulsu... Jeżeli znasz częstotliwość to nie problem określić ilość impulsów i czas trwania, ale ta funkcja jest mało precyzyjna. Lepiej wykożystać do tego Timera: $crystal = 4000000 Pwm1a...
Witam i przechodzę do rzeczy.Na 1-szy ogień idzie ten kawałek kodu: 'wpisywanie pewnych wartosci ... G = 272 Liczba = 30 Liczba = Hexval(liczba) G = Hexval(g) Kombinacja = 1 Czas = 1000 ... I jakież to wartości ,zawierają zmienne :?: Ano takie: Liczba=238 :?: G=3793(0x0ED1) :!: Czas=1000(0x03E8) Ok. ... Writeeeprom Czas , Liczba Writeeeprom...
rozne serwa roznie moga dzialac. Nigdzie nie widzialem, zeby ktos okreslil dokladna czestotliwosc z jaka to ma byc robione.. zazwyczaj jest ok. 50Hz. Drobne roznice typu kilka Hz (czyli kilka ms wywolywanie przerwania) nie powinny miec zadnego wplywu na serwo. Problem moze sie zaczac jak bedziesz mial dlugie funkcje wywolywane przerwaniami... ale na...
mod to nie funkcja tylko działanie matematyczne takie jak "+" czy "-" wynikiem mod jest reszta z dzielenie pierwszej liczby prze drógą np x= 10 mod 3 - wynikiem będzie 1 x= 11 mod 3 - wynikiem będzie 2 x= 12 mod 3 - wynikiem będzie 0 x= 13 mod 3 - wynikiem będize 1 mod jest opisane w pomocy w zakładce "Language Fundamentals" pozdrawiam
Akurat takich mam dostatek, jednak nie bardzo rozumiem, jak wykożystac sprzętową obsługę w bascomie W helpie jest opisana funkcja ENCODER(), zatem może warto najpierw te parę zdań przeczytać? W obsłudze przerwania sprawdzasz stan wejść i porównujesz z poprzednim stanem Nie zapominajmy o drganiu styków. Jeszcze nie spotkałem enkodera mechanicznego,...
Pomyśl..Cztery znaki chcesz upchać w trzyznakowym stringu.. Nie wiesz jak to działa. Kiedy deklarujesz String * 10 rezerwujesz 11 bajtów bo każdy string ma znak swojego końca. Nie musisz wykorzystać wszystkich bajtów. String może być krótszy i zaraz po znakach postawiony będzie znak końca..ale zarezerwowałeś 11 bajtów i tam program nigdy nic nie będzie...
Ten przykład działa, ale tylko dla jednego "przełącznika" ale gdy robie np dwa kolejne to już coś jest źle. Buduje urządzonko, które będzie załączać 3 przekaźniki: - 3 przyciski (portd.4, portd.5, portd.6) - 3 przekaźniki (portd.1, portd.2, portd.3) Jak to można zrobić w BASCOMie?? Kod dla w/w konfiguracji: Config Debounce = 30 Config Portd = Output...
http://obrazki.elektroda.net/61_12840708... Przedstawiam mój sterownik awaryjnego zasilania mieszkania, pieca CO i pompy od solarów. Urządzenie w takiej, a nie innej formie powstało w sumie przez przypadek. Początkowo miało to być tylko podtrzymanie pompy solarów gdyby zabrakło napięcia w sieci, a temperatura na dworze była by zbyt wysoka...
Proszę. Jest to przykład zapisu i odczytu zarówno zwykłych bajtów jak też łańcuchów tekstowych inaczej mówiąc napisów w Eeprom. Program i funkcje działają z małymi pamięciami których adresacja mieści się w jednym bajcie. Do tego przykładu użyłem 24C04 Jeśli ktoś chce to może po prostu wpisać sobie jakieś dane do buff(1), Buff(2) itd i tak zapisać. Potem...
Mając trochę wolnego czasu napisałem parę funkcji do obsługi układu PCF8583. Funkcja która ustawia godzinę i datę zapisuje też dane potrzebne do obliczenia pełnego roku, dzień tygodnia jest obliczany automatycznie na podstawie daty. Funkcje Pcf8583_write i Pcf8583_read można wykorzystać do zapisywania/odczytywania danych z wolnej pamięci ram. Dostępne...
Niepotrzebnie otwierasz i zamykasz kanał przy każdym wysyłaniu. Otwórz kanał przed pętlą a w pętli tylko wysyłaj dane (bez zamykania kanału).
Ja to robię tak że pisze sobie procedurę która zwraca (zapisuje do innej zmiennej) wynik dzielenia pierwszego przez 10 (czyli funkcja mod). Następnie zmienna wejściowa jest dzielona przez 10 i tak zostawiana. Programik na początku podstawia "swoją" zmienną do procedury dzielenia. A następnie wywołuję procedurę jeden raz. Wynik jest teraz przepisywany...
http://obrazki.elektroda.net/32_12761638... Witam serdecznie! Ostatnio tworzyłem m. in. zegarek analogowy w BASCOM'ie, co wymagało zastosowania funkcji trygonometrycznych. Początkowo oprogramowanie rysowało jedynie kreski w miejscu wskazówek, jednak gdy chciałem wykonać prawdziwe wskazówki kod uległ mocnemu zabałaganieniu i oczywiście nie...
Witam. Ostatnio postanowiłem napisać NA uC ATMEGA32 w języku BASCOM basic licznik rowerowy. Mam już znaczną część kodu, ale natrafiłem na problem. W zmiennej czas_jazdy_total przechowuję ogólny czas jazdy wyrażony w sekundach. Niestety taka postać nie jest przyjemna dla oka, więc należałoby zamienić ją do formatu godziny - minuty - sekundy. Tylko teraz...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
Przy okzaji chialbym dopytać Mundi1970 czy skoro w deklaracji funkcji użyłeś ........ We wszystkich przykładach z katalogu SAMPLES i w helpie, na początku funkcji jest podawany typ danych. Teraz działa nawet i tak :): Zalecił dopisać you need to add : $swstack=16 $framesize=30 I kod zaczął działać...:) Należy też pamiętać że te wartości mogą być większe....
Wprawdzie ... to nie humanitarnie z mojej strony dawać niemalże gotowca ... :D [syntax=basic4gl]$regfile = "m2560def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 64 $framesize = 64 $include "Config_PCF8583.bas" Declare Sub Displaytime() Declare Sub Settime() Declare Sub Cancel() Declare Sub Plus() Declare Sub Minus() Declare Sub Saveandexit() Declare...
Siemka ugh123 :D Co prawda nie mam tego wyświetlacza (Nokia), lecz o wiele większy. Ale do do tematu. Pliki ".bgc" są zapisywane w 8-bitowym kolorze, Ja pracuję z 16-sto bitowymi kolorami, więc konieczna jest konwersja z 8 na 16 bitów. Informacje na temat wymieniony przez Ciebie znajdziesz w sieci (poszukaj). Nie dam Ci gotowca,i sądzę, iż nikt Ci nie...
http://obrazki.elektroda.net/70_12606334... Chciałem przedstawić konstrukcję zamka do drzwi opartego na module z ALLEGRO na układzie EM4095. Całością steruje ATmega8 z zewnętrznym kwarcem 8MHz. Program sterujący napisany w AVR BASCOM zajmuje w chwili obecnej 34% procesora. Funkcje zamka to: 1 Zapamiętanie max 10 kart RFID 2 Odczyt i po stwierdzeniu...
http://obrazki.elektroda.pl/9223335300_1... Było już na elektrodzie prezentowanych wiele zamków szyfrowych – z pełną klawiaturą, dwoma przyciskami i jednym też. Mój projekt z serii pchełka zrealizowałem na Attiny13 i jednym przycisku. Potrzebne mi było rozwiązanie nieco inne – coś co nie będzie chronić sejfu w banku ale...
ATmega8 ma tez wewnetrzny oscylator 8MHz. Tylko z Bascoma nie udalo mi sie go ustawic. Ale PonyProgiem mozna to zrobic bez problemu recznie modyfikujac CKSEL.
Do Reset Portb.1------- tu ustawiasz na wyjscie niskie Wait 1 ------- tu czekasz sekunde Set Portb.1 ---- tu ustawiasz na wyjsciu wysokie Loop -------A TU ODRAZU WRACASZ DO POCZATKU PETLI I TAM ZNOW USTAWIA SIE NA NISKIE End Rozumiesz gdzie jest bład? $crystal = 16000000 $regfile = "m32def.dat" $baud = 9600 Config Portb.1 = Output Do Reset Portb.1 Wait...
http://obrazki.elektroda.pl/8230612800_1... Przedstawiam dzisiaj prosty gadżet jaki zmajstrowałem jakiś czas temu. Jest to w zasadzie zwykły elektroniczny metronom i nie różniłby się od wielu podobnych tu prezentowanych gdyby nie sposób ustawiania czasu pikania. Założenia: 1.Wykorzystać stare diody led, które leżały w szafce około 15lat......
A nie lepiej zastosować Lookup ? [syntax=basic4gl]Declare Sub Wyslij(byval Zmienna As Byte) Dim A As Byte For A = 0 To 14 Call Wyslij(a) Next A End '---------------------------------------... Sub Wyslij(byval Zmienna As Byte) Local I As Byte I = Lookup(zmienna , To_co_sle_do_scalaka) Print I End Sub To_co_sle_do_scalaka:...
https://obrazki.elektroda.pl/2578145800_... Od dłuższego czasu planowałem wykorzystanie drukarki termicznej razem z terminalem/kolektorem danych Psion Workabout MX. Był pomysł aby taką drukarkę kupić, jednak kiedy dostałem 3 kasy fiskalne do "wypatroszenia" w ramach projektu "rzeźnia kas fiskalnych" to nie mogłem zwyczajnie zostawić...
To jest przykładowy program do tej klawiatury. Zajrzyj do pliku pomocy Bascom albo naciśnij F1 w Bascomie.
http://obrazki.elektroda.net/99_12655757... Witam dzisiaj chce wam przedstawić moja pierwsza w pełni ukończona konstrukcje a jest to lampka RGB :D Pomysł na projekt zrodził się z tego ze potrzebowałem jakiegoś oryginalnego prezentu dla mojej dziewczyny (dwa lata razem za tydzień ;p) i chciałem nauczyć się obsługi PWM oraz portów analogowych...
http://obrazki.elektroda.pl/5053717900_1... Miałem ostatnio potrzebę zrobić mały termostat, który będzie dość przyzwoicie trzymał temperaturę, a warunkiem było jej nie przekraczanie. Pomyślałem, że zanim go oddam to jeszcze go zdążę tu opisać... a i będzie kolejny przykład, że Attiny 13 potrafi więcej niż tylko miganie diodą :-D Było...
Napisz sobie funkcję, która jako parametr przyjmie odebrany ciąg, w pętli będzie przeglądać kolejne znaki aż do końca ciągu źródłowego (napotka znak o kodzie 0) i jeśli napotka taki z zakresu "0"-"9" to wtedy taki znak dopisze do zmiennej wynikowej. I na koniec funkcja ją zwróci. Myślę jednak, że Tobie potrzebna będzie znacznie bardziej rozbudowana...
Jesteś oszczędny w opisie tak jakbyś nie lubił klawiatury a ja nie lubię wyciągać informacji jak nauczycielka w szkole osła za uszy. Sam sobie szkodzisz. Napisz może co wyswietla... Osobiście to dodałbym zmienną ErrChck As Byte i ją przypisywał zamiast tego "Lcd Error" [syntax=vbnet]'....tu funkcja odczytu.... 'zamieniamy ostatnie polecenia Dim ErrChck...
https://obrazki.elektroda.pl/7834697200_... Wszystko zaczęło się od niedokończonego (nie wykorzystanego) projektu klawiatury USB pisanej w Bascom ( https://www.elektroda.pl/rtvforum/viewto... ) na Atmega8. Pierwotnie miał to być symulator hamulca ręcznego w grze samochodowej o który zostałem poproszony przez znajomego....
Cześć W załączniku podsyłam Ci formułę obliczeń z której korzystałem oraz arkusze Open Office w którym to wyliczałem. Z jakiegoś powodu (już nie pamiętam) użyłem wtedy Open Office zamiast Excela. Ten arkusz nie otwiera się poprawnie w excelu. Obliczenia wykonane dla 250 kroków, timer 16bit (procek PIC taktowany kwarcem 8MHz). Teraz nie mam Open Offica...
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 To był mój błąd;...
Żeby układ sam się resetował przy włączeniu zasilania , to opornik dajesz do plusa i kondensator z pinu reset do masy.
...właśnie znalazłem chwilkę czasu i ze zdumieniem zobaczyłem, że te biblioteki to nie jakieś pliki binarne ;) tylko tak jak podałeś w przykładzie z tym LCD. hmmmm tylko czy jest gdzieś jakiś opis jak się do tego tak bardziej szczegółowo zabrać? Jakoś nie spotkałem materiałów , o "nazewnictwie" wbudowanych w Bascom'a funkcji/procedur zmiennych czy...
Przeszukałem forum przed napisaniem niestety nie znalazłem nic ciekawego :) trochę to dziwne jest, że jest w BASCOM funkcja nadawania w RC6 a nie ma funkcji odbioru...
...Co takiego robi ta funkcja czego sie nie da zrobic w bascomie? A gdzie ja napisałem , że się nie da :?: Aby tę funkcję zaimplementować w Bascomie , trzeba znać ciało tej funkcji , a postodawca jej nie "dostarczył" :( Piotrek
To może koledzy mają jakiś inny sposób na zamianę liczby z postaci zmiennoprzecinkowej w całkowitą? No to w końcu chcesz mieć liczbę całkowitą w zmiennej zmiennoprzecinkowej czy liczbę całkowitą w zmiennej całkowitej? Jak to drugie, no to Round: Dim Co2_w As Single Dim Co2_int As Long ... Co2_int = Round(co2_w) Niezgodnie z Helpem BASCOMa,...
Witam, może nie całkiem na temat, ale próbowałaś napisać to w C, albo w Arduino? W Arduino wychodzi jakieś 10 bajtów RAM na całość plus kilka bajtów stosu. Jeśli masz jeszcze dużo tych attiny13 i planujesz jeszcze na nich budować, to myślę, że warto spróbować w C/C++. Niezależnie od języka sterowanie z punktu widzenia serwa w opcji 2 i 3 będzie takie...
No i Bascom - aż mi się łezka w oku zakręciła Wiele było dyskusji na ten temat na forum i nie tylko , ale ja uważam, że BASCOM jest dla ludzi. Do C podchodziłem kilka razy ale nie mogłem sie przemóc. Niby jest bardziej efektywny ale jak to mówią "pieniądze to nie wszystko". :)
Nie ma tu nic z C. Napisałem to kiedyś "z palca" :D Ciebie najbardziej powinno zainteresować "Adcmax3 = Adcr3(3)" bo to jest przepisanie aktualnie najwyższej wartości. Rejestr(43) i to obok to funkcja która liczy wartość skuteczną napięcia. Może niepotrzebnie tam zostawiłem bo to jest z urządzenia które jest Modbus Slave`em. Ten wpis !SBI ADCSRA , 6...
A z jaką dokładnoścą możemy się spodziewać wyniku operacji (ile miejsc po przecinku)??? Dodano po 5 Ile pamięci "pożre" nam funkcja trygonometryczna (sin)???
To jest tak prosta funkcja że nie ma nawet definicji w bibliotece mcs.lib Wykorzystuje polecenia asemblera INC i DEC więc jeśli byś się przy tym upierał to chyba tylko jakaś pętla.
Ta funkcja sama wykrywa zawieszenie? Z helpa widzę, że jakieś małe czasy można tylko wybrać i jest dodana np w funkcjach if a ja nie niem gdzie dokładnie się zawiesza jak przegrzewa zawartość - chyba, że źle rozumiem jej działanie. Będę teraz stopniowo dodawał kod programu i może odnajdę przyczynę problemów z kodem. Pozdrawiam
Doszedłem, że funkcja Getrtctime() resetuje mi układ. Wcześniej działała. Jaki może mieć związek z deklaracją timera?
witam jak w temacie prosta funkcja z jedną zmienną wywala błąd w postaci : error 61 : line 12 Label not found[_LPMBYTE ], in file..... a program poniżej hmmm może o czymś zapomniałem ? line 12 to wskazuje na ostatnia linię programu $regfile = "m48def.dat" $Crystal=4000000 $hwstack=40 $swstack=16 $framesize=32 Dim A As Double A = 0.000101299243148 Pozdrawiam...
Witam! Chciałbym zrobić urządzenie, które będzie podłączone do linii telefonicznej, i którego zadaniem będzie rozpoznawanie kodów DTMF nasłuchiwanych na linii. Chciałbym, aby urządzenie oparte było na mikrokontrolerze AVR i środowisku BASCOM AVR. Bascom udostępnia gotową funkcję DTMFOUT. DTMFIN nie znalazłem. A może taka funkcja jednak istnieje?
Witam W BASCOM jest taka funkcja $sim. Wklep swój program i krok po kroku możesz przeanalizować. Jest też wyświetlacz, na którym zobaczysz efekt swoich poczynań. powodzenia
Witam oto mój kawałek kodu $crystal = 8000000 Dim A As Byte Dim B As Byte Dim C As Byte Dim D As Byte Dim E As Byte B = 3 C = 2 D = 5 E = 10 Config Portc = &B10001111 Portc = &B01111111 Disable Interrupts If Pinc.6 = 0 Then Gosub Ppp If Pinc.6 = 1 Then Gosub Tttt Ppp: Do Portc.0 = 0 For A = 1 To B Wait 1 Next Portc.0 = 1 For A = 1 To C Wait 1 Next Loop...
Program poprawiłem, ale dalej jest problem z drugim timerem tzn. działa tylko z TIMER0 , działa klawiatura, funkcja rozpędzania wirnika. włączenie drugie timera wiesza program. Zamieszczony program (tylko z TIMER0) działa fizycznie. [syntax=vbnet] $regfile = "m2560def.dat" $crystal = 16000000 '$sim '***************************************... Config...
Czy to złe rozwiązanie? Złe. Funkcja w tym przypadku jest czytelniejsza, ponadto nie musisz robić przypisań [syntax=vb] Sekundy = Sekundy 'przepisanie wartości sekund Zapis_minut = Minuty 'przepisanie wartości minut Zapis_godzin = Godziny 'przepisanie wartości godzin [/syntax] ani deklarować zmiennych [syntax=vb] Local Zapis_godzin As Byte 'zmienna...
Witam Procek atmega 16, przetwornik w trybie wej. różnicowych. Jak wiadomo wynik otrzymujemy w kodzie U2, jak to wyświetlic normalnie na LCD? tzn. te liczbe w kodzie U2 chce zamienić na bin, ilość bitów ta sama ale żeby to nie był kod U2, polaryzacja napięcia mnie też nie interesuje, może być wartość bezwzględna. Jest w bascom jakaś funkcja czy trzeba...
Wyczytałem, że w BASCOM jest funkcja Rnd(), jednak okazuje się, że jest to pseudo losowanie, ponieważ, po każdym jakimkolwiek zresetowaniu procka, liczby są losowane tak samo. Jest na to jakiś sposób? Przeniosłem z: Układy elektroniczne DIY pomysły, problemy /Faces/ Post był raportowany. Błąd poprawiłem.
Mam pytanie panowie próbuję od pewnego czasu napisać pewien kod w Bascomie i chciałbym żeby program losowo wybierał mi liczby spełnia to funkcja rnd ale trochę mi to nie pasuje bo jak sie system zresetuję to ona zaczyna losować od tych samych liczb powtarza je można to zrobić żeby ich nie powtarzała jakaś inna komenda Proszę o podpowiedź Z góry dziękuje
Zgadza się funkcja CRC8 jest ale w BASCOM AVR. Ja pisałem w BASCOM-8051 i tam nie ma tej funkcji.
ASC() help od takich rzeczy jest No niestety to nie do tego. Zamiana stringa w bascomie na liczbę to funkcja VAL()
Jak połaczyć 3 zmienne 8 bitowe które sa odczytywane z 3 rejestrów przetwornika i stanowia w sumie(24 bitowa) wartość tego przetwornika. chodzi o to zeby te 3 zmienne połaczyć i przetworzyć na postać dziesiętna aby można było je wyswietlić na wyświetlaczu. w bascom jest funkcja która łaczy dwie zmienne typu bajt ale zeby łaczyła 3 zmienne to nie znalazłem....
Funkcja NOT , zmienia stan pinu na przeciwny po każdym wywołaniu jej
Do obsługi przycisków w Bascom-ie istnieje funkcja "Debounce". Config Debounce = 45 ... Debounce Pind.1 , 0 , Ustawienia , Sub ... Ustawienia: Debounce Pind.1 , 0 , Ustawienia2 , Sub ... Return Ustawienia2: ... Return Tak "brzmi" lepiej :wink: Pozdrawiam Piotrek Sz.
jest jakis sposob zeby ta funkcja nie wstrzymywala programu w bascom ?
Po wykonaniu przerwania powróci do wcześniej wykonywanego zadania również jak będzie to podprogram.
Witam! Chciałem sobie skompilować plik bas z necika i co chwila mi błędy wyskakują że funkcja RESET I SET nie może współpracować z tym parametrem czy coś takiego ... jak to zrobić aby było dobrze? przetestowałem 2 kompilatory i nic, a plik był pisany przez specjalistów z edw więc powinno wszystko śmigać :| Jestem początkującym programistą (to jest mój...
Nie wiem na czym polega problem kolegi. Poza tym o porcie RS232 mówimy tylko po stronie komputera, koledze chodzi jak mniemam o to, że z komputera są wysyłane dane do procesora i ten powinien je odbierać. Zatem jak kolega napisał po pierwsze należy użyć bufora (dostępny z poziomu BASCOM - poszukaj w helpie) a potem w danym miejscu programu sprawdzać...
potrzebuje sklecic funkcje typu on_event a raczej on_portx.y_active aby na przyklad po przycisnieciu przycisku (ustawienia stanu wysokiego na ktoryms z wejsc) wykonana zostala konkretna funkcja
Czy ktoś podpowie - jak w Bascomie zrobić 8 znakowy string z zmienną DWORD w formacie hexadecymalnym ? Nie można tego zrobić zamieniając zmienną na string za pomocą HEX, ponieważ ta funkcja działa tylko do typu WORD. Jakieś zaćmienie umysłowe mam :)
Kolega to potrzebuje do sterowania syntezą Saa1057. Instrukcja Dat = Wpis.x w pętli wpisuje do zmiennej Dat kolejne bity zmiennej dwubajtowej o nazwie Wpis Czyli jeśli Dat = Wpis.0 to w zmiennej Dat powinien znaleźć się najmłodszy bit zmiennej Wpis. Do syntezy potrzebna jest funkcja podająca na końcówkę portu kolejne bity dwubajtowej zmiennej Wpis począwszy...
Funkcja pulsein wstrzymuje działanie programu na te 655ms? (lub krócej)
Tego się tak nie robi. Bascom ma wbudowane funkcje do obliczania różnych wartości z dat i w drugą stronę. Całkowity czas z datą można zapisać w zmiennej typu Long. Tak samo deklarując po kolei Sec, Min, Hour, Day, Month i Year jako Byte można potem uzyskiwać różne potrzebne dane tam i z powrotem. W swoich programach wstawiam funkcję bo czas Lato/Zima...
a napewno atmega dziala na kwarcu 8 Mhz ? tzn czy dobrze podlaczony, i przede wszystkim czy fusebity dobrze ustawione.. bo jezeli nie to rzeczywiscie moze nie dzialac,bo bascom funkcje opozniajace przeliczy wedlug tych 8 mhz zadeklarowanych
Jeśli kolega zna BASCOM to czego kolega nie rozumie po komentarzach? np. funkcja adc_init to jest takie config adc :) Jak? A to akurat po komentarzach widać. adc_select_input kolega nie potrzebuje, gdyż ten parametr jest podawany w GetADC(), timer_init to takie config timer... to nic skomplikowanego, niech sobie to kolega przeanalizuje uważnie, przepisanie...
To wklejanie C do BASCOMa to miałem na myśli że kod w C można przerobić żeby BASCOM go skompilował. A w druga stronę to sie nie da bo BASCOM ma pewne funkcje zaszyte w sobie. No ta funkcja sendrc5. To jest element BASCOMa i nie ma jawnego kodu w BASCOMie do tego żeby to przerobić na C. Tak normalnie o tak jak mirekk36 napisał nie ma żadnych szans żeby...
Skoro coś się powtarza to zapisz to jako procedurę a potem ją tylko wywołuj. Poczytaj DECLARE SUB i DECLARE FUNCTION Funkcja przy okazji jeszcze zwraca wynik.
Czy w bascomie jest funkcja zwracająca liczbe losową z dowolnego przedziału?
Nie chodziło mi o przerwanie od Timera tylko o coś takiego że odpalasz konwersję/pomiar oraz przerwanie kiedy będzie już wynik czyli procesor nie czeka a może w tym czasie zrobić coś innego. Jednak ta funkcja wykonuje się w 107 taktów zegara w 0.01ms więc myślę, że nie masz co kombinować. Lepiej byś napisał co to za procesor i jakie ma taktowanie bo...
Funkcja SPLIT działa ale w tym przypadku nie za bardzo zdaje egzamin , program oparty został na funkcjach MID i VAL nie mojego autorstwa . Ma małe ograniczenia ale jest sprawniejszy i mniej zajmuje miejsca . Za pomoc dziękuje i pozdrawiam
Witam chcę zrobic wybór opcji w menu przez przewijanie paska z literami w formie inwersji tzn: jeśli literki są czarne to wybrana opcja ma być białe litery na czarnym tle. Czy istnieje jakaś funkcja pozwalająca zrobić w bascom inwesję pojedyńczego znaku? Pozdr. lolek
funkcja funkcja bascom bascom funkcja przerwaniu funkcja funkcji bascom
wydajność excel układ odejmujący nissan micra diesel
mikrokomputer cobra1 amica ecotronic
Kod usterki EDC 7EB22 1F w Iveco - diagnostyka i naprawa Logowanie usługi profilów użytkowników nie powiodło się - Windows 10/11