Proszę. Możesz sobie do testu skonfigurować jakąś diodę LED i sprawdzić czy miga co 0.5s :D W starszych wersjach Bascoma może będziesz musiał w linii konfigurującej Timer zamiast tych podkreślników dać spacje. [syntax=vbnet]Config Timer2 = Timer , Prescale = 1024 , Compare_a = Disconnect , Compare_b = Disconnect , Clear_timer = 1 Compare2a = 155 '10ms...
Witam, migają na przemian - i prawidłowo :wink: Zwróć uwagę, że przed wyświetleniem i czasu, i temperatury czyścisz ekran ( Cls ). :roll: Pozdrawiam, GSM
Pisałem abyś wszystkie diody LED połączył przez rezystory do +5V , a Ty tego nie zrobiłeś ? Mam rację ? Dziękuję za 10, nie trzeba było. GG6293398
powoduje miganie diody w bardzo nie regularnych odstępach czasu - widać to "gołym okiem". Na dodatek trudno nazwać te odstępy "pół sekundy". ... Na początku mam jeszcze: $hwstack = 32 $swstack = 8 $framesize = 16 Bez tego nie idzie zadeklarować żadnej zmiennej - "out of SRAM". Dyrektywa CRYSTAL tylko informuje kompilator o częstotliwości generatora....
Jak dołączyc kondensator -masz pokazane na rysunku poniżej. Jednak jeśli działa dobrze bez kondensatorów to nie ma powodu aby je dawać. Pozdrawiam Yakuza
U mnie twój program działa bez problemu :D . Może to wina zakłóceń.
trochę mały ten preskaler.
W timerze (np. co 0.5 sek) gasisz albo zapalasz flagę (powiedzmy o nazwie fMiganie) Oczywiście po każdej zmianie flagi (fMiganie) następuje odrysowanie całości wyświetlanego zbioru elementów w najstępujący sposób: 1. Jeśli fPozycja jest poza zakresem zbioru wyświetlanych elementów (np. =0) - wtedy obraz wyświetlany jest bez migania. 2. Jeśli fPozycja...
[syntax=basic4gl]while a=1 x++ if x==100 zapal led if x==200 zgas led x=0 waitms 5 wend zgas led[/syntax]
po $crystal podawana jest częstotliwość w Hz, więc 1000000 jest ok dla domyślnie skonfigurowanej atmegi8. Z resztą to lepiej ustawiać w opcjach kompilatora. Aha i zamiast pisać: Do Waitms 250 Portb.0 = 0 Waitms 250 Portb.0 = 1 Loop wystarczy Do Waitms 250 Toggle Portb.0 Loop a to, że pierwszy listing działał wynika chyba z tego, że za każdym razem sprawdzane...
Jeśli masz diody podłączone do plusa włączasz je komendą Reset a wyłączasz Set. Set podaje na pin stan wysoki (czyli plus) i dlatego ci to nie działa jak chcesz.
A tak: $sim $regfile = "m8def.dat" 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 Config Pind.2 = Input Hi: Do Cls locate 1,1 : Lcd "text1" Waitms 50 If Pind.2 = 1 Then Gosub Menu End If Loop End Menu: Do Cls locate 1,1 : Lcd "text2"...
A tutaj masz pełny Multithreating na AVR. W BASCOMie! Thread_0_label, Thread_1_label i Thread_2_label to 3 kody główne. Na razie jest tam miganie trzema diodami. Oczywiście każda dioda miga w innym tempie. Reszta to obsługa wątków i tego nie nalezy zmieniać jak się nie wie o co tam chodzi. Niestety wszelkie operacje na portach czy zmiennych większych...
Jeśli założyć, że przycisk podpięty do PORTD.1 i jeśli założyć, że dobrze zrozumiałem Twoją idee programu, bo namieszałeś okropnie, to... $regfile = "m8def.dat" $crystal = 1000000 Led Alias Portb.0 Config Pinb.0 = Output config Pinb.0 = input : Portb.0=1 Do if Pinb.0= 0 then Set Led Waitms 400 Reset Led Waitms 700 else Set Led Waitms 1000 Reset Led...
to zatrzymanie timera przed załadowaniem wartości jakby pomogło (przynajmniej nie zachowuje się dziwnie) teraz miga w równych odstępach ... Home Lcd "P=" ; P ; "us" Lowerline Lcd "I=" ; I ; "us " ; Licznik If Licznik = P Then Portd.2 = 0 End If If Licznik >= C Then Portd.2 = 1 Licznik = 0 End If ... Dobra odczepiam się od portów :) I już mówię dlaczego...
Za pomocą miernika, oscyloskopu lub analizatora stanów logicznych sprawdź napięcia lub stan 0 i 1 na wyjściach. Pozdrawiam Józef PS. W ten sposób dowiemy się czy jest to problem w programie czy na schemacie.
No własnie w tym rzecz żeby mieć minimalne pojęcie o sprzęcie który próbujemy oprogramować. W takim telegraficznym skrócie fabrycznie nowy mikrokontroler przetwarza milion operacji na sekundę (1MHz). Jeśli teraz poinformowałeś kompilator że procesor śmiga z prędkością 1MHz i chcesz żeby odczekał 1 sekundę, to kompilator każe policzyć procesorowi do...
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.
Poczytaj kilka artykułów na temat :) PORTx nadajesz stan PINx odczytujesz stan końcówki.
Kilka uwag odnośnie tego programu: 1. Zamykaj sekcje w takiej kolejności, w jakiej je otworzyłeś: Do If P = 1 Then D = 0 Wait 2 D = 1 Loop Until P = 0 End If Do If P = 1 Then D = 0 Wait 2 D = 1 End If Loop Until P = 0 2. Rejestr PINx jest tylko do odczytu - w innych językach zapis do niego nie dał by zupełnie nic, nie wiem jaki kod wykonywalny Bascom...
Do Call Klawiatura 'Obsłuż klawiature Locate 1 , 1 Lcd " " 'tu kasuje stary napis wpisując spacje Locate 1 , 1 ' Lcd Zmienna(licznik) 'wyświetl wartość zmiennej dla tej pozycji menu Locate 2 , 1 'wyświetla nazwe pozycji w menu Lcd Lookupstr(licznik , Menu ) Loop Oto pętla w której to chodzi Numer z wstawieniem spacji jest niezabardzo(znacznie ciemniej...
Ja to widzę tak: - ustawisz ADC w tryb Free Running, czyli będzie na okrągło wykonywał pomiary na jakimś wejściu a ponieważ wejście zostawimy niepodłączone, to jest szansa na losowe bity. - po skończeniu pomiaru ADC wywoła przerwanie które będziemy wykorzystywać do wszystkich Twoich potrzeb nie tylko do generowania losowej liczby. Innymi słowy ADC zastąpi...
Witam. Może liczyć źle piny. Pomigaj całym portem A
Witam. Można tak: $regfile = "attiny13.dat" $crystal = 1200000 Config Portb.3 = Output Config Pinb.4 = Input set pinb.4 reset portb.3 do if pinb.4=0 then do Set PORTB.3 Wait 1 Reset PORTB.3 Wait 1 Loop end if Loop W pętli odczytujesz stan przycisku i jak będzie niski zacznie migać.
Podłącz testowo do PC.0 leda, to powinno wyjaśnic sprawę.
Proszę.Diodę podłącz między PORTB.2 a GND,powinna migać co 1s.
Sda i Scl są skonfigurowane w kompilatorze (używam Bascom Avr). Adres się zgadza. A sprawdziłeś czy Twój PCF odpowiada ACK , po wysłaniu jego adresu na magistralę :?: Piotrek
Prawdopodobnie masz za dużo warunków naraz spełnionych, a że wszystko chodzi w jednej pętli to waitms się sumują i dlatego masz nie równe miganie
Za pomocą np sprzętowego SPI, lub ręcznie sterując pinami jak przy miganiu diodami.
Wszystko przeniesione do timer, ale sytuacja się powtarza. Jakiekolwiek zmiany w pętli głównej wpływają na działanie pwm i szybkości migania diod :/
Witam. Przede wszystkim należy ustalić czy następuje prawidłowo detekcja zbocza. Więc w pierwszym warunku po detekcji zera wstaw waitms 5. W przeciwnym wypadku przy tej częstotliwości kwarcu nie zauważysz działa programu czyli migania led.
Jest to mój pierwszy post, więc wszystkich witam. ostatnio zakupiłem zestaw EVB 4.3 .4, z procesorem ATMEGA 32. Płytkę kupiłem do nauki programowania BASCOM. Mam jednak problem -jest to chyba najprostszy program jaki może być: $regfile = "m32def.dat" 'najpierw określamy typ proca $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował...
dalej wyświetlacz miga
No tak dioda świeci jaśniej bo wcześniej jej prąd był ograniczany załączanym wewn. podciągniem do VCC a teraz jest pin normalnie ustawiony jako wyjście... Ale czy to znaczy że miga sobie co sekundę teraz ?
Nie ma pętli głównej bo chciałem wpisać dane do LCD raz aby go nie odświeżać. nawet jak mam w pętli wpisywanie i Wait 5 to resetuje sie ekran po okolo sekundzie. Sprawdze trop z watchdogiem
zamiast tak kombinowac zrob wypelnienie 100% i pozniej 0% dostaniesz taki sam efekt.
Bo to post dla niedowiarków którzy uważają że bascom to tyko do migania ledami sie nadaje. W myśl zasady, że złej baletnicy przeszkadza nawet spódnica.... Brawo. Super pomysl i urządzenie.
Czy da się wysterować portami poza do .... loop by np: pod tymi portami migały ?
rozwiązałem mój problem. w przykładach Bascom GETRC5 jest tam linijka: Command = Command And &B10111111 doszedłem po długich testach do tego, że u mnie musi to wyglądać tak: Command = Command And &B01111111 nie wnikałem dlaczego tak się dzieje! pilot działa raczej w RC5 bo mogę nim sterować też drugi TV w innym pokoju (NEPTUN) w oryginalnym pilocie...
ale przeciez to tylko dodaje wartość histerezy wczesniej tego nie miałem i tez migało
Nie, to dlatego ze skoro podłaczyles anody do portow to Set zapala leda a nie gasi ;] zamien sety na resety i odwrotnie i bedzie.
Zrób inaczej: Declare Sub Miganie - deklaracja procedurki ...program (tu się coś dzieje) call Miganie - jeśli ma zamigać, to skocz do procedury Miganie 'procedura : Sub Miganie toggle led toggle led ... costam cośtam end sub
W bascom 8051 nie trzeba deklarować czy P1 to wej. ,czy wyj. (zresztą sie nie da) ,opcja dostępna dopiero w bascom avr.
Dzięki. Uruchomiłem ponownie komputer i avrdude wgrał a dioda miga.
a nie 100µF :?:
Może jest włączony sprzetowy podział sygnału zegarowego przez 8 i dlatego diody (zauważalnie) migają.
komenda cls przed wyświetlaniem odczytu z ADC spowoduje miganie LCD
Wypróbowałem już kilka opcji i niestety dalej migają.
Jak miałem "delay" na wyświetlanym tekście to mi też migał.
Tak, BASCOM podczas CLS wykonuje także inicjalizacje wyświetlacza - a to trwa kilkadziesiąt milisekund.
A jak mam to zrobic w bascomie????
janbernat : próbowałem już w różnych konfiguracjach podłączyć diodę do nogi portB.1 zmieniając również konfigurację wszystkich portów B na input, ale w każdym wypadku było tak samo przy prawidłowej polaryzacji diody lekkie świecenie i to wszystko. (próbowałem również na innych portach - to samo), sprawdzałem również na innym procku - to samo. sp3ots...
Dodałem krótki opis wyżej
zacznij od usuniecia elementów R1,C1 - one są potrzebne tylko przy 89cx051, przy 2313 uniemożliwiają mu pracę.. po za tym proponuję w pętlę wpisać jakieś opóźnienie np. waitms 500 np. Do Portb.4=0 waitms 500 Portb.4=1 waitms 500 Loop End i dioda powinna migać
Pomyliłem się, nie zrobisz PWM na T0 gdyż bascom wykorzystywał wraz z int0 (nadal tak jest ?) go w getrc5. Generalnie można spróbować zastosować bardziej wyposażony uP.
Tyle że w tamtych czasach programy pisało się w czystym assemblerze i ludzie bardzo dużo przy tworzeniu zadawali sobie pytań "a co się stanie gdy..." gdzięki czemu powstały takie rzeczy jak interlace na C64 i wiele wiele innych. A dzisiaj jest C albo jeszcze lepiej BASCOM i miganie diodą zajmuje 2kB kodu a do tego remedium na problemy to: "skorzystaj...
Jesteś pewien co do tych 10ms? Tak szybkiego migania nie zauważysz. Daj co najmniej 200ms.
Tak jest pisany w Bascom. Tu też kompiluje plik do .hex.
Czy autor potrafi napisać jakikolwiek program w Bascomie? Na przykład miganie diodą. Jak jest podłączony moduł BT do mikrokontrolera?
No i tu właśnie obsługa przerwania zakłóca komunikację 1W. Jeśli wyłączę przerwania na czas odczytu/zapisu DS-a to wyświetlacz miga. Bascom chyba nie pozwala na takie zagłębienie się w procedury zapisu/odczytu 1W aby można było zrobić to po swojemu.
A w ogóle to zamiast CLS lepiej użyć Locate. LCD będzie mniej migał.
Witam, mam problem gdyż potrzebuję w tym samym czasie zmieniac wartość pwm wszystkich 4rech wyjsc i zmieniac stan 2 wyjsc... Sprawa wyglada nastepująco: 2 diody gasna 2 zapalaja się a w tym czasie jeszcze 2 mają migać co 2 sekundy... Z programowania dobry nie jestem... narazie udalo mi sie napisac programy które robią te czynności ale nie jednoczesnie......
Tu jest błąd: Config Portd.4 = Output Jesli konfigurujesz pojedyncze piny to nie PORT a PIN. Czyli: Config Pind.4 = Output
Witam Zainstalowałem naroście nową wersję BasCom 2.0.8.6 wgrałem i nadal problem nie ustał. Ale fajnie przerobiłeś mój programik ! Tak naprawdę to na razie napisałem taką wersje testową jak będzie wszystko działać ok to go uporządkuje. Jeżeli wyrzucę wszystko z programu i zostawię samą regulacje fazową i np. Poziom =5 to żarówka nie miga . Dziwny ten...
Witam. Zamiast instrukcji CLS użyj Home Wtedy wyświetlacz nie będzie migał. Krzysztof
jeśli chcesz żeby dioda mrugała kiedy wynik pomiaru z DSa jest niepoprawny to wyrzuć po prostu pętle Do...Loop z tego warunku If Stan=1. Skoro wszystko jest i tak w pętli głównej to dioda będzie migać jeśli wynik będzie 85, a jeśli inny to przestanie migać.
Witam, czy chodzi o wewnętrzną pamięć czy o zewnętrzną na I2C? W obu przypadkach bascom dobrze sobie radzi z ich obsługą, więc od tej strony nie powinno być problemów. Co do wyświetlacza, to też nie będzie niespodzianek z opóźnieniem w wyświetlaniu, lub miganiem tekstu.
Wbrew pozorom najłatwiej będzie zrobić to na małym mikrokontrolerze ;-) Procesor, rezystor, dioda, 10 linijek w Bascomie i miga jak sobie tylko zażyczysz.
Bez kodu programu ciężko będzie coś powiedzieć.
Od pierwszego programu do obsługi wyświetlacza daleko. Bascom jest prostszy niż C++ ale ma znacznie mniejsze możliwości. Na początek chyba lepiej pobawić się diodami. Programy typu włącz-wyłącz, miganie diody itp. To pomaga w zrozumieniu działania mikrokontrolera (przynajmniej ja tak zaczynałem).
Witam. mam klopot z odpaleniem czegokolwiek na tym CPU... do tej pory bawilem sie 89c51 itp... i bylo ok. pytanie , prosba krok po kroku od napisania prostego softu do odpalenia procka... zalozmy, ze chce by migala diodka na porcie PA bit powiedzmy 2 czyli potrzebujemy uzyc funkcji set i reset ale dlaczego po skompilowaniu programu i wgraniu w procesor...
robusta a mozesz podzielic sie zdobyta wiedza na temat pwm np na 90s2313???
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
Mogłbym Ci pomóc z C, ale BASIC to nie moja działka.
właśnie czytam o tej instrukcji if then i nie wiem czemu nie działa niby ma wykryć stan niski i kikla razy zmienić stan pinu c 5 a nie chce taki przykład był w książce na diodach ze jak nacisne to kierunek zmienia a ja to pzrerobiłem ze ma migac a nie miga
to niech migają wszystkie na raz :P
Mam jedno pytanie: Czy ten kod, który próbujesz kompilować, ma wyglądać tak:[syntax=basic4gl] Config Pind.0 = Output Led_open Alias Portd.0 Dim Zawor As Byte Dim Miganie As Bit Led_open = Not Zawor.1 And Miganie [/syntax] Czy tak: [syntax=basic4gl] Config Pind.0 = Output Led_open Alias Portd.0 Dim Zawor As Byte Dim Miganie As Bit Led_open = Not Zawor.1...
Witam, Jakim kwarcem kolega popędza ten układ? Podłącz diodę led do portu (przez rezystor) i migaj nią co 1 sekundę (programowo). Wtedy będziesz miał pewność, że procek popędzasz takim zegarem jak zadeklarowałeś.
Pokaż cały kod.
Moim zdaniem poprawna droga, to najpierw nauczanie się C normalnie na komputerach ... Idąc tym trybem niech najpierw spróbuje nauczyć się BASCOMA na komputerze - powodzenia! Innymi słowy, co za różnica, czy będzie uczył się C zapalając diody na AVR czy wyświetlając cyfry na ekranie komputera? W czym pomoże mu uczenie się pętli FOR na ekranie kompa,...
A jak w ogóle wyglądają światła awaryjne w takim aucie? Migają normalnie, czy też wężykiem?
Od migania diodą.
Wsatw sobie polecenie Wait 1 w pętli głównej to przestaną migać jak szalone ;)
Zrobiłem pokazany na tamtej stronie program ale nie wiem jak np. z pozycji 1.3 po 1 naciśnięciu przycisku Esc opuścić menu. Jeśli nacisnę 1 raz przechodzę do 1.1. Muszę nacisnąć go 2 razy aby opuścić menu. Nie potrafię także pozbyć się pętli na poziomie 1 i efekt jest taki, że wszystko miga.
Najpierw napisz jakiego to typu ma być STROBOSKOP. Strobów jest kilka rodzai.
Przecież napisałem Wyrzuć "set portb.1 " przed pętlę główną
Wiem, że Bascom to przeżytek jak koń Pawlaka, ale mam płytkę AVT 3500 oczywiście z programatorem. Działało to dobrze z plikami bas z książki p. Góreckiego. Teraz, mimo, że da się zaprogramować , dostaje komunikat: "Can not set clock frequency..." Wynik jest taki, że programiki działają, ale wyświetlacze LED migają. Czy może to być związane z kwarcem...
Po zmianie sposobu zasilania na: http://obrazki.elektroda.pl/6418445600_1... i ponownym zaprogramowaniu procesora nie zmieniło się nic. Dalej dioda nie miga.
Dlaczego chcesz odczytywać czas w przerwaniu? Przerwanie powinno być jak najkrótsze. Odczyt danych z pcf-a zrób w pętli głównej a przerwanie wykorzystaj tylko do migania kropką.
atmel + bascom:) Może jakieś programowe PWM i funkcja random:)
z portu com przejściówki. Zamówiłem teraz wersje KONWERTER FT232RL,FT232,FTDI,USB-RS232 mam nadzieję że będzie ok, A może wiesz jak sprawdzić czy procesor się nie wiesza?? chodzi mi o dopisanie czegoś do kodu co jeżeli by zawiesiło procesor to by dało efekt, myślałem nad czymś takim aby, w pętli głównej dodać miganie diody, więc jak by procek się zwiesił...
Jeżeli mogę doradzić to najpierw poucz się assemblera. Bedzie to kosztowało trochę cierpienia ale na jaki byś później język sie nie przerzucił to docenisz znajomość assemblera. Zawsze Ci się przyda. Druga rada jeżeli myślisz przyszłościowo a nie tylko zrobić miganie diódek i zamknąć sprzęt w szufladzie to zapomnij o bascomie. C wcale nie jest takie...
Uszkodzony tranzystor? Tranzystor NPN? Uszkodzona dioda? Dioda wlutowana odwrotnie? Podłącz zwykłego LEDA białego lub niebieskiego przez opornik 470Ω do wyjścia uC i zobacz czy miga.
ewentualnie spróbuj włączyć kursor i miganie (w bascomie) wtedy wyróżnisz cyfrę.
Problem rozwiązany poprzez właściwe ustawienie fuse bitów
W pętli głównej DO...LOOP daj LOCATE 1,1 jak sugeruje pixel7. A dioda-czy miga czy układ "żyje"?
To w takim razie ja mam cos przestawione w opcjach, lub w sause bitach ;( tylko co ?
Dopytam czy czytałeś instrukcję i zainstalowałeś sterownik pod Bascom/libUSB/Avrdude? No i czy zmieniłeś mode tak by programator migał cztery razy a nie dwa? Co ciekawe, z najnowszymi sterownikami na tym mode gdzie miga cztery razy działa mi ten programator także w Atmel Studio.
Do tej pory pisałem w BASCOM 8051 i nie miałem prawie żadnych problemów, np: Do Set P3.1 Waitms 50 Reset P3.1 Waitms 50 Loop Powoduje ładnne "miganie" portu. Odpaliłem BASCOM AVR-demo i za nic w świecie nie mogę zmusić portów do jakiejkolwiek współpracy. Próbowałem podręcznikowych przykładów i w symulatorze nic to nie daje. mam 2 ATMEGI8 i coś chciałem...
Troszkę dziwnie wygląda ta pętla główna, ze zmienną "corobic" :) Mogłeś dać po prostu w do-loop wywołania kolejnych procedur i jedną pauzę np. 1 sek. Do tego w procedurze wyświetlania dajesz CLS - nie przeszkadza Ci miganie ? Spróbuj dodać na początku dyrektywy ustalające stos : $hwstack = 32 $swstack = 32 gdyż używasz GOSUB. Może pomyśl o procedurach...
miganie bascom bascom miganie diodami miganie wyświetlacza bascom
klawiatura labtec świetlówka świeci słabo huawei echolife hg8245h
kontrolkę poduszki powietrznej pralka electrolux panel sterowania
Opis kostek siedzenia BMW 6 Grand Coupe Schemat zasilacza impulsowego półmostek 230V/24V 4A na IR21531