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.
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"...
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...
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.
Wystarczy sprawdzić czy funkcja Getatkbd() zwraca 0 wtedy żaden klawisz nie jest naciśnięty. Warunek można więc skonstruować tak, że gdy zmienna do której zwracana jest wartość funkcji Getatkbd() jest większa od zera to robimy obsługę klawiatury, a jeśli nie program normalnie kręci się w pętli. Wciąż nie rozumiem czemu tak uparcie chcesz do tego wykorzystywać...
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...
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...
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...
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...
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...
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...
Nie pomogę, ale się pochwalę Chwalipięta :D Szkoda, że nie pomożesz w C bo widzę BASCOM (mój ulubiony nadal). Ale funkcji furtki u Ciebie nie widzę:) Chcę, naprawdę chcę się tego p.......o C nauczyć, ale jak na razie to porażka. Nic poważniejszego nie działa. Prosty przykład, zapis i odczyt EEPROM: Funkcje read i write pobrałem z tego: https://www.elektroda.pl/rtvforum/topic2...
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
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
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...
W deklaracji funkcji tylko raz deklarujesz "Byval"
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...
...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
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...
Doszedłem, że funkcja Getrtctime() resetuje mi układ. Wcześniej działała. Jaki może mieć związek z deklaracją timera?
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...
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.
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...
Witam! Zgadza się, funkcja Rnd() powoduje generowanie liczb pseudolosowych według pewnego określonego algorytmu. Aby uzyskać liczby "bardziej" losowe, oraz inną sekwencję liczb po każdym restarcie układu można zmienić podstawę generatora funkcji pseudolosowej. Dim ___rseed As Word ___rseed = Wartosc Jako Wartosc można podstawić wyjście przetwornika...
Witam ! Oto fragment pliku pomocy Bascom AVR w języku polskim. Przeznaczenie: Konfiguruje działanie funkcji GETATKBD() oraz określa końcówki portów do których podłączono klawiaturę komputera PC AT. Składnia: CONFIG KEYBOARD = PINx.y , DATA = PINx.y , KEYDATA = tabela_kodów gdzie: KEYBOARDKońcówka portu do której dołączony będzie sygnał CLOCK klawiatury....
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...
Kiedy w końcu zrozumiecie, że nie każdy chce zostać programistą i ludzie czasem programują sobie po to by coś zrobić i mieć z tego satysfakcje. Wiem jak oprogramować ADC i to nie tylko w Bascom, ale zauważ że piszemy tu o Bascom. Języku który upraszcza wiele rzeczy dając Ci określoną ilość prostych w użyciu funkcji. Jedną z takich funkcji jest Getadc()...
Witam Poszukuję osoby, która napisała by program najlepiej w Bascom lub ewentulanie C, który posiadałby następujące funkcje: - funkcja nauki funkcji pilotów podczerwieni. np koło 15 komend - funkcja uruchomienia tych komend za pomocą komputera w trybie tekstowym przez rs232 lub po zwarciu przycisków - funkcja obsługi 4 - 6 przekaźników również przez...
Trochę mnie nie było. Dziś wreszcie mogłem ponownie usiąść do projektu i dodać kolejną funkcję tj. wysyłanie danych dopiero przy wyjściu z funkcji 5 sekund. Udało mi się to ale na obecną chwilę działa mi to dobrze z wstrętnym "Wait 1" Próbowałem zrobić to na wzór zmiennej Odlicz i zrobiłem Odlicz2 ale nie działa mi to tak jakbym chciał bo te ustawienia...
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...
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
Patrz co robi: Ta funkcja jest napisana jako ogólna wykorzystująca tryb ADC Noise Reduction. W dodatku jest napisana dla konkretnego przypadku, kodu który zamiast odczytywać ADC w funkcji przerwania ADC, odczytuje go w ciele funkcji. W takim przypadku należy dodać opóźnienie (które jest pod koniec tej funkcji) bo inne przerwanie mogło wybudzić mikrokontroler,...
mi wygląda na to że brakuje ci w bibliotece user32.dll funkcji MsgWaitForMultipleObjectsEx możliwe że ta funkcja została dodana do tej biblioteki później. sugerowałbym zmianę systemu operacyjnego na nowszy (myślę że win98 by ci na tym sprzęcie poszło)
No coz tak to jest jak sie nie dokladnie przejrzy helpa... Przeznaczenie: Rozpoczyna treść funkcji użytkownika. Składnia: FUNCTION nazwa [ ( parametr AS typ [, parametr AS typ] ) ] AS typ_rezultatu instrukcje funkcji END FUNCTION gdzie: nazwanazwa funkcji, parametrnazwa parametru funkcji, typtyp przekazywanego parametru, typ_rezultatutyp danych zwracanych...
Witam Mam problem programuje w Bascom avr procka atmega8 zrobiłem sobie transmisje RS i mam problem ogólnie wszystko pięknie ładnie działa tylko że w momencie jak wystąpi przerwanie po przez funkcje print zostaje wysłany znak ze zmiennej po czym przechodzi do funkcji waitkey() i oczekuje na odebranie znaku no i właśnie ... oczekuje ale nic nie widzi...
Ciesze się, że się udało. Teraz możesz postawić przed sobą ambitniejsze zadanie i spróbować wykorzystać timery zamiast funkcji delay. Może w tym projekcie nie zrobi to różnicy, ale będzie okazja do nauki wykorzystania timerów, co będzie jak znalazł, gdy w przyszłości przyjdzie pisać funkcje nieblokujące. Funkcja delay zatrzymuje całkowicie na pewien...
potrzebuje wysłać zmianną najlepiej większą niż bit. nie wiem jakiei użyć funkcji w bascomie. nie chodzi o sam nadajnik. z reguły wysyła 1 lub 0. I czy jest funkcja ułatwiająca wysyłanie całych bajtów lub większych zmiennych.
Jest napisane parametry funkcji (wynik tez jest parametrem) - ja zmienilem na bajt i kompiluje sie bez bledow kurcze jeszcze zapomnialem dodac ,ze funkcja musi byc przypisana do zmiennej F = Wyswietl(agodziny , 0)
Nie umiem sobie przypomnieć teraz czy jest jakaś gotowa instrukcja, ale mogę Ci pokazać jak można sobie radzić pisząc własne funkcje. To nieskomplikowane. Budując funkcję w nawiasach określasz co będzie danymi wejściowymi a poza nawiasem co funkcja ma zwrócić. Czyli napisałem, że funkcja dostaje wartość bajtu a zwrócić powinna też bajt. Change() kiedy...
Dziwne jest to że w starszej wersji ten kod działa, a raczej nie powinien :). W helpie pisze że funkcja GetRC5 wykorzystuje timer0 i przerwanie od tego timera. Umieszczenie tej funkcji w przerwaniu INT0 wydaje się być błędne. Przerwanie od timera się nie wykona, dopóki nie zakończy się obsługa przerwanie INT0.
Wydawalo mi sie ze zadaje konkretne pytanie o to dlaczego kompiler nie rozpoznaje mi polecenia i co zrobic zeby je rozpoznal. Lub jakiego innego uzyc. Wydalo mi sie niepotrzebne umieszczanie kodu ktory jest przekopiowany z helpa. Kurcze nie znam sie na tym na codzien zajmuje sie czym innym jak pisze cos glupiego to prosze o wyrozumialosc. A co do "...
Witam Ale ja niechcę rezygnować z funkcji pinc6,ona musi zostać.Chcę tylko za pomocą pinu 5 ustawiać wartości B C D E. Potrzebuję żeby jak nacisne pin5 do sekundy zgłosiło sie mi menu ustawiania wartości czyli funkcja bbb.A fiunkcja xxx ma działac od właczenia do zasilania od razu. To co kolega podał raczej niebedzie działac prawidłowo. Proszę o gg...
r"]Czyli ma kasować 1s pod koniec wykonywanej procedury w petli. Eh, Junior! Coś okropnie topornie ci idzie zrozumiec instrukcje warunkowe, a także configuracje i stosowanie timerów... Wydaje mi się że dośc mgliście wygląda ukończenie projetu przed końcem tego roku. Nagminnym błędem adeptów w programowaniu jest stosowanie skrótów bez znajomości ich...
Dziękuję za udział w dyskusji - przetestuje obie rady. Między czasie wpadłem jeszcze na trzecie rozwiązanie i stworzenie pliku wsadowego bat albo aplikacji która przy użyciu kompilatora bascom o nazwie bascomp.exe - pierwsze zmieniała w pliku zmienne po czym zapisała i wywołała kompilator. Jak Panowie oceniacie to zagadnienie - może jakieś dalsze rozwinięcie,...
ta komenda flagtens to jest poprostu moja flaga cały program którego częś ci podałem jest durzo większy i ciągle w trakcie twożenia. Flagę tą ustawiam sobie żeby w innej części programu nie resetować już 1wira i nie sprawdzać go ponownie poprzez err. w części programu wywołującej alarmy na wyświetlacz sprawdzam sobie właśnie tą flagę. natomiast funkcja...
Zmienną J deklaruje w następujący sposób: unsigned char J; Widzę , że pomyliłeś C z Bascomem :D Bascom automatycznie konwertuje sobie typy danych(przez co jest pamięciożerny) , a w C musi zrobić to programista , czyli Ty. Wiesz , że J to zmienna umiejscowiona w pamięci RAM(data) , więc z funkcji lcd_print(0, 1,"Jakis tekst"); nie możesz korzystać.Mało...
Ok rozumiem . Cały temat staram sie zrozumiec poprawnie i zmierza do zbudowania komputera do opryskiwacza na podbudowie "BRAWO180 lub 300S" wiec zależało mi na poprawnym zliczaniu przepływomierza i pozostało mi obliczyć prędkość . Muszę obiczyć predkość z dokladnościa do 0,1 km/h do maksymalnej predkości około 35km ,niewiem czy liczyć impulsy czy mierzyć...
Witam, Na wstępie chciałbym powiedzieć, że zanim zdecydowałem się napisać ten post, używałem szukajki na tym forum i wujka google ale bez pozytywnych rezultatów (przeczytałem bardzo wiele tematów i skopiowałem wiele kodów). Przejrzałem także plik Help w Bascom. Problem polega na tym, że funkcja getrc5 zwraca zawsze wartości adresu = 255 oraz komendy...
ja ten projekt testuje w Proteusie...tzn mam jego namacalna wersje, ale narysowałem wszystko w proteusie i póki co tam będę ładował hex'a i patrzył co się dzieje :) Ale ok - skoro uważasz, że to tak dużo to może udało by się wywalić tylko zegarek i wyłączyć całkowicie funkcje wygaszania wyswietlaczy po uplywie jakiegos czasu? To co pisze teraz i wcześniej...
czy była by możliwość zaprezentowania tutaj kodu sieci neuronowej - jej nauki i mechanizmu wstecznej propagacji błędu w Bascomie? Algorytmu uczenia sieci nie implementowałem w Bascomie. Model sieci powstał w całości na komputerze (PC) i na nim też był uczony. Proces uczenia sieci dla tak dużego zbioru uczącego trwałby zbyt długo na mikrokontrolerze....
A ja nie zmuszam nikogo do pisania w C. Niech kazdy pisze w ty co mu bardziej lezy. Swoja droga pierwsza obsluge LCD napialem wlasnie w asm i jak cos nie dziala to laduje ten programik do LCD. Programik wyswietla jakies znaki testowe. Przerobilem go poznoiej na C, bo czulem sie jak w klatce w asm. W C daje zwykle sprintf, pozniej wrzucam zmienna do...
Witam Co to za problem wpisać do Single wartość z palca, kazać mu przepisać do Long i wyświetlić? Widać jakiś jest. Oto mój cały program: [syntax=vbnet] $regfile = "m8def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 16 $framesize = 60 Declare Sub Led_dec(byval Liczba As Long , Byval Kropka As Byte ) Config Pinb.0 = Input Set Portc.0 Config Pinb.1...
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...
beta to kąt 0 ReX Jeszcze jedna rzecz mi nie pasuje. Beta osiagnie maks wartosc 465 , po podzieleniu przez 32 = 15 ,czyli maks wartosc jaka mozemy wyciaganc z tablicy sinus: Tmp_c = sinus(15 + 8) * Dane tojuz chyba wyjaśniłem ale moge napisac jeszzce raz beta AND 31 daje jako wynik reszte z dzielenia przez 32 czyli liczby z zakresu od 0 do 31. powtażaja...
Witam Tak jak w temacie mam napisałem program w bascomie który ma za zadanie zapalać cztery diody led po odebraniu po RS232 cyfr od 1-4 i chodzi to bez problemu ,ale teraz gdy uczę się języka C postanowiłem ten sam program przenieść na C i już nie jest tak dobrze.Objaw jest taki gdy wyśle 1-Zapalają się i gasną diody "STROBO I KULA" gdy 2-Tak sama 3-Też...
Dobry wieczór (dzień dobry? :D ) wszystkim. Ostatnio postanowiłem się wziąć za obsługę wyświetlacza jak z tematu. Pogrzebałem tu i tam i zmontowałem taki układ: http://obrazki.elektroda.pl/8094079400_1... Jak widać, nieco namieszałem jeśli chodzi o konwersję napięć z 5V do 3.3V oraz podwyższenie napięcia do podświetlenia wyświetlacza...
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
Najprościej skorzystać z gotowych funkcji. W Bascomie 51 jest funkcja MAX. Działa ona na zmiennych typu Byte. W Bascomie AVR funkcja ta działa na zmiennych Word. Więcej info w helpie do Bascom-a. Jeśli musi to być koniecznie Integer, można zastosować jakąś konwersję typu Word na Integer lub napisanie własnej funkcji, co nie powinno być trudne.
Czytałem wprawdzie jakiegoś i tak fajnego PDF'ka autorstwa kolegi Zbigniewa Gibka , i jest tam trochę na te tematy. Jednak tam opisane jest tworzenie własnych procedur które hmmm trzeba deklarować jeszcze samemu w programie głównym. To troszkę ciężko tak działać. A czy zastanawiałeś się w jaki sposób przekazać kompilatorowi czy ma na stos wrzucić jakieś...
Funkcja Wait nie blokuje Watchdog -a, zrób to co zaproponowałeś - Stop Watchdog - Wait - Start Watchdog Pozdrawiam
Tu taj masz trochę informacji o tej funkcji z Bascom AVR: http://www.forbot.pl/forum/topics49/funk... Zobacz też HELP'a :)
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...
W zasadzie nie znam Bascom-a, ale podejrzanie wygląda mi to, że argument Segment tej funkcji nie jest zadeklarowany jako tablica, a jednak odwołujesz się do niego jako tablicy.
Dodaj byval na początku przy deklaracji funkcji . Czyli Declare .......(byval kanal As byte) Jak nie rozumiesz działania funkcji - to możesz też przerobić to na podprogram. PS - kolega wyżej mnie uprzedził.
On będzie się zwiększał o 1 w tym przypadku, bo wartość przesunięcia przekazywana do funkcji też się tak zwiększa. Jeśli jednak np. zacząłbyś przesuwać w prawo to funkcja nie działałaby prawidłowo, poza tym musiałbyś tą wartość zapamiętać poza funkcją dla danego napisu (tak, jak teraz przesuniecie ). Dlatego trzeba to liczyć.
Żeby układ sam się resetował przy włączeniu zasilania , to opornik dajesz do plusa i kondensator z pinu reset do masy.
To nie wina procesora ale kompilatora. Procesor nie ma w sobie funkcji getrc5, to jest funkcja bascom, szukaj winy w kompilatorze.
Witam.Czy w pakiecie Bascom AVR zaimplementowane są procedury umozliwiające korzystnie z funkcji trygonometrycznych (funkcja sinus)???
Użyj funkcji FORMAT to powinno ci załatwić sprawę. Poczytaj o tej funkcji w helpie. Pzdr. A.
Przeznaczenie: Formatuje tekst zawierający liczbę według podanego wzorca. Składnia: rezultat = FORMAT( zmienna , "maska" ) gdzie: rezultatzmienna tekstowa, w której umieszczony zostanie sformatowany tekst, zmiennazmienna tekstowa zawierająca formatowaną liczbę , maskawzorzec formatowania. Przeznaczenie: Zwraca tekstową reprezentacje podanej liczby....
kuuczoo :przecież MES Mariusz dobrze wie jak to robić. Przecież napisał. A Ty mu jedziesz że się pyta o podstawy. On po prostu chce wiedzieć czy w BASCOMie nie ma już gotowej funkcji do tego. Gotowa funkcja jest (o ile można to nazwać funkcją): Dim A As Bit Dim C As Byte B = 255 A = B.3
Nie masz za dużo w funkcji obsługi przerwania. Dużo Waitms i jeszcze obsługa LCD. Może przerwania tak szybko nadchodzą, że nie zdąża czasu na wyjście z niego. Funkcja przerwania powinna być krótka
Nigdzie nie jest pokazane jak są zdefiniowane stringi Ss i zmienne I. Może stringi masz za krótkie. W raporcie po kompilacji, niema żadnych warningów dotyczących stringów?
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).
Ksiązka kurs pisania w BASCOM AVR to np. "Programowanie mikrokontrolerów AVR w jezyku BASCOM" Marcin Wiązania BTC. Ksiązka rozpoczyna się od opisu większości funkcji komend BASCOM potem trochę o procku AVR a następnie proste programy obrazujące możliwości AVR i obsługę róznych interfejsów... jest też kilka programów obsługi wyświetlaczy czujników przetworników...
Moze da bascom'owa funkcja uzywa timera
Nie wiem konkretnie o co Ci chodzi, ale pewnie rozwiązaniem było by zastosowanie odbioru w przerwaniu co w bascomie jest niezwykle łatwe za pomocą BYTEMATCH. Mam wersje 1.11.9.0 i wspomnianego BYTEMATCH nie ma. Od ktorej wersji bascoma jest w/w funkcja? Zawsze byłem za tym, by najmniej korzystac z gotowych funkcji, a korzystac bezposrednio z rejestrów...
Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
...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...
W procedurze/podprogramie obsługi przycisku wciśniętego zwiększaj zmienną o 1 a w programie głównym, czy też tam gdzie to jest potrzebne, wykonuj program w zależności od tej zmiennej, np. wykorzystując SELECT CASE.
Po wykonaniu przerwania powróci do wcześniej wykonywanego zadania również jak będzie to podprogram.
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.
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...
pamięć ram i pamięć programu nie znajdują się w tej samej przestrzeni. LPM (load program memory) odczytuje z pamięci programu, LD (load data) wczytuje z przestrzeni pamięci. Zmień LPM na LD r16, Z (pomijając mov r16, r0) tak jak napisałem w drugim poście tematu.
Widzę że nikt się nie pali do pomocy, to może ja coś pomogę. Mam dość szybki kod do SD. Jeżeli SD też może być to pomogę. Mogę też rzucić procedurami zapisu i odczytu bloków danych. One w SD i MMC są identyczne (chyba). To jest taka TurboOptymalizacja wysyłania/odbierania po SPI. Odczyt chyba jest blok 512B/1ms.
Okazuje się, że w Bascomie 8051 nie można zdefiniować własnej funkcji, ta możliwość istnieje dopiero w Bascomie AVR - ciekawostka .. http://avrhelp.mcselec.com/changes_compa... Spróbuj czegos takiego może zadziała ... Declare Sub Klawiatura Dim przycisk As Byte Dim kol1 as Byte Dim kol2 as Byte Przycisk=0 Do Call Klawiatura ' Tu...
To bez znaczenia bo i tak wywala sie nawet na 2^2 :) Nie czytasz co piszą inni - stos :D Wklej na początku kodu ... $hwstack = 64 $swstack = 64 $framesize = 64 ... Piotrek
A mi się udało znaleźć. I to na stronie producenta bascoma. Wpisałem w google "bascom getkbd" :) https://avrhelp.mcselec.com/index.html?g... [syntax=vbnet]'-------------------------... 'name : getkbd.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose : demo : GETKBD 'micro : Mega48...
Zobacz (krótki) film ile zajęło mi znalezienie Twojego błędu :D Nie wiem czy używasz, ale ja mam włączone numerowanie linii kodu bo to ułatwia zrozumienie komunikatów i warning`ów. Mała literówka :D Co ciekawe po lewej na czerwono warning, że deklaracja się nie zgadza i po kliknięciu za chwilę wszystko na zielono :D To po lewej się włącza - "Code Explorer"...
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...
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,...
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:...
Wydaje mi się, że kompilator nie ma problemu z funkcją "mod" (dlatego też dwie ostatnie cyfry się zgadzają), tylko przy dzieleniu zmiennej typu word, dającej zmienną typu byte jako wynik.
Nie wgłebiajac sie w kod moze zamiast LSR daj LSL i po sprawie. Nie ma '8' bitu chyba.
Te procesory nie mają sprzętowego SPI i jeśli już to tylko programowo można zrealizować.
$regfile = "attiny2313.dat" $crystal = 4000000 Config Pind.2 = Input Config Portd.0 = Output Config Portd.1 = Output Config Portd.3 = Output Set Portd.2 Przycisk Alias Pind.2 Dim Sekwencja As Byte Declare Sub Pierwsza Declare Sub Druga Declare Sub Trzecia Enable Interrupts Enable Int0 On Int0 Przycisk_przerwanie Do Loop End Przycisk_przerwanie:...
A o funkcjach logicznych słyszałeś? wystarczy and z wartością 0x0F.
Powiem tak: Nie znam się na BASCOMie ale widzę, że END kończy program a dokładnie pustą pętlę w której powinien znajdować się odczyt z przetwornika i wyświetlanie, używając napisanych przez Ciebie funkcji. Przykładowo siała baba mak.../deklaracja zmiennych Do /pętla główna programu wykorzystująca twoje funkcje ODCZYT WYSWIETL Loop END ODCZYT: bla bla...
Przeoczyłem to. Faktycznie trzeba dac pętlę nieskończoną. #include<avr/io.h> int dane; #define OSC 4 // definicja funkcji opóźniającej void waitms(unsigned char x) { unsigned char a, b; // zmnienne licznikowe for( ; x > 0; --x) // ta pętla zostanie wykonana x-razy for(b = 10; b > 0; --b) // a ta 10 razy for(a...
funkcja funkcja bascom bascom funkcja generator funkcji bascom
telefon samsung wyświetlacz wymiana toner przebieg samochodu
używany telefon telewizor toshiba czarny ekran
Icom IC-725 – skutki przepięcia zasilania, diagnostyka i naprawa Czujnik napinacza pasa kierowcy Nissan Qashqai – lokalizacja w słupku B, modele J10 J11 J12