Sekcje: 'Procedura czytaj 'Procedura Czysc_bufor nie mają zamknięcia END IF. Domyślam się że END IF powinno być w obu przypadkach przed END SUB.
Być może bascom'owe instrukcje obsługi lcd nie patrzą na kierunek w jakim działa port, tzn. w w funkcja "Config Lcdpin" ustawia wybrane porty jako wyjścia a pozostałe instrukcje obsługi lcd nie sprawdzają czy to się nie zmieniło. Spróbuj przed instrukcjami od lcd czyli przed obydwoma "cls" ręcznie przestawić wyprowadzenia uC jako wyjścia. Druga sprawa...
A może wykorzystać polecenie Chr() i tak: Chr(0A), powinno dać LF.
Wyłącz JTAG'a w fuse'ach i po kłopocie... Pozdrawiam...
... 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 ;)
"Linie zawarte w komentarzach z gwiazdkami budziły moje wątpliwości." Czytaj dokładnie posty!
Ja Ci napisze jeszcze coś ciekawszego. W folderze Bascom jest plik PDF o nazwie BASCAVR.pdf To dopiero kopalnia wiedzy jeśli chodzi o udogodnienia. Przesuwałem jak przysłowiowy osioł linijka po linijce jak czyjeś kody były przyklejone do lewej linii albo bez wcięć. Teraz zaznaczam taki blok który chcę przesunąć i naciskam CTRL + SHIFT + I Suuuuuper...
W Bascom można najpierw uruchomić funkcję Edit -> Proper Indent i to ułoży ładnie kod z wcięciami. Potem w ustawieniach włączyć Configuration -> Environment -> Draw Indention Lines i to połączy pionowymi liniami wszystkie pętle Do-Loop, For-Next etc. Czytasz błędy : Error : 382 Line : 201 variable does not match FOR Patrzysz na kod w linii...
Mi to dziala na tym czerwonym FT232, ale zobacz co sobie kupiłem w Chinach za 40zł https://obrazki.elektroda.pl/1826525100_...
I z wielu właśnie takich powodów robi się przesiadkę z bascoma na C lub asemblera . Tu nie ma komendy trzeba zrobić wycieczkę do rejestrów mikrokontrolera i wyłączyć sobie w rejestrach konfiguracyjnych odpowiedzialnych za uarta nadajnik , odbiornik , zmienić prędkość , i wszystko co tego dotyczy i co jest nam potrzebne . Jeśli nie potrafisz wyłączyć...
"Then" powinno być w tej samej linii do "If".
BASCOM oczekiwanie załatwia sam i robi to korzystając z dyrektywy $crystal. Pisałem obsługę LCD w BASCOMie i żadnych dodatkowych opóźnień nie musiałem dawać. A tak w ogóle to nejlepiej napisać całą obsługę samemu w asemblerze =] Poza tym zauważ, że w drugiej linii użyłeś polskiego znaku, a LCD nie mają takowych, chyba, że sam zdefiniujesz, stąd mogą...
Potestuj bo tak na szybko przy poobiedniej kawie klapałem jedną ręką :D Może coś przeoczyłem i trzeba prześledzić. Te złożone operacje w jednej linii dla stałych Bascom robi bez problemu. Osobiście bym tego tak nie napisał. Nie wiem po co to ciągle obliczać jak można raz... [syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 16000000 $hwstack = 64 $swstack...
Oczywiście,że linię sterującą zasilam 5V. Działało ( rysunek z pierwszego postu) Na rysunku z pierwszego postu nie ma linii 5V. Na pewno wiesz o czym mówimy? EN+, EN- były podłączone do masy. Brak było tylko zmiany kierunku. Idąc za sugestią Kol. jarek_lnx przełączyłem na drugi schemat ( ten biały)wyszperany w necie i nie działa wcale. Coś tu chyba...
Bo te dwie ostatnie linie niekoniecznie mają adres taki jaki mają w LCD 4x40. Pewnie te 4 brakujące kolumny są w końcówce linii 2. Zrób Locate 2, 12 i zobacz. Powinien tam być początek linii 3. A gdzie będzie początek czwartej to zobaczymy później.
Witam. Mam problem z uruchomieniem sterownika z tej strony: http://mirley.firlej.org/prosty_sterowni... Bascom poprawnie programuje avr ale jest problem z ustawieniem fusebitów. ............ Jak poprawnie ustawić fusy w bascomie ? W czym konkretnie masz problem? Nie potrafisz poprawnie zidentyfikowac fusebitów, czy też ich wyeditowac wg potrzeby?...
Mój typ - wadliwe podłączenie linii danych. Możesz jeszcze próbować w programie wstawić dodatkowe INITLCD przed DO.
Która to wersja Bascom nie potrafi napisać : Error : 375 Line : 49 Duplicate definition https://obrazki.elektroda.pl/2709901200_... W linii 25 -> Pompa_wl Alias Portc.0 'pompa obiegowa W linii 49 -> Pompa_wl As Bit Pewnie ustawia Bit a nie pin chociaż u mnie to się w ogóle nie kompiluje. W jednej linii przy deklaracjach masz pozostawiony...
Witam ! Na końcu tej linii (linia 151): For B = 1 To 15; jest nie potrzebny średnik, usuń go Pozdrawiam. Stefan
Załóżmy że chcesz uzyskać 100Hz. Procesor kreci się na przykład 8MHz. Timer napędzany jest sygnałem takim jak procesor, ale można ten sygnał podzielić tak żeby, na przykład co 1024 takty procesora do Timera trafiał jeden takt. Taki podział uzyskuje się za pomoca preskalera. Teraz wiadomo że Timer jest już taktowany wolniej bo co 1024 takty z 8MHz, ale...
Moze zmien algorytm tych obliczen. Wydaje mi ze ze jak po "Do" zrobisz od razu: [syntax=basic4gl]For Cykl = 1 To Y Z = ( Cykl * X ) \ Y Prc = ( 100* Cykl ) \ Y Call Oblicz Next Cykl[/syntax] to bedziesz mial co potrzebujesz i to bez uzywania single Nie znam dobrze Bascom, wiec jak nie mozna robic tylu operacji w jednej linii to dodaj zmienna pomocnicza...
w przypadku uzycia niewielkiej ilosci modulow i czujnikow obie wersje sa do przyjecia ale jesli chcesz rozbudowac system do wiekszych rozmiarow to opcja 2 wyglada na lepsza. masz jeden modul trzymajacy dane a reszta go odpytuje. nie masz wtedy tak duzego ruchu na linii 1W i masz mozliwosc dodania kolejnych czujnikow i modulow w dowolnej (prawie) ilosci....
Moze zrob tak Do RS = Inkey() ' czyta RS232 If RS = 13 Then Exit Do ' szuka znak konca linii Ramka = Ramka + Chr(RS) ' Odczytana ramka z PC Loop
Witam ! 1. Przyczyną może być wersja DEMO Bascoma8051, ona ma możliwość kompilacji jeśli dobrze pamiętam 2048B a AT89C4051 ma 4096B pamięci. 2. W tym programie jest coś nie tak, w pierwszej linii jest $sim, w czasie kompilacji nie przeszkadza, jest to polecenie dla symulatora aby omijał opóźnienia. 3. Zaremowana linia z konfiguracją Timer0 ? Czy ten...
Czy włączyłeś podciąganie linii portów, do których są podłączone przyciski? Obsługa przycisków w programie też jest "nie tak". Naciśnięcie przycisku powoduje, że na wejściu będziesz miał 0, nie 1. To, co dalej robisz w programie, też jest średnio sensowne, ale to zauważysz dopiero wtedy, kiedy wykryjesz poprawnie naciśnięcie przycisku.
Należy najpierw zadać sobie pytanie po co. Jeżeli chcemy potraktować programowanie mikrokontrolerów jako zabawę/ciekawostkę to Bascom będzie dobry. Jeżeli zamierzamy się rozwijać to niech to będzie Arduino, tylko i wyłącznie dlatego, że jest oparte o C. Sam jestem zwolennikiem wejścia w świat uC poprzez płytkę stykową (ewentualnie jakiś zestaw eval)...
No dobra. Wywal wszystko na linii Tx telefonu do Rx procesora. Ma być połączenie bezpośrednie. Na drugim kierunku zostaw tak jak masz. Poniżej kod do testów. Powinien działać. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $baud = 19200 Config Lcd = 16 * 2 Config Serialin = Buffered , Size = 100 Enable Interrupts 'Declare Sub Oproznij_bufor...
Uważam, że moderator ... Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności. Niestety raz się zdarzyło że na czerwono wyciąłeś tekst o "niewygodnym" środowisku programistycznym :D Ale nie o tym będę pisał. Napiszę jak to wyglądało u mnie. Ja zaczynałem od BASCOMa. I to BASCOMa '51. Były artykuły w EdW. Nie miałem jeszcze...
Przykład bez użycia tablic... [syntax=basic4gl]$regfile = "m8515.dat" ' specify the used micro $crystal = 4000000 ' used crystal frequency $baud = 19200 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space $sim 'Config Lcdpin = Pin ,...
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...
Wyświetlacz w moim przypadku przez LCD ... nie wyświetla całego pierwszego znaku, brakuje ok. 2 pikseli. Dla tego stosuję np. Locate 1 , 2 : Lcd "XXXXXX" Przy szerokości wyświetlacza 160 punktów i szerokości znaku 6 punktów w jednej linii możemy zmieścić 26,666... znaku. Dodatkowo deklarujemy inny wyświetlacz. Cóż nie można mieć wszystkiego. Uciążliwość...
Łap bo jak zaczniesz z tym Multimaster to się nigdy z tego nie wygrzebiesz a odkrywasz tu koło na nowo :D Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serial in 0. Błędem natomiast jest jest używanie Serial out 0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print...
Jeszcze jedna uwaga: końce linii muszą być w standadzie win/dos, tzn. linie muszą być zakończone sekwencją \r\n, inaczej kompilator głupieje. Niby drobiazg, ale trochę przeszkadza na początku.
Skoro programator jest wykrywany, a procesor nie, to pewnie jakiś błąd w zworkologii, lub połączeniach. Może opiszę jak powinno być bazując na błędach z którymi najczęściej się spotykam: - pin VCC w złączu programującym ma być połączony z Vcc procesora (GND oczywiście analogicznie) - jeśli zasilasz µC z osobnego źródła zworka JP1 zdjęta, jeśli...
Bascom domyślnie "naciska za Ciebie Enter" przy printowaniu. Jeśli nie chcesz zatwierdzać linii bo na przykład chcesz nadać w tej samej linii jeszcze jakieś znaki lub całe stringi to stawiasz średnik . To wiadomość dla kompilatora że nie ma dodawać Entera. Rozum więc to tak, że w podpowiedzi kolegi Jaca pierwsza linia jest nadawana z enterem a w drugiej...
Kurcze tylko mam kolejny problem bo mój program zajmuje już 40kb a będzie dalej rozbudowywany. Więc mnie blokuje znowu wersja demo. Chyba będe musiał zostawić tą atmege i zakupić atmegę64 i przegladnąć program i go jeszcze bardziej zmodyfikować, żeby zmniejszyć rozmiar. Dziwne jest to że mam wersję Bacoma 2.0.7.3 i tam również nie ma. Nie bardzo rozumiem...
Jaki będziesz miał wyświetlacz? Alfanumeryczny że string będzie ok? Czy może LED lub LCD segmentowy? Żeby zmieniać wartość enkoderem trzeba go obsłużyć... Enkoder ma przycisk? Zatem weź zmienną Word w której będziesz zmieniał nastawy np. [syntax=vbnet]dim wartosc as word dim index_wartosc as byte if index_wartosc =1 then wartosc=wartosc + 1 end if if...
Hehe, przeanalizuj dokładnie Twój ostatni programik i odpowiedz sobie jeszcze raz na pytanie jak on właściwie działa :) ...jak ograniczyć ruch diody dosłownie na 4 pinach. Tu mamy przesuwanie 2 diodek - "00010001"... Wkradł mi się mały błędzik :) W swoim programie pobierałem dane z linii Data i były to tylko bity 0...3 dla silnika bipolarnego natomiast...
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"...
Myślałeś o tym by zatrzasnąć stan linii danych w rejestrze na zboczu i odczytać zawartość rejestru już później przez CPU. Mógłbyś dodać licznik i mala pamięć SRAM oraz bufor bo tak małego FIFO raczej nie kupisz... Ale moim zdaniem będzie droższe i większe niż dodanie prostego uC który będzie w pętli robił to czego potrzebujesz - ile teraz kosztuje najtańszy...
Co do $regfile = "m8535.dat" to jest to coś w rodzaju instrukcji, którą dodaje się w pierwszej linii programu, z tym że w cudzysłowiu należy wpisać nazwę pliku odpowiadającego zastosowanemu uC, który można odnaleść w miejscu gdzie zainstalowano bascoma (np. C:\ Program Files\MCS Electronics ...). Dla porządku m8535.dat nie da się tym zaprogramować bo...
Kwarc wstaw w obu przypadkach nawet 16MHz. Baudrate jest zależna w zasadzie od jego dzielnika niż od kwarcu. Nie szalej też z dużą szybkością bo błędy mogą wyskoczyć, zacznij od 4800 bps. Połączenie po UART masz zrobić sprzętowo! Timer niech ci obsługuje multiplexing, główna pętla programu sprawdzanie czy w UART coś przyszło i przepisywanie do tablicy....
Odpowiedzią na twoje kłopoty jest instrukcja DEBOUNCE, gdyż: 1. Potrafi wywoływać podprogramy przy dowolnym stanie linii portu, 2. Przycisk raz naciśnięty i puszczony wywołuje podprogram tylko jednorazowo, 3. Filtruje drgania styków przycisków które potrafią narobić niełego bigosu początkującym, 4. Jest elegancka, pewna i uszyta "na miarę". PS. Atmega...
Witam! Po pierwsze to z reguły przyciski powinny zwierać piny wejściowe do masy a nie do zasilania. Wynika to z faktu posiadania przez procesory AVR wewnętrznych rezystorów pull-up podciągających wejścia do +vcc, czyli panuje na nich stale stan wysoki (oczywiście gdy zostaną uaktywnione). Po drugie to akurat sygnał CLK ma się zmieniać, podczas narastającego...
McRancor: nie zgadzam sie, moim zdaniem to dioda jest na linii VCC miedzy 74hc244 a programowanym ukladem. A prawda jest taka ze poprzez bufor przechodzi napiecie z portu LPT (w moich programatorach bez tej diody dalo sie nawet zaprogramowac 2313 zasilajac go wlasnie z portu LPT przez ten bufor). Poprostu przez bufor "przecieka" napiecie (nie sprawdzalem...
Witam! 1. od początku: pełna deklaracja procesora to: [syntax=vbnet]$Regfile = "m32def.dat" $Crystal = 16000000 $swstack = 16 $framesize = 32[/syntax] "mój" Bascom nie toleruje niepełnych deklaracji. 2. w zakładce WIDOK proponuje włączyć "CodeExplorer", to bardzo ułatwia wyszukiwanie błedów. 3. błędy formalne to: a. cytuję: "[syntax=vbnet]Do If Pina.0...
Prosze bardzo: 'Program regulujący prędkość obrotową silnika DC 12 V 'Do sterowania wykorzystano sygnał PWM 'Częstotliwość przebiegu PWM ok. 254 Hz - 8 MHz/510/64 'Przycisk S1 zwiększa prędkość obrotową silnika 'Przycisk S2 zmniejsza prędkość obrotową silnika $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal...
Witam Co do transmisji na setki metrów to RS485, właściwie w protokole nie ma różnicy, zamiast MAX232 dajesz coś do tego typu transmisji, chyba nawet scalak na którym kiedyś robiłem 500m nazywał się MAX485, pamiętaj o prawidłowym zaterminowaniu linii by nie było odbić, wartości oporników znajdziesz w PDFach. Drugi pomysł to światłowód, może dokładniej...
Witam. Procek tak się zachowuje bo nie określiłeś czy przerwanie ma być generowane przez zbocze opadające, rosnące czy przez stan niski na końcówce INT. Domyślnie wyzwalane jest stanem niskim więc wykonuje się raz za razem. Instrukcja Config INTx. Przeznaczenie: Konfiguruje sposób wyzwalania przerwania INTx. Składnia: CONFIG INTx = LOW LEVEL | RISING...
Nie :D Chodzi mi o to że nie zapisuj tego textowo. Bo na razie zapisujesz textowo, i olaboga, dwójkowo! Czyli jeden pixel zajmuje Ci jeden znak (0 albo 1). A jak zapiszesz "surowo" to w jednym bajcie będziesz miał 8 pixeli. Np. takie "A" to jest 65d, czyli 41hi czyli 01000001. Czyli jedna litera "A" zapisze Ci to samo co aż 8 znaków "01000001". Tylko...
rysowanie linii bascom identyfikacja linii słupy linii
fałszywy płomień roleta pilot somfy sprężarka lodówce
radio makita interfejs multidiag
Radmor 5102 TE - brak dźwięku, świeci wskaźnik częstotliwości Tryb serwisowy pralki Samsung WW60A3120 – wejście, testy, kody błędów, kalibracja