Witam wszystkich, temat stary jak świat: deklaracja zmiennej we w budowanej w atmege 16 pamięci Eeprom robię to tak: Dim zmienna As ERAM Byte (najpierw było bez ERAM i działa OK, jak dopisywałem ERAM to bascom zadziałał prawidłowo i sam zaproponował dokończenie deklaracji ) niestety kompilacja zwraca 2 typy błędów: 15 - wrond datatype i 42 - numeric...
Mam pytanko co do zapisu eeprom . Mam do zapisu cztery zmienne [syntax=basic4gl]'''''''''''''''''''''''... Readeeprom Cena , 1 ' zmienna typu string Readeeprom Waga , 8 'zmienna typu string Readeeprom Z , 16 ' zmienna typu word Readeeprom Przep , 24 ' zmienna typu word ''''''''''''''''''''''''''''''''zapis...
Witam. Proszę o pomoc. Nie mogę się doczytaćw pomocy bascom i na forum?! Chodzi mi o to że: jak zadeklalować zmienną w pamięci 2051 w taki sposób że po odpięciu zasilania ta zmienna np:X jest zapisana niezależnie od programu. np: dim x as byte x=x+10 end a po resecie zmienna x będzie miała już x+10 czyli 10 a po kolejnym już 20. Chodzi mi o wpis do...
super , dziękii za pomoc , a jeszcze jedno pytanie: to samo , tylko , że z przypisana zmienną np potega "x" i wykonuje "x" * "x" Deklaracja (przed pierwszym użyciem w kodzie): Declare Function Potega( Byval X As Integer) As Integer Definicja (na końcu programu) Function Potega( Byval X As Integer) As Integer Potega = X...
Witam Mam zegarek/budzik z wyświetlaczem LED ( dwukolorowy ). Zegarek generalnie działa. Ale mam problem z sterowaniem jasnością. Wiadomo, że robi się to tak, że jasność zależy od częstotliwości odświeżania. Tutaj o jasności wyświetlania ma decydować zmienna jasnosc. . jasnosc : [syntax=vbnet] '************ Timer0 1000 = 1 sekunda, 10000 = 10 sekund,...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Da się na 1000% ponieważ przed tym miałem tzw "piórnik ściągę" i pokazywało temperaturę i czas w 2 linijkach jakby jako jedna. Tylko właśnie nie wiem jak to dokładnie napisać ponieważ nie mogę ogarnąć tego w kodzie z tego "piórnika" Teraz chcę żeby tak pokazywało tylko temperaturę. Ogólnie ten "piórnik ściągę" rozpatroszyłem na części pierwsze żeby...
Udało mi się coś zrobić i nawet działa, ale: -jak uruchamiam układ powinno pisać w dolnej linii Ustaw godzine , a jest jak na fotce niżej, -ustawianie godziny - jak trzymam przycisk w pilocie cały czas wysyła sygnał, a układ odbiera kod raz na 3 sek - wcześniej było 250ms (tak jak jest zdefiniowane w programie). http://obrazki.elektroda.net/19_12181272...
Witam, może mi ktoś to jakoś jasno wytłumaczyć? dowolnośc jaka moge stosować jest az zabijająca :D Dla przykładu: [syntax=basic4gl] Declare Sub Liczba_to_cyfra(liczba As Integer , Byval Ilosc_znakow As Byte) [/syntax] Deklarujemy tu Sub o nazwie i 2 zmiennych Jednak w samym Sub znów deklarujemy: [syntax=basic4gl] Sub Sub_liczba_to_cyfra(liczba As Integer...
Witajcie. Moze mi ktos wytlumaczyc dlaczego jak w bascomie w procedurze przekazuje jako stale stringa i liczbe (np typu Byte) to pozniej jak chce to wyswietlic na LCD to wyswietla mi sie tylko liczba ? Ponizej skrawek kodu bo calosci nie ma co zamieszczac. Declare Sub Sprawdzenie(byval Etykieta As String , Byval Liczba As Byte) Do Call Sprawdzenie(...
Witam posiadam napisany program w języku Bascom. Mój problem wiąże się z tym że mam problem z jego kompilacją a dokładniej z jedną linijką programu. Czy może mi ktoś pomóc wyeliminować ten błąd. Bascom wskazuje że błędem jest Dim Wart_nap As String * [syntax=basic4gl] 'dopisałem funkcja wathdog czyli autoreset gdy procesor nir odpowiada dłużej niż 2...
Witam. Mam kłopot ze skompilowaniem tego kodu w bascomie 2.0.8.1 W wersji bascoma 2.0.7.3, której do tej pory używałem kompilacja przechodzi pomyślnie ERROR: 380 Line: 43 Array<> Non Array mismatch Error sugeruje błąd z tablicą w funkcji Czy ktoś miał podobny problem?
Witam, prosze o wyjasnienie dlaczego zmieniaja się wartości zmiennych, które uzywam do wywołania podprogramu FUNCTION. wartości na zewnatrz f=5 g=6 wartości wewnatrz f=0 g=5 Dlaczego wartości zmiennych f i g sie zmieniły? Dlaczego wewnatrz widzę inne wartości niż przekazałem do funkcji? Dodam że kompilacja jest w BASCOM AVR IDE firmy MSELEC.
Witam. mam problem z nastawą temperatury, a mianowicie zadeklarowałem drugą zmienną od nastaw, która się wyświetla na LCD, lecz program nie chce się skompilować. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 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...
Dir jest instrukcją w Bascom'e, zmienna nie może mieć takiej nazwy. Zmień w całym programie nazwę zmiennej Dir np. na Dir2 . Dodaj deklaracje procedury Ddelay . [syntax=basic4gl]Declare Sub Ddelay[/syntax]
... czy jest to możliwe? Raczej nie, ale jest wysoce prawdopodobne, że Twoja zmienna "B" zmienia wartość na "0". Na samym początku kodu, po deklaracji $Crystal dodaj "takie coś"...[syntax=basic4gl]Set Mcucsr.jtd Set Mcucsr.jtd[/syntax]
Po pierwsze jakie czasy chcesz obliczać i jakie przerwania po co ??? To jest bascom nie assembler, deklarujesz na wstępie programu prędkość kwarcu a kompilator troszczy się o resztę tj. dajesz deklarację $regfile = "m8def.dat" $crystal = 12000000 Po drugie, procedura obsługi wyświetlaczy LCD (mowa tu o alfanumerycznych HD44780) jest w BASCOM zaimplementowana...
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...
Do drasmen: jeżeli chcesz aby układ zadziałał musisz przestawić fuse bity na wew. generator np. 8MHz a do pinów gdzie podłączasz kwarc musisz wpiąć kwarc zegarkowy 32.768kHz. Program dla autora tematu: 'Program wykorzystujący przerwanie od timera0(8 bitowego) generowane co 8ms 'jeżeli przerwanie zostanie wywołane 125 razy, otrzymamy 1 sekundę...
1. Bascom jest bardzo dobrym językiem, znacznie lepszym niż Arduino. 2. "a:10.0" "a:10.0 " ":10" "10 " Ten temat jest zamknięty, dostałeś 2 przykłady. Pierwszy napisałem do składni ramki jaką podałeś w pierwszym poście, później zmieniłeś konstrukcję rami to napisałem kolejny przykład, można jak dobrze naliczyłem jeszcze 9 innych metod zastosować by...
Nie znam bascoma, ale zapewne twoja zmienna jest liczbą 8-bitową, zatem musisz przy deklaracji zadeklarować zmienną mogącą pomieścić większą liczbę.
Na początek do rysowania schematów są odpowiednie programy a nie Paint , kody programu umieszcza się korzystając z polecenia Syntax a nie wkleja zrzut . Schemat : brak jakichkolwiek kondensatorów do filtracji zasilania , brak GND dla uC , brak oporników ograniczających prąd diod jeden wspólny to żadna oszczędność max prąd portu to 20mA , czerwone LED...
Witam Jestem młodym elektronikiem. I nie potrafię wykorzystać mojej pamięci eeprom. Piszę w Bascomie. Mam polską wersję, helpu z Bascoma, ale tej nie rozumie. Skoro nie rozumiesz po polsku ;) , to w jakim języku mam Ci to wytłumaczyć :?: Spróbuję jednak po ... polsku ;) Oto próbka kodu, który mi nie działa. $lib "mcsbyte.lbx" $regfile = "2313def.dat"...
Przejrzystosc w kodzie przede wszystkim. :D Pozniej latwiej jest zlokalizowac ewentualne bledy i samo poruszanie sie w kodzie jest znacznie latwiejsze. W kazdym razie wracajac do tematu to ja osobiscie nie lubie etykiet wiec wolalbym to rozwiazac np. w ten sposob: Sub Czytaj_id_klucza() 'tutaj wstawiasz kod odczytu End Sub i pozniej tylko: Call...
Sama zmienna "byte", jak sama nazwa wskazuje ma rozmiar 1 bajta. Prawdopodobnie coś robisz źle podczas samej deklaracji. Najlepiej wklej tu swój program.
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...
Tak się dzieje jak stosujesz instrukcje Gosub, program idzie do procedury a tam znowu stosujesz Gosub i w tej na koncu nieszczęsne Retrurn. Program idzie w "krzaki" bo przepełniasz stosy i nadpisujesz w pamięci Ram zmienne. Poczytaj o procedurach i funkcjach w pomocy Bascoma, użyj Declare Sub a potem Sub: i END SUB. Stosuj też deklaracje ramki i stosu...
wyświetlanie cyfr na dowolnej liczbie wyświetlaczy podłączonych do procesora jest znacznie łatwiejsze niż obsługa LCD chyba, ze korzystasz z gotowych procedur. Teoretycznie jest tak jak piszesz ale... w Bascom... Obsługa LCD ogranicza sie do zadeklarowania pinów LCD procesora i podania komendy LCD "zmienna" a w przypadku wyświetlaczy LED dochodzi konfiguracja...
... co do resetu to : Reset zeruje tylko zmienna globalna a zmienna lokalna pozostaje nie ruszona :) Ze tez tego nie moglem sie nigdzie doczytac... Przestrzeń w pamięci RAM na zmienne lokalne , jest przydzielana dynamicznie i dla tego nie są one zerowane , bo w czasie kompilacji ich położenie(adres w pamięci) nie jest znane. Bascom również nie zeruje...
Witam !!! Chcę wysłać a z komórki i załączyć diodę Mogą mi koledzy podpowiedzieć co robię źle w programie ? [syntax=text] $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Serialin = Buffered , Size = 30 Config Portd = &B10111111 : Portd = &B00000000 'konfiguracja portow Config Portb = &B11111111 : Portb = &B00000000 Config Portc = &B00000000...
Nie po przedrostku tylko: Dim Eliczba as ERAM byte Co do zaś zanikania danych z komórki 0 to jest to dawna sprawa, a przy tym musi być spełnione kilka warunków by doszło do takiego zdarzenia. W dodatku możesz przecież ręcznie wskazać gdzie będzie zapisana twoja zmienna za pomocą At przy deklaracji zmiennej jako pierwszą zmienną bajtową,lub zadeklarować...
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
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...
pewnie jakieś herezje tu przedstawiam. Oczywiście deklaracja Sw1 Alias Pind.5 i Dim Zmienna As Byte wcześniej. Właściwie to działa tak jakby tylko na jedną diodę. [syntax=basic4gl] If Sw1 = 0 And Zmienna = 0 Then Zmienna = 1 Waitms 30 Speed = 75 'ok 0,5s bo 32poziomy x 15ms = 480ms (1j.=0,0002s) For X = 0 To 7 Nr_led = X : Set Go Do : Loop Until Go...
Kompletnie nie wiem o co chodzi w tym programie. Np to to co to jest: zmienna kali to bajt, ? Bo deklaracja zmiennej to na pewno nie. Albo to: Readeeprom Sek4 , K K to jest zmienną String więc jak ona może być adresem?
Napisałem wczoraj, ale program nie działa, mnie ma poleceń ack i nack bo kompilator Bascoma twierdzi, że jest w nich błąd, gdyby ktoś z was mógł je dopisać tam, gdzie są potrzebne. Jak napisałem tak: i2cwbyte 00000000 , ack to w tej linijce był błąd i2cwbyte vol , ack tu tez był błąd a jeśli chodzi o spacje przed i po przecinku to Bascom dostawia je...
Mam problem z prawidłowymi deklaracjami stosów pamięci. Żeby obliczyć zapotrzebowanie próbowałem zastosować rozwiązanie z $HWCHECK opisane w helpie, ale niestety nie działa prawidłowa na M2561 - zmienna _hw_lowest jest stale równa zero... Być może pomogła by obserwacja zawartości RAM podczas pracy programu co jakiś czas. Chyba najlepiej byłoby użyć...
Config Timer0 = Timer , Prescale = 64 On Timer0 Odmierz_1s 'podprogram wykonywany podczas wystapienia przerwania Dim Licz_8ms As Byte 'deklaracja zmiennej Enable Interrupts 'aktywacja globalnego systemu przerwan Enable Timer0 'aktywacja timera0 Counter0 = 131 'wpisanie wartosci początkowej do timera0 Dim Sek As Byte 'deklaracja zmienna zawierajaca...
Witam, Mam mały problem z napisaniem kodu tak aby ten program uruchamiał się za pomocą przycisku [syntax=basic4gl]Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer0 = Timer , Prescale = 256 'deklaracja timera jako czasomierza On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje Led Alias Portb.1 'alias dla wyjścia b.1 Dim Licznik...
jeżeli zadeklarujesz : Pk_1 alias portA.0 Pk_2 alias portA.1 Pk_3 alias portA.2 ..... ..... ..... Pk_20 alias portC.3 to zmiany będziesz dokonywał tylko w deklaracjach , reszta programu zostanie bez zmian (jeżeli Pk_20 podłączysz np do portu A.0 to zmiana Pk_20 alias portA.0 i już) Ale chcąc sterować w pętli pamiętaj że : 1=2^0 2=2^1 4=2^2 itd... jeśli...
Witam Na razie zrobiłem to tak: ( wywaliłem obsługę rozjaśniania/ściemniania bo coś się timery "gryzły" - zamiast Twojej Long1 jest Wl1 ), na razie uprościłem kod do jednego wyjścia '********************* Konfiguracja $regfile = "m32def.dat" $crystal = 16000000 Config Timer0 = Timer , Prescale = 64 Config Portc = &B11111100 'Pc.0, Pc1 jako...
Dzięki. Pozmieniałem ale nadal nie mam odczytu tylko 165165. Mógłbyś na to zerknąć? $regfile = "m168def.dat" $crystal = 4000000 'Deklaracja portów od wyświetlacza LCD Config Lcd = 20 * 4 'konfiguracja typu wyťwietlacza 'LCD Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E = Portd.3 , Rs = Portd.2 'konfiguracja...
Zmienna jest zadeklarowana, ale nie jest zainicjowana. Nie wiem czy bascom dokonuje autoinicjalizacji z wartością zero, ale jeśli nie to przy/po deklaracji najlepiej zainicjować domyślną/startową wartością każdą użytą zmienną, oprócz indeksowych z For bo są tak czy siak tam inicjowane. Wybrany fragment z tutoriala BASCOM-AVR Notice that a LOCAL variable...
Możesz skorzystać z opcji "OVERLAY" podczas deklaracji zmiennych (DIM). Poczytaj w helpie o "DIM" gdzie masz tą opcje OVERLAY opisaną. Tak w skrócie: Deklarujesz zmienna LONG która za pomocą Qverlay jest adresowana pojedynczymi bajtami, dzięki czemu możesz czytać i wysyłać takie pojedyncze bajty.
Dla 4 bajtów kod kolegi manekinen'a będzie działał poprawnie(kol. wowka pisał, że chce zrobić A = &HAABBCCDD) ponieważ zmienne Nazwa i A(1) A(2) A(3) A(4) znajdą się w tym samym miejscu w pamięci więc zapisując do Nazwa &HAABBCCDD otrzymamy tak naprawdę A(1) = &HAA A(2) = &HBB A(3) = &HCC A(4) = &HDD. A tak przy okazji powinno...
Może nie umie wstawiać? $regfile = "m88def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 Config Portd = &B00001111 'portd 0 1 2 3 jako wyjscia portd 4 jako 1wire 5 6 7 jako wejscia Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portd.3 =...
Witam Napisałem program który ma po naciśnięciu przycisku dodać lub odjąć 50 do zmiennej a następnie wyświetlić to na LCD Problem jest taki ze po wgraniu programu bez naciskania na wyświetlaczu zmienna cały czas przeskakuje co 50 na LCD a jak nacisnę 2 przyciski naraz to się zatrzymuje jaki jest tego powód ? [syntax=basic4gl][/syntax] $regfile = "m8adef.DAT"...
Podpowiedz: zmienna mozemy przekazac do procedury / funkcji dwojako: byval i byref. W pierwszym przypadku tworzona jest zmienna tymczasowa - kopia przekazanej zmiennej i jej wartosc jest STALA przez caly czas wykonywania procedury/funkcji (chyba ze ta swiadomie ja zmieni). W drugim natomiast do procedury/funkcji przekazywany jest ADRES zmiennej w pamieci,...
Witam chciałem zaprojektować sobie oświetlenie schodów podobne do tego na filmiku http://obrazki.elektroda.net/21_12309139... w celu regulacji tego kiedy ma być aktywne to oświetlenie schodów tzn. żeby nie dochodziło do zapalania świateł na schodach np. gdy jest słoneczny dzień i jest jasno w domu tylko po zmroku. Dodatkowo chciałem jeszcze dodać...
Uwaga ZGADUJE: ;-) Ten tekst odczytujesz z RSa? Jeżeli tak to w BASCOMie jest komenda INPUT zmienna , po której program oczekuje na wartość zmiennej wpisanej przez terminal. Oczywiście ta wartość powinna się zgadzać z deklaracją tej zmiennej – jeżeli zmienną zadeklarowałeś jako BYTE to wpisanie wartości np. 1000 spowoduje błędny odczyt. Ps. Jeżeli...
witam ponownie mam do was prosbe mam do napisania Zegarek w bascomie 8051 ni mam tu moj programik moze rzucilby ktos okiem czy nie ma bledow :wink: Dim Sekundy As Byte 'deklaracja zmiennej SSEKUNDY jako liczby z zakresu 0...255 Dim Minuty As Byte 'deklaracja zmiennej MINUTY jako liczby z zakresu 0...255 Dim Godziny As Byte 'deklaracja zmiennej GODZINY...
Te deklaracje (gdyby Kolega otworzył choćby na moment manuala) to deklaracje łańcuchów znakowych (tekstów) a liczby po gwiazdce oznaczają maksymalną długość napisu + 1 (znak zerowy zakończenia tekstu), czyli np. w zmiennej Tekst1 można zapisać maksymalnie 9 znaków. Oczywiście na tekstach NIE MOŻNA dokonywać operacji matematycznych. Jedyne co można robić...
$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 $lib "mcsbyte.lbx" Cursor Off Config Pinb.1 = Input Portb.1 = 1 Config Rc5 = Pinb.1 Dim A As String * 2 'Deklaracja umożliwiająca działanie komendyGETRC5 Dim...
Tak jak wcześniej pisałem sprawdź deklarację zwłaszcza tablic, może masz tablicę np temperatura 8 elementową a wpisujesz do niej 9 elementów...? 9ty element zostaje wpisany w miejscu gdzie może być zadeklarowana np zmienna G.... ale bez kodu to tylko gdybanie, zadeklaruj G na samym początku wtedy nic jej nie nadpisze, ale to nie rozwiąże problemu do...
Zrobiłem se coś takiego, ale nie działa tak jak powinno Jeżeli Pind.0 i Pind.1 są wejściami to konfiguracja portu 'D' winna wyglądac mniej więcej tak: [code][syntax=basic4gl] ................. Config Portd = 124 'Pd.0 i Pd.1 jako wejścia Portd = 127 'podciągnięte ................ [/syntax] Przewidywana żywotnośc EEPROM jest ok. 10 000 wpisów. W twoim...
Problem kasowania rozwiązałem obliczając długość stringa do wyświetlenia i dodając do niego na końcu maskie ze spacji która przykrywa pozostały napis. Numer ze zwłoką w postaci wait nie zawsze będzie odpowiedni. Locate 1 , 1 ' Lcd Zmienna(licznik) 'wyświetl wartość zmiennej dla tej pozycji menu Kon = Lookupstr(licznik , Menu ) 'obliczamy długość stringa...
deklaracja zmienna bascom deklaracja deklaracja zmienna globalny
oporność głośnik odkamieniacz junkers gorenje czujnik temperatury
Kod F37 w płycie Teka JZC 96324A - przyczyny i rozwiązania Pobieranie i rozpakowywanie plików ZIP na Macu – Safari, Chrome, The Unarchiver, Keka, BetterZip