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).
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...
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:...
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ś.
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
...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...
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...
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...
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.
Wróci do funkcji2, ponieważ przerwanie zawiesza dotychczasowe działania, a po zakończeniu jego obsługi wraca do wykonywania przerwanych operacji.
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 chcesz użyć wyłącznie Incr więc liczenia co 2 nie zrobiśz inaczej niż Incr x Incr x :)
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.
A no właśnie. Zastosuj po prostu programowego UARTa. BASCOM ma funkcje do tego. Ten sam pin będzie mógł raz nadawać a raz odbierać.
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,...
No cóż. Wprawa i rutyna (niestety). Zapraszam do nauki. Z uC można 1000000 razy więcej.
Witam, Mam pytanie, czy są takie 2 funkcje: 1. Taka która dzieli ciąg na podstawie jakiegoś znaku np. ciąg: 'aaass.gtyy.cccc555.ccd' i chodziło by mi o to, żeby jakaś funkcja podzieliła ten ciąg na podstawie '.' i zapisała do np. tablicy. Chodzi mi o samą ideę dzielenia ciągu. Efektem działania funkcji było by: aaass gtyy cccc555 ccd 2. Taka, która...
Żeby układ sam się resetował przy włączeniu zasilania , to opornik dajesz do plusa i kondensator z pinu reset do masy.
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.
' Funkcja musi być zadeklarowana przed jej pierwszym użyciem ' ponieważ kompilator musi wiedzieć jaki jest rozmiar danych ' przesyłanych do funkcji i jaki jest jej typ wyniku ' Funkcja musi mieć zdefiniowany typ wyniku, tu Integer Declare Function Test(byval Liczba As Integer , Tekst As String) As Integer ' określenie byval przed nazwą oznacza,...
Witam Mam taki kod: $regfile = "m328pdef.dat" $crystal = 14745600 $baud = 9600 ' predkość transmisji $hwstack = 128 ' rozmiar stosu sprzętowego $swstack = 128 ' rozmiar stosu programowego $framesize = 128 ' rozmiar ramki Do Locate 3 , 1 Lcd Ss1 ; Chr(0) ; " " Locate 3 , 10 Lcd Ss2 ; Chr(0) ; " " Locate 4...
Może jakieś przykłady zastosowania ?
Tu taj masz trochę informacji o tej funkcji z Bascom AVR: http://www.forbot.pl/forum/topics49/funk... Zobacz też HELP'a :)
Witam serdecznie, Napisałem już kilka programów i jakoś nie było większych problemów. Teraz chciałem podjąć walkę z 1wire, więc zmontowałem sobie na płytce stykowej układ i zacząłem eksperymenty. Niestety nic z tego nie wychodziło, ale w trakcie walki zauważyłem, że jakoś nie tak działa funkcja 'Wait'. Napisałem więc najprostrzy z możliwych programów...
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.
Witam Walczę z programem w Bascomie (coraz mniej mi się on podoba) listing poniżej. Docelowo będzie to zegar na lampach nixe. Projekt bazujący na mirley, ale zmianę ustawień chcę zrobić na impulsatorze. Dlaczego funkcja Zmiana_godziny i Zmiana_minuty nie zwraca mi wartości? Edytowałem post umieszczając w tytule znacznik
Funkcja działa na tym procku ale tylko z dołączonym rezonatorem kwarcowym. Na rezonatorze wewnetrznym powoduje zawieszanie się procka.
Witam, pracuję nad komunikacją pomiędzy uC a Pc za pośrednictwem Bluetooth. Jestem pewien, że komunikacja odbywa się poprawnie (prędkości, porty) natomiast mam kłopot ze zrozumieniem tego co się dzieje na obiekcie. Otóż, w zależności od tego czy w pętli programu wywołam funkcję PRINT zależy, czy moja komunikacja działa czy nie. Jeśli w programie ukryję...
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ł.
mov DPTR, .Tablica_instrukcji mov A,{instrukcja} jmp (at)A+DPTR Pomijając fakt, że nie mam pewności czy ten kawałek kodu jest poprawny to mam problem ze zbudowaniem tablicy adresów. Pomysł jest dobry, ale wykonanie złe ;), albo zrobisz pomnożysz A przez 2 albo 3 i pod adresem tablica instrukcji zrobisz serie skoków (bliski ma 2 bajty, daleki...
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...
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
Ad 2. magistrala 1wire pozwala na wysyłanie komendy do wszystkich podpiętych urządzeń z pominięciem adresowania - wtedy 1 komendą mamy zlecone dokonanie pomiaru przez wszystkie czujniki. Co do problemu - możesz wykorzystać arytmetykę stałopozycyjną i ręcznie dokonywać konwersji.
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"...
Nowsza, 2.0.7.8
Witam. Skoro nie masz źródeł to trzeba zrobić wszytko od podstaw. Ciężko będzie to zrobić bez licznika i motoru. Raczej trudna sprawa, chyba że trafisz na kogoś kto już coś takiego przerobił na swoje potrzeby.
Domyślam sie że to jest BASCOM. GetAdc(x) - funkcja wykonuje pomiar na nodze ADCx. Czyli dobrze myślisz. Pozdrawiam Yakuza Edit: Tylko pamiętaj że przetwornik musi pracować w trybie SINGLE.
wiesz, zdaje sie że Fix "odrzuca" część ułamkową a round zaokragla (matematycznie - w góre lub dół). to moze powodowac te błędy
No, zrobiłem "przekop" i nigdzie nie znalazłem. Ani w helpie by ZG, ani w helpie do wersji ... JEST. W samplach. '---------------------------------------... 'name : bin2bcd16.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose : Test program for BIN to BCD Calculations 'suited for demo :...
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.
Nie ma takiej możliwości w BASCOM-ie. Przynajmniej nie automatycznie. "Coś" musiałoby zmieniać twój kod, za każdym razem, gdy go kompilujesz. Jest możliwe rozwiązanie tego problemu, ale wymaga trochę zachodu, w początkowej fazie. Bascom posiada funkcję "INCLUDE", która pozwala na dołączenie dowolnego pliku BAS, zawierającego dowolny kod. Musisz (można...
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ś...
Nie musiałem liczyć, :) w Wikipedii znalazlem. Z sumą, potęgą i silnią nie ma problemu, więc chyba powinno wyjść. Tylko strasznie dużo kodu to zajmie. Jak już napiszesz to możesz podesłać tu źródło to może da się zoptymaliować.
Próbowałeś zmieniać word na stringi (funkcją STR() ) ?
Witam Koledzy możecie mi wytłumaczyć dlaczego bascomowa funkcja dotyczaca karty SD, Drivecheck daje zawsze w odpowiedzi 0 czyli brak błędów, nawet jeśli karta jest niepodłączona? I dlaczego taki zapis: If Gbfilesystem = 1 Then System = "FAT32" Else System = "FAT16" daje zawsze odpowiedź że system karty to FAT16 nawet jeśli jest to...
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....
W Bascom masz do tego dedykowane funkcje - poczytaj helpa - polecenia Config...
Hmmmm, liczba o 16 znakach to dość nieprecyzyjne określenie :] Jeżeli chodzi Ci o przechowanie 16 cyfr, każdą z osobna, to oczywiście zwykły łańcuch tekstowy, czyli STRING (chyba tak to w bascomie sie zwie). Ale na stringach nie da się wykonywać operacji matematycznych na stringach (no dobra, da się, ale trzeba wszystko samemu od zera pisać :] ), operacje...
Przekonwertować na dane liczbowe. Dodać i ponownie przekonwertować na dane znakowe. Funkcje: STR(), VAL().
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...
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...
$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:...
Przecież Ty w ogóle tu timerów nie używasz a polecenie waitms 60000 ZATRZYMUJE program na 60 sekund a przecież nie o to Ci chodzi... Poczytaj na forum oraz w helpie do bascoma jak używać timerów (timerów- nie opóźnień) i tego użyj, gdy będzie impuls to kasujesz rejestr licznikowy. Dodatkowo w przerwaniu od timera zwiększasz sobie jakąś zmienną, no co...
Pytanie: czy da się te aliasy zrobić w formie tablicy? Tak, żeby odwołanie do konkretnego wyjścia mogło mieć postać "Wyjscie(x)"? Co stoi na przeszkodzie (skoro piny nie są po kolei) aby nie tworzyć sobie sztucznych problemów i zamiast używać tablicy - użyć funkcji ?
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...
Witam,jestem świeżym użytkownikiem który zaczyna bawić się bascomem itp... Skoro tak, to wypada zapoznać się z funkcjami jakie oferuje Bascom, czyż nie :?: Sprawdź np. Instr(), Split(), ...
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.
Aby tę funkcję zaimplementować w Bascomie , trzeba znać ciało tej funkcji , a postodawca jej nie "dostarczył" :( Piotrek analizowalem caly kod programu i ta funkcja wystepuje tylko w tym jednym miejscu i spelnia funkcje zwiazana tylko z wyswietlaniem danych a mnie interesuje to w jaki sposob obliczane jest srednie spalanie ... nie oczekuje od was gotowego...
Przy zapisie do EEPROMU w Bascomie nie musisz wyłączać przerwań. Funkcja WRITEEEPROM robi to sama, ale READEEPROM już nie wyłącza przerwań :)
Te procesory nie mają sprzętowego SPI i jeśli już to tylko programowo można zrealizować.
Popełniłem coś takiego, nie wiem czy w 100% poprawnie ale działa :) [syntax=basic4gl]Zegar: If S5 = 0 Then Toggle Startstop End If If Startstop = 1 Then If Ileminut <> 0 Or Ilesekund <> 0 Then 'pokaz babelki Locate 2 , 8 Lcd Chr(5) Locate 1 , 9 Lcd " Pracuje "; Gosub Sprawdztemp If Ilesekund >= 0 Then Ilesekund = Ilesekund - 1 End If...
Najprawdopodbniej w tej zmiennej coś jest jeszcze na końcu. Mogą być znaki niewidoczne, np CR lub /i LF. Spróbuj wyświetlić długość tego stringa (w Bascomie chyba funkcja Len) i wtedy bedziesz wiedział czy aby tam jest tylko liczba. Możesz spróbować też konwertować tego stringa po jednej cyfrze, a więc robisz pętlę w której wycinasz fragment stringa...
Potrzebuję pomocy, jak zrealizować przechwytywanie zawartości licznika do rejestru CAPTURE1 wywoływanego zboczem opadającym FALLING. Chcę mierzyć czasu trwania zbocza, następnie obliczając go uzyskać ilość obrotów/min. Sygnał podaję na port ICP. Jestem początkującym w BASCOM, dlatego też prosiłbym o wskazówki już w kodzie, łatwiej mi się wtedy zrozumieć...
:D Choćby z jednego powodu, moim zdaniem pomiar rezystancji za pomocą ADC jest dokładniejszy od pomiaru dokonywanego w układzie RC. Rozumiałbym poza tym wykorzystanie RC w małych kostkach bez ADC (np. tiny2313), ale w mega8 masz 10-bit konwerter, a jak poznasz dosłownie 4 funkcje w BASCOM to przetwornik ADC masz w małym palcu.
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...
Tutaj masz linak do polskiego helpa od Bascoma. Tam jest opisane wszystko bardzo przystępnie. http://www.edw.com.pl/ftp/bascomavrhlppl...
a w jakim języku programujesz ? Bo np.: w Bascomie jest gotowa funkcja.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
hmmm... to moze chociaz dalo by sie zrobic w latwy sposob urzadzenie zapisujace wybrany numer i czas rozpoczecia / zakonczenia rozmowy ? bascom nie jest jedynym jezykiem jaki znam - z jezykow pod uc znam jeszcze dosyc dobrze C i podstawy asm'a, ale zwrocilem przy tym uwage na to, ze z tego co wyczytalem, bascom ma wbudowane funkcje do obslugi lini telefonicznej...
Do odczytu stanu portu służy rejestr PIN. Czyli masz źle zrealizowane warunki w funkcji przerwania.
Witam.Czy w pakiecie Bascom AVR zaimplementowane są procedury umozliwiające korzystnie z funkcji trygonometrycznych (funkcja sinus)???
Sam sobie odpowiedziałeś na pytanie. Jest jeszcze jedna możliwość ale jest nieco niebezpieczna i wymaga aktualnej wersji BASCOMa: funkcja MEMCOPY.
Witam, Mam pewien problem z napisaniem programu wykonujący wykres temperatury w czasie. Probowalem używać funkcji PSET, w pętli ale nie uzyskiwałem efektów. Czy ktoś może zrobił coś podobnego??
...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"...
Wiec tak: W ogóle wyrzuciłbym zmienna/flagę F. Nie jest potrzebna tutaj. W programie głównym zamiast sprawdzania F, sprawdzaj A, czyli warunek IF z przerwania przenieś do programu głównego, łącznie z zerowaniem A. W przerwaniu zwiększaj tylko A. Zamiast: If F = 1 Then Cls Locate 2 , 1 Lcd "przerwanie" Wait 1 Cls F = 0 Enable Int0 End If zrobilbym...
Poczytaj w pomocy o instrukcjach: DATA , RESTORE, READ... To się nie nadaje , ponieważ Restore potrzebuje etykiety , a Read to odczyt sekwencyjny i nie da sie wybrać konkretnego elementu tablicy , tylko trzeba odczytywać kolejno , począwszy od pierwszego elementu. Ale ... Bascom AVR posiada funkcje , za pomocą których można naśladować mechanizm wskaźników...
masy się łączą, odległość na razie to jakieś 30 cm ale docelowo ma być ok 30 m Drogi kolego omen_s ;) Szkoda Twojego cennego czasu na komunikację pomiędzy prockami magistralą 1wire , przy pomocy Bascom-owych funkcji 1wire , bo tak się po prostu nie da . Te funkcje pracują w trybie MASTER , a procek który ma odbierać dane powinien pracować w trybie...
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...
Moze da bascom'owa funkcja uzywa timera
A komendy toggle będą działały tak szybko, że zmiany będziesz wstanie zaobserwować jedynie oscyloskopem/analizatorem stanów logicznych/multimetrem z funkcją pomiaru częstotliwości.
Powinno pomóc polecenie locate, i wtedy wypisywanie czegoś na lcd, bez użycia funkcji kasowania wszystkiego na lcdku?
To nie wina procesora ale kompilatora. Procesor nie ma w sobie funkcji getrc5, to jest funkcja bascom, szukaj winy w kompilatorze.
Witam Mam taki [url=http://www.artronic.pl/o_produkcie.... LED i nie umiem wyświetlać na nim cyfr, tzw. umiem ale nie tak jak to powinno się robić. Wyświetlam je tak [syntax=basic4gl]Portb = &B1100110 Portd.1 = 1[/syntax] a chcę pisać np. wys5 i wyświetli się liczba 5 To moje kody [syntax=basic4gl]Tabela: Data 63 , 6 , 91 , 79 , 63...
W tym przykładowym kodzie jest chyba błąd logiczny ;) W Select Case biorąc pod uwagę Channel a nie Pomiar zawsze będziesz brał pod uwagę tylko Channel z którym wywołujesz funkcję czyli 0 :D
Funkcja ta zwraca stringa, a ty potrzebujesz liczby
witam chciałbym zaprogramować tak attiny 2313 ze jak sie raz nacisnę przycisk dioda np na (PORTD.0) zacznie świecić a gdy drugi raz sie go nacisnę zacznie mrugać a gdy trzeci to kolejna funkcje zacznie wykonywać czy jest to możliwe ?? Bardzo proszę o jakieś przykłady Dodano po 9 oczywiście w bascomie Przeniosłem z "Programowanie ogólne"
(ciach) Declare Function Wyswietl_bajt(bajt1 As Byte) As Byte (ciach) Wyswietl_bajt &B00000000 zadeklarowałeś funkcje, ale nie masz deklaracji zmiennej bajt1 dopisz gdzieś: dim bajt1 as bajt pozatym funkcję wołaj tak: wyswietl_bajt(parametry), a nie: wyswietl_bajt param pozatym wywołując funkcję musisz wpisać gdzieś jej wynik (bo inaczej kompiler...
chcę osiągnąć coś takiego: Declare Function Set_by_spi(co As String*10 , Wartosc*40 As String , Procesor As Byte) As Byte A co to za zmienna Wartosc*40 ? Poza tym zmiennych w parametrach się nie wymiaruje. Wszystko dlatego, że w przekazywaniu parametrów uczestniczą tylko wskaźniki do zmiennych. Nie użyłeś ByVal więc kompilator przekaże 16-bitowy...
A o funkcjach logicznych słyszałeś? wystarczy and z wartością 0x0F.
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...
witam, Od razu do rzeczy. Jak w temacie! Program odczytuje po 1wire temperatury z 2 czujników. Wszystko działa poprawnie (płytka, czujniki dodam ds18b20). Kod programu poniżej. Error : 261 Line : 39 Array expected [ID1] Error : 261 Line : 43 Array expected [ID2] Error : 124 Line : 43 LOOP expected ostatnim errorem...
Mam pytanie. Czy w Bascomie sa gotowe funkcje do wyswietlania cyfr na LED czy trzeba samemu kombinowac ?
Chciałem sobie dostosować bascomowe polecenie Sound (pin, pulses, periodes) do PeCetowego Beep(f,t) w tym celu sobie napisałem 2 funkcje ale coś nie zabardzo to działa. Pierwszy raz w ogóle używam funkcji w bascomie, proszę o pomoc. $regfile = "m32def.dat" $crystal = 16000000 '16MHz Dim Pulses As Single Dim Periodes As Single Dim F As Integer...
Witam!!! Mam pytanie jak poprawnie zapisać w bascomie funkcje liniowa?? Jak daje y=a*x+b to wywala mi błąd error 35. Wszystkie zmienne y,a,x,b mam zdefiniowane Jak to inaczej zapisać?? Pozdrawiam
Nie wgłebiajac sie w kod moze zamiast LSR daj LSL i po sprawie. Nie ma '8' bitu chyba.
Zamiast podprogramów nie lepiej uzyć funkcji? Można sie posługiwać zmiennymi lokalnymi, nie ma problemu z pokrywającymi sie nazwami. Co do makr, to jak trzeba, jest to uzasadnione to tak, jak nie to funkcje lub podprogramy. Swoja drogą, wywołanie podprogramu jest pewnie szybsze niz funkcji? W kodach Bascom jakie widuję, rzadko pojawiają się funkcje.
Problem w tym ze bascom funkcją rnd będzie losowac zawsze te same liczby po odpaleniu procka i bedzie zonk bo kostka zawsze bedzie losowac te same liczby w tej samej kolejności ale jak użyjesz do losowania np wejścia adc + rnd() to juz coś z tego będzie widziałem coś takiego gdzieś na elektrodzie szukaj w dziale mikrokontrolery.
Zainteresuj się funkcja Printbin oraz podziel dane na osobne bajty.
Był taki probem w BASCOMie z funkcją GETADC(). Po zmianie kanału odczytywała ona nadal poprzedni kanał, mimo iż multiplekser był przełączany poprawnie. Rozwiązanie problemu było dość proste. W rozwinięciu funkcji zastosowano dwukrotny odczyt stanu przetwornika ADC. Pierwszy odczyt odrzucano, i brano pod uwagę tylko drugi odczyt. Wada: Dłuższy czas oczekiwania...
Przede wszystkim zastanów się co będzie, jeśli wykryjesz przekłamanie danych? Piszesz, że masz transmisję jednokierunkową, czyli nadajnik nic nie wie o tym, że odbiornik nie odebrał poprawnych danych. Jeśli to nie problem i dane po prostu możesz gubić, to samo CRC jest wystarczające. Można łatwo je wyliczyć (w C są nawet gotowe funkcje, pewnie BASCOM...
bascom procedury funkcje funkcje step7 funkcje decków
zapieczony hamulec kocioł kondensacyjny termet wymiana alternatora matiz
profil służbowy renaul trafic klimatyzacja
Niebieski kabel w Marantec Magic 600 – antena czy przewód neutralny? Znaczenie i zastosowanie Laskomex EC-2502A CFF Message When Calling – Wiring, Address, and Power Issues