Witam... Można to zrobic na wiele sposobow. Sa bardziej lub mniej prymitywne. W zaleznosci od potrzeb stosuje sie rozne metody "detekcji", "programowych blokad" itp Ja zrobilbym to np tak: ----------------------------------------... 'Blokada zadeklarowana jako zmienna bitowa If P1.1 = 0 Then Goto Instrukcja blokada...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
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...
(...) 39: Set Mcp_clk '1 Mcp_wynik1.0 = Mcp_din1 : Mcp_wynik2.0 = Mcp_din2 : Mcp_wynik3.0 = Mcp_din3 : Mcp_wynik4.0 = Mcp_din4 Case 40 : Set Mcp_cs End Select Return Jaki błąd w niej popełniłem? Twoja składnia i podejście do problemu wyglądają na prawidłowe, ale istnieje kilka kwestii, które warto rozważyć i sprawdzić, aby upewnić się, że wszystko...
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
Jeśli tylko uC ma wbudowany sprzętowy moduł TWI czyli odpowiednik I2C to warto z niego korzystać. Wiele zależy od części kodu których nie zamieściłeś. Sprzetowe TWI jest o tyle lepsze że nie przeszkadzają mu tak bardzo przerwania z innych źródeł. Kiedy korzystasz ze software`owego I2C to niestety, ale chyba każde przerwanie potrafi przerwać te transmisję....
Hmm...Bascom działa lepiej kiedy się wie co się robi :D Wiesz co robi instrukcja Config Clock = Soft ? Konfiguruje Timer który w mikrokontrolerze jest przygotowany do pracy asynchronicznej. Dodatkowo potrzebny jest rezonator kwarcowy 32768 Hz dołączany do pinów mikrokontrolera oznaczonych TOSC1 i TOSC2 Nie będę opisywał wszystkich przypadków, ale dla...
Witam. Od kilku dni próbuje napisać prosty,jak mi się wydawało kilka dni temu ,programik. Chodzi o to żeby zmieniać stan portu w odstępach czasowych z możliwością ich regulacji. Proszę o jakąś ,na razie drobną podpowiedż .
To chyba po to była ta duża zmienna żeby można było na niej działać.. Nie zagłębiałem się w temat i nie wiem jaka jest wartość początkowa ale załóżmy te poprzednią. [syntax=vbnet] Wartosc = 4401250 'powinna miec jakas wartosć poczatkowa Fdown: Czesrx2 = Czesrx2 - 1 If Czesrx2 < 80 Then Czesrx2 = 80 Else 'jesli Czesrx2 jest jeszcze większa lub równa...
Więc aktywować warto bo nie zaszkodzi a może pomóc. Rozumiem, że jak aktywuję BODEN i BODLEVEL dla AT32 to reset zostanie uruchomiony po obniżeniu napięcia poniżej 4V - dobrze wyczytałem? Swoją drogą to chciałbym jeszcze podpytać odnośnie dwóch rzeczy - dotyczy programowania w Bascom. 1. Kwestia wear leveling przy zapisie do eprom w Bascom - zupełnie...
Witam. Tak poradziłem sobie z uruchomieniem. Myślę, że warto opisać tutaj dokładnie co i jak z tym HC-05. A więc jeśli ktoś ma sam układ HC-05 bez dodatkowej płytki z goldpinami, to powinien podłączyć go według tego schematu: http://obrazki.elektroda.pl/7988822600_1... Oczywiście diody LED nie są konieczne. Jednak polecam podłączyć jedną...
Witam, dla Bascoma (przynajmniej w tej wersji jaką podałeś) niewykonalne jest zamienienie tych połówek bajta miejscami za pomocą SWAP (SWAP potrzebuje 2 zmiennych, a dostaje jedną). Sprawdzę w najbliższym czasie, czy nowszy Bascom sobie poradzi. Choć faktycznie, ten stary Bascom Basic AVR kompiluje kod, nie zgłasza błędów, lecz SWAP nic tu nie robi....
Rozumiem, czyli zmienna String to jakby ciąg zmiennych bajtowych stanowiący całość i w programie instrukcja: IF zmienna_string_1znak(to jakby jedna zmienna bajtowa, tylko inaczej interpretowana, bo nie mogę do stringa w programie wpisać prosto wart. liczbowej, a jedynie literę, która reprezentuje ową wartość liczbową) = "a" then... jest równoważna...
Mam pewnien problem. W c jest taka zmienna jak integer (int). Jesto to zmienna 1 bajtowa w procesorach 8 bitowych, moze przyjmowac wartosci od -128 do 127. W bascomie nie ma takiej zmiennej. Wiadomo nie jest trudno napisac odpowiedni program, ktory by mi to przeliczal. Tym bradziej, ze bede i tak musial zastosowac bascomowa zmienne typu integer/long,...
' 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,...
Wartosc kolejnego bitu zmiennej (czyli portu bo jego stan przechowywany jest w rejestrze-zmiennej) mozesz odczytac tak: zmienna.nr_bitu w przypadku portu B bedzie to wygladalo tak jakas_zmienna=Pinb.4 jakas_zmienna=Pinb.5 jakas_zmienna=Pinb.6 jakas_zmienna=Pinb.7
Z elementarnej matematyki wynika ze: U(T) = 0,0139T + 2,5. No więc piszesz sobie (zakłądając ze U to zmienna odpowiadająca napieciu) T=U-2,5 T=T/0,0139 i tyle jeśłi chodzi o konwersje. Oczywiście musisz zadeklarowac odpowiednio zmienne U i T ja bym proponował jako inteagery. Pozdrawiam
Portb = Mem_wiert ustawia na porcie odpowiednią kombinację stanów Mem_wiert = 1 - Końcówka 0 stan wysoki; reszta niski Mem_wiert = 2 - Końcówka 1 stan wysoki; reszta niski Mem_wiert = 4 - Końcówka 2 stan wysoki; reszta niski Mem_wiert = 8 - Końcówka 3 stan wysoki; reszta niski portb=0 wyłącza zasilanie silnika. Łatwiej jest sterować portem za pomocą...
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...
Poniżej fragment: Odczyt = 0 For Krok = 1 To 100 W = Getadc(1) Odczyt = Odczyt + W Next Krok Wyn = Odczyt / 100 Zmienna wyn to uśredniony pomiar ze 100 odczytów. Pozdrawiam.
Użyj po prostu VAL(zmienna typu string). Ale nie jestem teraz przekonany, czy VAL zwróci wartość stringa zawierającego HEX. Możesz napisać prostą procedurę, która zamieni dwa znaki w HEX na wartość dziesiętną, a tą już łatwo wyślesz. EDIT: Jest komenda HEXVAL - opis w helpie.
Do konwersji łańcucha na zmienną numeryczną wykorzystaj funkcje VAL lub HEXVAL . Mając już adres zmiennej, możesz użyć instrukcje INP do pobrania wartości. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 80 $framesize = 80 Declare Sub Show_byte(byref Adres As String) Declare Sub Show_word(byref Adres As String) Declare...
To jest tak oczywista informacja że nie ma tego w Helpie. Tak samo jak całego alfabetu czy tabliczki mnożenia ;p Skąd Lookup miał by wiedzieć jaką długość mają kolejne elementy? Owszem mógł by, ale taka tablica musiała by dodatkowo zawierać pola określające długość elementów czyli też była by dłuższa. Po drugie to trafia do pamięci programu a nie do...
Najprościej to użyć overlay w sram. Single to 4 bajty w pamięci. dim zmienna_single as single dim bajt1 as byte at zmienna_single overlay dim bajt2 as byte at zmienna_single+1 overlay dim bajt3 as byte at zmienna_single+2 overlay dim bajt4 as byte at zmienna_single+3 overlay Potem zapisujesz bajty do eeprom, odczytujesz kiedy chcesz i masz wynik w single.
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
If zmienna >7 then zmienna = 14 - zmienna end if Ale robiłeś to bez ELSE ?
Wartość w poleceniu lookup to jest właśnie adres wiec nie kumam w czym problem. przeskaluj adc z 0-1023 na 0-90 i potem wywołuj zmienna=lookup(adc,tablica)
...Chodzi mi o to że chce wyświetlić na Lcd znak którego wartośc mam zapisaną w bajcie np D1 - wartość binarna Np w D1 jest 0111000 i chce aby na wyświetlaczy pokazało sie " p " Jak to zrobić ? :) Piotr Takie "cuda" robi się za pomocą polecenia Chr() :D Jeśli w zmiennej jest zapisany kod ASCII jakiegoś znaku , to by wyświetlić właśnie ten znak na LCD...
Raczej nie może działać prawidłowo, zmienna Z jest typu String. Przed dzieleniem należy przekonwertować String do zmiennej liczbowej: [syntax=basic4gl]Dim Z1 As Byte ' ' Z1 = Val(z) Y = Z1 / 9[/syntax]
Program jest prosty do zrealizowania. Robisz sobie 2 podprogramy. W jednym wyświetlasz sobie jedną zmienna na lcd i inkrementujesz lub dekrementujesz. Podprogram powinien dzialac w petli. Drugi podprogram analogicznie a do przeskakiwania pomiędzy nimi użyj gosub.
Nie rozumiem co się tutaj dzieje. Zmienna Reference nie ma żadnej przypisanej wartości początkowej. Jak np uzyskać 50% świecenia diody? Nie chodzi mi o stopniowe przyciemnianie, po prostu chciałbym mieć możliwość w dowolnym miejscu programu ustalenia jakie napięcie ma być na danym wyjściu. Nie potrzeba żadnej wartości początkowej, jest to zmienna typu...
Policzyłem dla AVCC, to jednak nieważne. Zobacz jak korzystać z symulatora w takich sytuacjach. Zmieniłem trochę Twój kod (miał też błąd w obsłudze przerwania bo zaraz pod Select case miałeś ustawianie portów bez żadnego Case. Przeniosłem więc tę linię powyżej Select Case) Wracając do symulatora to każdy ruch suwaka w symulatorze powoduje teraz printowanie...
Zwiększaj tylko jeśli zmienna <255 z zmniejszaj jeśli >0
oczywiście, że wystarczy $asm ... kod twojej wstawki $end asm ale oczywiście przydałoby się jeszcze wiedzieć jak można uzyskiwać w asemblerze dostęp do zmiennych itp, otóż: Dim Zmienna1 as Byte $asm lds R16, {Zmienna1} ... coś tam robimy sobie w asm ze zmienną i chcemy ją uaktualnić, więc: sts {Zmienna1}, R16 $end asm powyżej...
...Gdy z terminala wysyłam 2 to procek zwraca mi 50 gdy 1 to 49 gdy 3 to 51 itd Pewnie gdyby a była single to by było O.K. "Kłaniają się" typy zmiennych. Kiedy do terminala wpiszesz 2 , to po łączu szeregowym do uC , jest wysyłany kod ASCII cyfry 2 , czyli dziesiętnie 50.Instrukcja print , "przetwarza" owe 50 na ciąg znaków ASCII reprezentujących liczbę...
Do autora - przyjrzyj się [syntax=vbnet]Config Portd.5 = Output : Dc_wlacz Alias Portd.5 Config Portd.1 = Input : S12_wolniej Alias Portd.1 Config Portd.2 = Input : S11_szybc Alias Portd.2 Config Pina.0 = Output : Kier_lewo Alias Pina.0 Config Pina.1 = Output : Kier_prawo Alias Pina.1 Config Pina.4 = Input : S10_start Alias Pina.4 Config Pina.5 = Input...
Czy jest możliwe takie napisanie podprocedury w bascomie aby zwracała wartość zmiennej?? Pokażę na przykładzie o co mi chodzi, chcę powiedzmy napisać sobie uniwersalną procedurę, która będzie zwiększała wartość jakiejś zmiennej, pod warunkiem, że ta nie osiągnęła jeszcze górnej, wyznaczonej granicy... np.: Dim Dana As Byte , Granica_g As Byte , Zmienna...
[quote="lukaskay"] a gdybym czas oczekiwania zwiększył do 15 s wtedy dokładność wzrosła by mi do 4 obr/min mogę użyć komendy: Wait 15 ?? ale wtedy chyba dojdzie do przepełnienia licznika?? quote] Przy twoich parametrach silnika el., oczywiscie ze dojdzie do przepelnienia licznika0. Ponadto uwazam ze stosowanie dyrektywy "Wait" w pomiarach nie jest najlepszym...
Nie typ SINGLE a LONG ! Dodatkowo nie definiuj sztywno adresu bo to może być źródłem późniejszych problemów. Tak będzie poprawnie i najbardziej optymalnie ze wszystkich możliwych sposobów: Dim Zmienna As Long Dim Zm1 As Byte At Zmienna Overlay Dim Zm2 As Byte At Zmienna + 1 Overlay Dim Zm3 As Byte At Zmienna + 2 Overlay Który bajt to który i dlaczego...
a po co się upierać przy writeeprom, skoro można zadeklarować sobie zmienną wprost w obszarze pamięci EEPROM i później z niej korzystać prawie tak jak ze zwykłej zmiennej w RAM Dim Zmienna As ERAM Byte a później gdzieś w kodzie: Zmienna = Obroty ' w ten prosty sposób zapamiętujesz w EEPROMIE swoje obroty albo Obroty = Zmienna ' czyli np po starcie odtwarzasz...
Czy jeżeli w Bascomi-e, w przerwaniu, ............ ......... czy zapis będzie trwał, a procesor w tym czasię będzie już wykonywał inne rozkazy? Zapisywana jest zmienna bajtowa. Wpis wartości zmiennej do EEPROM nie odbywa sie samoczynnie, jak powiedzmy przesączanie wody przez lejek(!). Tego wpisu dokonuje processor; nie ma tam pośrednika (chyba jedynie...
na wyświetlaczu miga mi cyfra " 7 " , czyli wnioskuje że zmienna B przyjmuje wartość 7 , ale dlaczego ? oraz zero reakcji klawiatury. Witam Nie 7 tylko 15 :) 15 nie może być wyświetlone 7 segmentach, to 1111 3 ostatnie jedynki to właśnie 7. Daj if-a <15 zobaczymy pozdrawiam
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...
Zadeklarowałeś "Zmianna" a przypisujesz "Zmienna". :) Edit: Wyjście z procedury obsługi przerwania wykonuje się za pomocą Return a nie Goto Glowny ! Resztę błędów znajdziesz sam. :)
Dat Alias Portd.13 Ena Alias Portd.12 Clk Alias Portd.11 Nie wiedziałem, że Mega8 ma trzynaście końcówek na porcie D :) Wpis = &B1100100111000101 ' prekonfig Wpis = 8750 ' częstotliwość początkowa Po co najpierw zmienna Wpis zawiera liczbę 51653 by zaraz wartość zamienić na 8750 ? Ddrc = &B1111_1111 Portc = &B1111_1111 Jak ty chcesz sterować przyciskami...
http://obrazki.elektroda.pl/5724768100_1... Witam, Aktualnie buduję/remontuje niewielką tokarkę, do zastosowań domowych. Jej mechanika jest dość prymitywna, co za tym idzie nie posiada żadnych podziałek, ani automatycznych posuwów. Wobec tego chciał bym zaopatrzyć ją w liniał, który będzie pokazywał pozycję imaka na wyświetlaczu LCD....
A co byś powiedział na operator AND. Port = p3 AND &H0F (bierzemy pod uwagę tylko 4 młodsze bity) Wtedy zmienna Port będzie zwracała stan bitów P3.0-P3.3 w formie liczby z zakresu 0-16. Nie trzeba będzie robić ceregieli z przeliczaniem stanów kolejnych bitów.
Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Niestety, ale z Eepromem ten numer nie przejdzie , ponieważ Bascom ignoruje etykiety w Eepromie. Deklaruje, jakie wartości powinny być zapisane w eeram...
Pewnie mój, tylko pisząc o błędzie miałem na myśli konwersję z "Fusing". Owszem, string zawiera o jeden znak więcej niż my widzimy, tyle w w wielu programach (m.in. w książce M. Wiazani jest zapis: zmienna As String*3, a następnie konwertowana za pomocą Fusing na x.xx (4 znaki). W helpie też na ten temat mało. Może o czymś nie wiem. Dodano po 9 Aktualny...
Powinien ale cls daj przed petla a w niej zastosuj locate. Po za tym nie operuj warunkami na liczbach zmiennoprzecinkowych. Przelicz sobie jaka wartosc ma zmienna Wart_ac przy napieciu 1V i do niej napisz warunek.
zmienna bascom bascom zmienna zmienna warto ujemna
kalibracja stacja lutowniczy blokada pralka wewnątrz bezpieczników passat
Volvo V50 2004 2.0 TDI – wyciek płynu spryskiwacza, uszczelka pompy, zbiornik, przewody Oleo-Mac 937 – otwór biegu jałowego L w gaźniku a pozycja względem króćca ssącego