Ponieważ asemblerowe operatory high() i low() są także jednymi z zatrzeżonych funkcji języka BASCOM Basic, i tak niestety są rozpoznawane, trzeba użyć innego "sposobu": $regfile = "m8def.dat" Const _liczba = &HAA55 Const _liczba2 = _liczba / 256 $asm ldi R16, _liczba ldi R17, _liczba2 $end Asm Tym samym do R16 trafia &H55 a do R17 &HAA. Jeśli...
To tylko opóźnienie. DJNZ zmniejsza zawartość rejestru R7 i skacze do etykiety Et1, aż wartość tego rejestru będzie równa zero. W bascomie można użyć instrukcji waitus 40 w tym przypadku będziesz miał opóźnienie 40 us
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...
na symulacji działa, ja jeszcze wymyśliłem coś takiego przycisk musi być podłączony pod INT. Nie jest dobrze; Aby użyc interrupt należy go najpierw skonfigurować jak ma działać i napisac procedurę co ma być zrobione w przypadku interruptu. np: Config Int0 = Falling ' lub Rising On Int0 Procedura ' "Procedura" jest nazwą etykiety w której umieścisz...
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...
Dzisiaj akurat potrzebowałem rejestru HC595 do rozszerzenia liczby wyjść użytecznych. Poniżej fragment kodu w bascomie. Przypisane nazwy odpowiadają katalogowym. Zmienną Portx traktujemy jak zwykły 8 bitowy port wyjściowy. Kod z pod etykiety 'obsługa rejestru' wstawiamy w pętli głównej programu, aby rejestr był na bieżąco odświeżany. [syntax=basic4gl]...
Nie wnikając w szczegóły(za wiele pisania :D ) , proponuję w podprogramie "Welcome" , zakomentować/usunąć instrukcję Cursor Off , gdyż tylko ta instrukcja chciałaby "skoczyć" do etykiety _lcd_control .Ponieważ z krótkiej analizy kodu wnioskuję , że ten wyświetlacz pracuje tylko w trybie graficznym , więc o włączaniu/wyłączaniu kursora , raczej nie może...
Program zajmuje 50%. Może i jest źle napisany ale działa.. Ja bym to stwirdzenie troche skorygował; Program działa tak jak jest napisany!... bo - "Jest jeszcze jeden problem." Co jakiś czas temperatura podskakuje o 10 stopni a czasami nawet do 200 podskoczyło co spowodowało zbędne załączenie przekaźnika. Z czym jest problem? Popatrz na pracę timera0,...
Jeśli wybierasz BIT w celu pozornej oszczędności to kompilator wszystkie flagi bitowe wsadzi do jednego Bajtu. Nie ma innej możliwości. Bajt składa się z ośmiu Bitów . Ale do rzeczy. Najprościej to wytłumaczyć następująco. Na przykładzie flagi Z . http://obrazki.elektroda.pl/4444213200_1... Flaga ta wskazuje zerowy wynik działania arytmetycznego...
Jako że asembler jest z reguły samodzielnym niezależnym, i nie związanym z IDE programem wszelkie etykiety i makra są jego wyłaczną domeną. Generalnie etykiety i marka to jest inna droga przy kompilacji ale te rozważania wkraczają w naukę o kompilatorach/translatorach. Jeżeli assembler jest makto-assemblerem (dziś trudno o inny) to wszelkie maka są...
Jak chcesz przekazać temu fragmentowi jakieś parametry, to prościej jest napisać procedurę ( Declare Sub , i ciało Sub...End Sub ). Jak taka procedura ma dodatkowo coś zwrócić to napisz funkcję ( Declare Function , i ciała Function...End Function ) Jak chcesz tylko tam wskoczyć i wrócić by wykonać powtarzające się operacje to etykieta: i GoSub . Jak...
Chciałem wstawić kawałki programu w assemblerze .Pytanie brzmi : JAk się wstawia etykiety np. jc et et:mov a,#34 niestety bascom w rtych wstawkach znajduje jakis blad .
Po zadeklarowaniu zmiennej "Eram_param_baudrate" kompilator zgłasza błąd "Label not found", gdyż nie ma etykiety obsługi przerwania int0: On Int0 Int_canint Bascom często nie wie, gdzie zaznaczyć błąd, który znalazł... ;)
Jeszcze jedno jmp Nie_ma_miejsca_Sd kompilator nie może odnaleść etykiety
W zasadzie wystarczy napiasć no comment , ale ... zdięcie ze stosu adresu powrotu i wskoczenie do etykiety , też nie zda egzaminu. Piotrek
Dziekuje Wam za pomoc. jednak to o czym piszecie juz robilem. czyli zapisywalem sreg zarowno na stos jak i w zmiennej w pamieci bez widocznej poprawy. Zapisywalem rowniez wszystkie rejestry uzywane (pozniej nawet wszystkie rejestry procesora) bez rezultatu. Moze problem jest w tym ze nie wiem dokladnie co robi bascom jak reaguje na przerwanie? moze...
Nie dziw się. Napisałeś jakiś śmieć, a nie porządny kod. Deklarujesz procedury (DECLARE SUB), wywołujesz je przez CALL - OK. Ale potem te GOTO i etykiety zamiast ciała procedur. I te dzikie wcięcia. A to dopiero prosty BASCOM...
Witam. Dzięki za podpowiedzi. Sprawdzę jutro na układzie i napisze co i jak. Jak coś jeszcze widzicie w moim "skomplikowanym" kodzie to napiszcie. Bardzo rzadko robię coś na uC, z racji mojego zawodu raczej na PLC. Ten wait po wyzwalaniu jest po to aby silnik nie zatrzymał się za szybko po starcie. Czujnik etykiety widzi przerwę miedzy etykietami (prześwietla...
w wersji AND też próbowałem niestety nie działa mi poprawnie sam program,wpisując AND do całego programu zwiększyła mi się pamięć kompilowanego programu z 50 procent na 52 dlatego zostałem przy If.......Then zmniejszyłem pamięć kompilowanego programu do 39 procent wycinając locate 1,12 i lcd " " teraz wygląda tak [syntax=basic4gl] '################################...
Sam podprogram jest mało uniwersalny bo ma na stałe przypisane skoki. Leprzym rozwiazaniem jest podprogram o następującej budowie: ;---------------------------------------... ; Wykonanie skoku do podanej etykiety w zaleznosci od wartosci w ACC ;---------------------------------------... ;...
Plik C0006d wyświetlacz nie świeci,na końcówkach portu B stany wysokie.Gdzie przyczyna? Nie wiem...., nie widac schematu.... Prawdopodobnie nie wykonuje się instrukcja z etykiety 'Zwiększ:' ; albo nie wchodzisz w nią. Czy masz podłączony przycisk S1 pomiędzy PIND.0 i GND? e marcus
Mam program do zegarka z alarmem...podczas kompilacji w programie Bascom AVR wyskakuje mi bład w tej lini Set Tcon.2 'opadające zbocze int1 dla obslugi timera Enable Interrupts 'odblokowanie przerwań On Int1 Sekunda 'skok do etykiety sekunda gdy wystąpi int1 a brzmi on tak Error:41 Line: 49 Variable can not be used with SET [TCON] Niech ktoś mi pomorze!!!!
Do tablicy tak się nie wpisuje wartości. Wpisujesz np tak: Tabaa(1)=100 Tabaa(2)=200 Kompilator Ci krzyczał że nazwy są zduplikowane bo nazwa twojej tablicy i nazwa etykiety byłe takie same. Trzeba czytać te błędy. Następny błąd jest w printbin nie da się nic zapisać po przecinku. Co ta siódemka miała znaczyć?
Moim zdaniem, to kiedy dajesz $include to Bascom w danym miejscy po prostu wkleja zawartość pliku "funkcje.bas". Spróbuj przenieść linijkę z $include na koniec programu, bo tak to procesor wchodzi do zawartości pliku "funkcje.bas" bez wywołania. Używam wielokrotnie polecenia $include i wiem, że program sypał się kiedy funkcje (suby czy zwykłe etykiety...
Pewnie, że wywala błąd, bo w C etykiety są ważne tylko wewnątrz funkcji. Tzn. nie można skoczyć z jednej funkcji do drugiej - to nie BASCOM ;) Przemyśl jeszcze raz algorytm. Zasadą jest, że przerwanie nie przenosi głownego sterowania w inne miejsce, a zwykle tylko ustawia flagi sprawdzane w pętli głównej (w uproszczeniu).
napisałem własną biblioteke do bascom'a. układ pracuje nawet po wywaleniu oporników. prosto do procka podpiety. jak biblioteka bedzie przetestowana w 100% to ją tutaj umieszczę. niestety bascom jest tak głupawy że nie potrafi wykonac jednego ze skoków w przód o 2 słowa. wywala bład, że próbuje skoczyć 543 słowa wstecz a to za dużo. sorki gdzie tu skok...
Czy są jakieś ograniczenia w bascomie na skok wykonywany przez instrukcję gosub?? Chodzi mi o to czy może skoczyć np. do etykiety oddalonej od wywołania funkcji gosub o 300 linijek?? W asemblerze jest coś podobnego o ile wiem na funkcję ljmp? Proszę o pomoc. Pozdrowienia limatorek
Mam jeszcze 2 pytanie związane z Bascomem. Zrobiłem program przykładowy przedstawiony poniżej. Dim Nr As Byte Dim Nr2 As Byte Dim Koniec As Bit Skocz: Koniec = 0 Do Input "Podaj nr" , Nr If Nr > 0 Then If Nr < 20 Then Koniec = 1 End If End If Loop Until Koniec = 1 Do Print "pętla 2" Input "Podaj nr 2" , Nr2 If...
Polecenie GOSUB skacze do etykiety podprogramu (zakonczona RETURN). Natomiat polecenie CALL wywoluje procedure, do ktorej mozna przeslac parametry do szybszego obrabiania danych (zakonczona END SUB). Oba te polecenia po wykonaniu podprogramow powoduja powrot programu do miejsca wywolania. Polecenie GOTO powoduje poprostu przeskok do innej czesci programu.
Witam! Natknalem sie ostatnio w bascomie na taki problem: po wykryciu przerwania (odbiornik podczerwieni tfms5360 podlaczony pod int0) powinien odbyc sie skok do etykiety i tam odczytac dane, wysylane przez pilota rc5 za pomoca komendy getrc5. Fragment programu odpowiedzialny za te opcje znajduje sie ponizej: Config Rc5 = Pind.2 Config Pind.2 = Input...
Jeśli chodzi o błędy to jeśli się usunie fragment o który się tutaj pytam to program w miarę poprawnie działa czyli aż tak "koślawy" to on nie jest... Moze troche spokojniej; Uzywasz zmiennej dla ktorej nie deklarujesz jej istnienia i wielkosci: dodaj gdzies na poczatku (w części gdzie masz konfiguracje ukladu) Dim Tim As Word oraz dopisz brakujaca...
Witam , mam kawalek kodu i zauwazylem , ze w symulatorze programu nie wykonuje mi przerwania na timer1 , timer0 dziala bardzo dobrze i symulator go symuluje . Oto programik $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = Output Config Portd = &B1111000 Dim Adres As Word , Adh As Byte , Adl As Byte , T1pom As Byte Dim I As Byte , T As Byte...
Zgadzam się z kolegą. Używanie polecenia wait to tak jakbyś strzelał z działa przeciwpancernego do muchy... Przykładowe skonfigurowanie licznika 16-bitowego w BASCOM tak żeby zliczał do 1s przy częstotliwości taktowania 16MHz: ( wszystkie ustawienia konfiguracyjne oraz deklaracja zmiennych ) Config Timer1 = Timer , Prescale = 256 ' konfiguracja licznika...
Witam. Napisałem wczoraj program do odbioru kodu rc5 przez attiny2313 . Chce żeby profesjonaliści sprawdzili kod , czy on "zadziała" . Kod: [syntax=basic4gl] $regfile = "attiny2313.dat" $crystal = 16000000 Config Rc5 = Pind.0 Reset Porta.2 On Int0 Odbierz_rc5 Enable Int0 Enable Interrupts Dim Odebrano As Bit Dim Komenda As Byte , Adres As Byte Dioda...
A czy mógłbym prosić o jakiś konkretny przykład? Albo poprawić ten: Config Timer0 = Timer , Prescale = 1024 On Timer(15) Gosub procedura 'czekaj 15sec. Timer On Do Loop End Procedura: Cls Lcd "ok" Waitms 500 Return Nie wiele tu mozna poprawic bo od poczatku do konca masz bledny koncept pracy z timerami. Po pierwsze: w konfiguracji wartosc 'Prescale'...
Dla 51 można zrobić np. tak: p1 = 0 'to ten sterowany port p3 = 255 ' to port z przyciskami Do if p3.0 = 0 then gosub zapalanie_od_p1.0_do_p1.7 ' jesli przycisk na p3.0 wcisniety to skacze do etykiety "zapalanie_od_p1.0_do_p1.7" if p3.1 = 0 then gosub zapalanie_odwrotnie if p3.2 = 0 then p1 = 0 'dodatkowy przycisk czyszczący port p1, można to samo robić...
Wybrałeś drogę przez "pokrzywy" :-). Może i dobrze. Jak się poparzysz to będziesz inaczej patrzył na temat programowania. W sumie można i deasemblować. Ale zobacz pierwsze linijki (zaraz po etykiecie start). Moim zdaniem wpakowana jest tam instrukcja bez sensu (jeżeli flaga ustawiona lub wyzerowana to skocz do...). Kod po deasemblacji jest "nienaturalny"....
Kolego nowynom Twój poprawiony kod również nie zawiera etykiet :) aczkolwiek wygląda można powiedzieć wzorowo :) A tak nawiasem, czy nie łaska sprawdzić na symulatorze ? Napisałem tego posta w akcie desperacji po lekturze helpa, innych postów i wygooglowaniu wszystkiego co możliwe. Mam podpięty układ pod kompa i przelewam moje wypociny na bieżąco do...
dzięki Stefan, poprawiłem i program się skompilował jednak po wgraniu do procka nie działa Oczywiście że nie może działac. Procedury warunkowe " If... then... " mają zakończenie " End if ", Natomiast procedury wykonywane w subrutynach lub Labels (etykietach) kończone są przez " Return " a nie na odwrót lub 'przeplatane'. Wtedy wchodzisz z jednej etykiety...
Dziekuje za wytlumaczenie . Uporalem sie z ustawieniem tych portow wejsciowych i dziala :D Ponizej zamieszczam dzialajacy kod programu Ten program nie ma prawa 'dzialac' /funkcjonowac. Jezeli cokolwiek robi to prawdoppdobnie tylko na krotka chwile i w symulatorze ale wczesniej lub pozniej ma wszelkie szanse do blokowania sie. Nie z powodu konfiguracji...
może program nie jest bardzo dopieszczony ale działa . więc po kolei nie używam przerwań choć powinienem należy poprawić jeszcze pomiar temperatury ponieważ przy mniej niż 5 stopni czujnik nieco zawyża do jednej linijki należy dodać komende aby wynik z zmiennej był jeszcze odejmowany o 2 i sprawa załatwiona roździelczość to 1 stopień kalibracja polega...
ja natomiast za nic nie mogę się połączyć w żaden sposób do mojej atmegi... Używam windowsa 7 64 bit. Próbowałem już Bascom AVR, AVR Studio, WinAVR, wszystkich tych programów w wirtualnym Windowsie XP, wszystko oczywiście w trybie HID i nic z tego. Jedyne co nawiązało jakikolwiek kontakt to AVRDUDE czyta mi Fuse i Lock bity oraz czyści pamięć procka......
1. Pętla DO LOOP. Czy musi być użyta zawsze w programie i co powinno być objęte ta pętla ? Nie trzeba używać DO..LOOP. Wtedy program będzie jednoprzebiegowy: uruchomi się i zakończy. I teraz od Ciebie zależy czy zakończy się poprawnie czy też przeleci przez to co nie powinien np. podprogramy, czy dane. Dlatego zawsze należy wskazać koniec programu...
To jest mój pierwszy program w Bascomie a nie w ogóle. I moim zdaniem jest to coś prostego właśnie. Ale nie oto chodzi. Przetwornik ADC ma zmierzyć na początku jeden raz napięcie akumulatora ( pierwszy pomiar odrzucam bo może być niewłaściwy). Po stwierdzeniu, że napięcie jest poniżej wartości ustalonej dioda ma mignąć 3 razy żeby poinformować użytkownika...
Witam, miałem na zaliczenie zrobić jakiś projekt z wykorzystaniem mikrokontrolera AVR, jako ze miałem tak mało czasu jak doświadczenia to zrobiłem działający projekt ze strony '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111...
Przeznaczenie: Konfiguruje pracę programowego interfejsu I2C jako urządzenia podrzędnego (Slave). Ta instrukcja korzysta z biblioteki I2CSLAVE.LIB, która jest rozprowadzana oddzielnie przez MCS Electronics. Składnia: CONFIG I2CSLAVE = adres 'Instrukcja Config I2cslave automatycznie włącza globalny system przerwań! Config I2cslave = &B01000000 'czyli...
RS232 jest niestety już używany, jak i również przetwornik ADC, oraz działa Timer -(jest troszkę tego) , dlatego nie moge skorzystać z np. ATMEGA162 który ma 2xRS232, bo nie ma on ADC. Pozatym obwody drukowane już zaprojektowane i zamówione w ilości narazie testowej, ale są. Pozatym użycie dwóch procków raczej odpada, pomęczę sie z tym co mam bo twierdze...
Już po części mam rozwiązane. Czyli temperatura. Oto kod, sprawdzony . Działa. [syntax=basic4gl] 'Konfiguracja '**************************** $regfile = "m8def.dat" $crystal = 12000000 Config Portb = Output Config Portb = 255 Config Portd = Output Config Portd = 255 Config Portc = Input Config 1wire = Pinc.1 Config Timer0 = Timer , Prescale = 64 Enable...
Mam mały problem z programem napisanym w bascomie , mianowicie założenia są takie jest to odbiornik pilota IR na atmega 8 chodzi mi o sam algorytm dekodowania sygnału , który ma dekodować wszystkie rodzaje pilotów obojętnie czy są w standardzie RC5 czy SONY na wyświetlaczu LCD mam mieć wyświetlane umownie wartość jedynek i zer i problem polega na tym...
bo później w programie gdzieś tam zmieniasz znowu stan na odwrotny, nie ma innej możliwości
Kolego neo_84 Sprawdziłem Twój program , jest zagmatwany jakiś taki nieczytelny. Powinieneś maksymalnie opisywać kod ,a poszczególne odrębne funkcje umieszczać osobno aby jak najbardziej program był czytelny nie tylko dla Ciebie , ale i dla innych elektroników (to bardzo pomaga!) Podam Ci szkielet kodu jaki ja stosuję przy multipleksowaniu i odczycie...
Wywal Goto przy Sprawdzanie i Gosub przy Alarmowanie. Ma zostać samo Sprawdzanie i Alarmowanie ponieważ teraz masz je jako procedury a nie jak wcześniej etykiety skoków.
Sprawdź czy masz prawidłowo ustawiony typ procesora w opcjach, a najlepiej ustaw to na początku programu. U mnie bez problemu udało się to skompilować. Błędy były tylko spowodowane brakiem etykiet przy podprogramach. Użyłeś do skoków polecenia GOSUB zamiast CALL. GOSUB wymaga etykiety, CALL skacze do procedury bez etykiety.
Witam. Spróbuj tak napisać etykiety podprogramów. Zamiast Menu_1 : Napisz Sub Menu_1
Dawno nie pisałem w Bascomie, ale myślę że na końcu każdego podprogramu musisz dać return. Inaczej program idzie w następne etykiety. A u ciebie jest tylko na końcu ostatniej .
Witam, A nie znam bascoma, ale może można napisać własną funkcję typu "ustaw_kolor(numer_leda, kolor)", gdzie kolor jest etykietą dla tablicy "Data"? Dalej "r = lookup(0, kolor)" itd.
Jak to było?.. "Programy się kompiluje, a nie komplikuje." :) No dobra, w takim prostym przykładzie który podałem, to ma sens. :spoko: A jeżeli takich etykiet będę miał kilkaset, to co? Pisać takiego 'select case' na kilkaset pozycji? Ogólne pytanie jest takie, czy da się przekazać zmienną w jakiś sposób pozycję z której ma czytać polecenie 'read'?...
... lecz nie moge wyslac danych(godziny,daty itp) do pamieci pcfa. Skoro procedura zapisu do PCF-a nie jest wykonywana, to nic dziwnego :idea: czekam na sugestie. Nie nazywaj etykiet, podobnie brzmiącymi nazwami (Settime,Senttime).
Już od dawna myślałem ,że dobrze by było otworzyć temat jak wyżej gdzie można by się wymieniać spostrzeżeniami nt. zauważonych błędów w Bascomiel.Pojawienie się "Dziwne zachowania timera w Bascom" przekonało mnie że warto.Na początek : Bascom-8051 , polecenie GOTO etykieta musi być złożona z conajmniej dwóch liter inaczej "idzie w maliny" (w helpie...
witam.. Jest możliwość stworzenia konstrukcji goto z zmiennej..? tzn mam na myśli że np. abc-zmienna typu string abc = program1 goto abc
Zobacz w pomocy polecenie GOSUB i CALL, bo pomieszałeś te polecenia. Dodano po 11 Do podprogramu możesz skoczyć poleceniem GOSUB i nie deklarujesz go. 'podprogram: Etykieta: 'etykiety kończymy dwukropkiem 'coś zrób Return Procedurę lub funkcję musisz zadeklarować i podać jakie parametry będą przekazywane. Jej treść musisz umieścić używając SUB...
A wyświetlanie zrobić jako podprogram, czy jako etykietę?
Wolałbym prościej to zrobić .Tak jak to jest w innych kompilatorach C czy Bascom .Np. wstawiasz etykietę 'asm' ;piszesz kod w assemblerze.
...Czy w programie wszystko OK jest? Nie, nie jest. Prześledź program od pierwszej linii i zobacz co "zrobi" procek, zanim dotrze do etykiety Main.
Wszystko zależy jak rozwiązano w danym przypadku sposób liczenia interwałów taktowania zegara, ale typowo w elektronicznych układach odmierzających czas są montowane te typowe kwarce 32768 kHz w cylindrycznej oprawce. Owe kwarce znajdziesz w zegarkach czy to wskazówkowych kwarcowych z budzikiem czy też w płytach głównych PC :) Jeżeli przycisk masz na...
W ten sposób to ci się nie uda. Restore to przywołanie całego bloku data o jakiejś nazwie. Funkcja read czyta kolejne znaki - jak w tablicy. Aby kod zadziałał powinieneś użyć funkcji lookupstr: do numer_opisu=0 tekst = Lookupstr(numer_opisu , Menu_opisy) lcd tekst loop end Menu_opisy: data "1-opis", "2-opis", "3-opis"...
... tylko nie rozumiem po co prgoram się ubiega o tą etykietę :D To z ... oszczędności chyba ;) Wstaw gdzieś na początku kodu(np. przed 1-szym CLS) Fourthline i po krzyku :D Piotrek PS W Bascomach ver. > 1.11.7.4 działa prawidłowo ;)
A jeśli chodzi o AVR to: ON źródło_przerwania nazwa_podprogramu [ NOSAVE ] gdzie: źródło_przerwania - symboliczna nazwa źródła przerwania, nazwa_podprogramu - etykieta określająca gdzie znajduje się podprogram obsługi przerwania. jako żródło przerwania można: URXCprzerwanie układu sprzętowego UART – odebranie znaku UTXCprzerwanie układu sprzętowego...
Jeżeli nie zmieniałeś fuse bitów to fabrycznie jest ustawiony na 1MHz wewnętrzny oscylator, czyli powinieneś dopisać do programu $crystal = 1 000000. Nie musi być zewnętrzny. Gosub xxx skok do danej etykiety.
Nie możesz przekazywać części nazwy etykiety jako zmiennej. Etykieta danych to adres w pamięci flash. Musiałbyś przepisać adres każdej etykiety do zmiennej używając LOADLABEL. Albo oczywiście tak jak kolega powyżej zaproponował.
Witam!! Probuje zglebic asemblera. Napisalem kilka programow w bascomie i jestem ciekaw kiedy dane sa odkladane na stos(podgladam w AVR-Studio na disemblerze). Wychodzi mi, ze tylko w przypadku przerwania. Jesli uzywam procedur, czy etykiet to bascom nie odklada danych na stos. Jak to jest drodzy koledzy??Czy tylko w przypadku przerwania? Pozdro/smalski
Prawidłowo robi się to tak: XH , YH , lub ZH . Kolejnym krokiem jest odczyt młodszej części adresu i odpowiednio przepisanie jej do XL , YL , lub ZL .
Witam Patrz DEBOUNCE pin_portu , stan , etykieta w Help
Const odlicz=65436 rem dla zegara 12MHz odliczy tylko 100 impulsow (100us) dim licznik as word dim koniec as bit Config Timer1 = Timer , Mode = 1 , Gate = Internal On Timer1 etykieta Counter1 = odlicz do start timer1 bitwait koniec,set reset koniec rem petla powtarza sie co 100 us loop etykieta: licznik = counter1 rem To ma eliminowac czas od momentu...
Bardzo dziękuję, wgrałem od razu wsad i wszystko chodzi idealnie. Bez zmian etykiet "stary" Bascom nie pokazuje błędów i program działa ok, nowsza wersja wyrzuca już błędy. Jutro to poprawię. Masz rację pot_max ustawia się napięcie odniesienia do którego procesor porównuje spadek napięcia na rezystorze pomiarowym. Brakowało tylko "uśpienia" pomiaru...
Najpierw skonfigurowałbym przerwanie potem je włączył. Drugą kwestią jest to, że przed etykietą "Sprawdź" musi być "END" (nie koniecznie bezpośrednio przed)
Zrobiłem tak jak pisałeś tzn zadeklarowałem ten wybór przycisków jako podprogram i nadal jest na Select case Nr_przysicku lecz nadal to nie działa Nie rozumiem tego. Teraz możesz już wywołać ten podprogram, tylko nie wiem czemu tego nie robisz. A tak nawiasem, chyba miało być Przyciski , a nie Przysicki ? ;) Poza tym zamieniłbym te podprogramy na etykiety.
nie tylko tam bo return powoduje po wykonaniu danej etykiety powrót i dalsze wykonywanie programu a tam program kończył się wykonywać
Dim Ustawienie As Byte -zmienna Chyba nigdzie nie używana Ustawienie: -etykieta Jakieś to dziwne.
Na początek usuń grzałki R6..R11, bo znacznie obciążają one procesor. Wyświetlacz może być po prostu źle (niepewnie) podłączony, może też być problem z jego inicjowaniem - procedura inicjująca ma zależności czasowe, które zależą od częstotliwości procesora. nie wiem, jak to jest zrobione w samograju pt. Bascom. Schemat nie pokazuje przypisania linii...
Nijak z żadnego kodu nie mogę się doczytać na chłopski rozum kiedy on mierzy czas od Rising do Rising. Nie używaj więc chłopskiego rozumu - użyj własny! Wyjaśnienie powinno być zbędne bo jest bardzo trywialne; - obracając wiatrakiem, w pewnym momencie wbudowany tam hall switch daje impuls na INT0, co wtedy robisz w programie? - odsyłasz go do etykiety...
Problem już rozwiązany dzięki koledze Niveasoft Przy deklaracji etykiety przerwania od ADC należało dodać SAVEALL ponieważ w przerwaniu używam zmiennych typu Single. Reszta szczegółów w helpie.
... Error : 46 Line : 10 Assignment error [COMPARE1A: 0 12: 112] , in File : C:\PROGRAM FILES\BASCOM-AVR-1-11-9-1 FULL\PILOT-TINY26-SONY.BAS ten błąd mam tylko przy tiny26 przy innych prockach np. mega 8 lub tiny 2313 program ładnie się kompiluje . o co chodzi przecież tiny26 ma OC1A ? Spawa jest śmiesznie prosta , jeśli...
Ponadto etykiety podprogramów obsługi przerwań powinny być poniżej instrukcji "End" A sama instrukcja "End" powinna być tuż za pętlą główną.
Przed spakowaniem sprawdzałem. Kompilował się na 1.11.9.5 z "nakładką" 1.11.9.8 zawierającą obsługę USBASP. Być może etykieta "wadzi". Spróbuj zmienić na inną.
$eeprom - dyrektywa kompilatora, która informuje go, że od tego miejsca dane będą trafiać do pamięci EEPROM. Faktycznie dane te trafią do pliku EEP, którego zawartość podczas programowania zostanie przelana do wewnętrznej pamięci EEPROM układu. Napisa: - Etykieta dla polecenia READEEPROM. Jest to przyjazny zamiennik adresu pod którym dane w tej pamięci...
Wszystkie Sub`y powinny być poza pętla Do Loop a tymczasem u Ciebie etykieta Silnik jest w pętli. Gosub czyli "go sub" oznacza odłożenie na stos aktualnego adresu gdzie program jest wykonywany, skok pod adres procedury Sub i powrót w to samo miejsce (a dokładniej do następnego po odłożonym adresie miejsca) poprzez Return Return zdejmuje ze stosu odłożony...
Eprom jest zewnetrzny na I2C (24LC512) ale zeby sie odnosic do danej grafiki program musi znac jej adres. (biblioteka do obslugi glcd jest zmodyfikowana do korzystania z zewnetrznej pamieci eeprom) Komunikat pojawia sie dopiero po wywolaniu tej etykiety za pomoca showpice. Plik .eep jest tworzony poprawnie.
Witam Przenieś kod za etykietami Lewo: i Prawo: do pętli głównej i zobacz co się stanie. Pozdrawiam
Autor tematu miał przecież w kodzie co chce wyświetlać i kiedy. Tak, to prawda... Akurat w mojej kopji listingu podczas 'Copy -> Paste' zaginęła ostatnia etykieta "Zegar" - z tego powodu były moje uwagi,
Tu masz program pod ATtiny2313, jeśli potrafisz programować, to też potrafisz przerobić program na ATMegę: [syntax=basic4gl]' Bardzo prosty zegar bez możliwości ustawiania Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit Config Portb = 255 : Portb = &B255...
Bo obsługa przerwania też zajmuje trochę czasu- ileś taktów zegara. Bascom jest "bezpieczny" dla użytkownika i odkłada na stos wszystko- a nie tylko to co potrzebne. A potem zdejmuje ze stosu. Ale za to działa wolno. Spróbuj : on timer0 etykieta przerwania nosave. Ale to będzie szybsze i mniej bezpieczne. Albo ASM.
Return to powrot z etykiety np. goto Etykieta_2 // i pozniej tu wracamy po skoku Etykieta_1: ... Return Etykieta_2: ... Return natomiast w Sub'ach sie tego nie stosuje. Poczytaj help'a od Bascom'a. W programie ciagle powtarzasz te same fragmenty: Portd.3 = 1 Portd.4 = 1 Toggle Portd.3 Toggle Portd.4 Waitms 10 Toggle Portd.3 Toggle Portd.4 zrob...
Oto program, wstawiam go gdyby ktoś miał podobny problem. Tu przychodzą ludzie z bardziej poważnymi problemami.. Czy ten twój 'ukończony' program w ogóle się kompiluję (?), czy ma on wykonywac jakieś konkretne zadanie (?) czy tylko zabierac miejsce i czas czytelników tej grupy? Zwróc uwagę na fragment twojego programu umieszczony w pętli Do...Loop...
Mikrokontroler MEGA8535 ma wsobie rejestry, bodajże nazywają się compareA i compareB. Niemoge sobie z nimi poradzić i prośba czy mógł byś mi napisać prosty program w BASCOM AVR który je wykorzystuje, chodzi mi dokładnie o taką sytuacje: Mikrokontroler cały czas porównuje zawartość jednego z tych rejestrów compare z zawartością Timera1 i kiedy wystąpi...
Ja natomiast hołduje takim zasadom: a)Call Sub - jeśli przekazuję parametr(y) do procedury b)Gosub etykieta - bez parametrów. Jakoś łatwiej mi sie później połapać :) Piotrek
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(...
dzieki za odpowiedz a czy jesteś w stanie mi napisać co będzie się działo np. gdy będe miał 4 alarmy aktywne i dwa alarmy bedą z parowane z diodami które muszą być włączone dopóki ktoś nie naciśnie reset-u a na lcd etykiety musza w miare płynnie wskakiwać dopóki alarmy są aktywne??? z góry dzieki
silniki od wkrętarek, jak najbardziej ale oczywiście te z przekładnią planetarną przy zasilaniu takiej wkrętareczki napięciem 3V mają kopa i spory moment obr. a co do enkoderów to myslę że można by pomyśleć nad tarczą z przesłonkami od myszki i resztą elektroniki tzn.. tylko nadajnik IR i odbiornik IR o ile się nie mylę to jest to zintegrowany odbiornik...
zrobiłem tak jak mi poleciłeś usunąłem ten fragment wszystko sie skompilowało tylko po załadowaniu kodu do ATmegi8 temperatura sie wyświetlała ale nie można było nic włączyć za pomocą pilota RC5 w pomocy bascom ta biblioteka $lib "mcsbyte.lbx" jest potrzebna aby można było sterować za pomocą RC5
etykiety excel brother etykiety etykiety zebra
szyfrowana partycja odzyskać podcisnienia wezyki usługi systemowe
piekarnik halogenowy whirlpool pralka świeci serwis
Czy kabel multiroom nadaje się do internetu? Delikatne szarpanie w Mercedesie A140 po załączeniu biegu