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...
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...
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....
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
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ć.
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
U mnie twój program działa bez problemu :D . Może to wina zakłóceń.
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
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...
Poczytaj kilka artykułów na temat :) PORTx nadajesz stan PINx odczytujesz stan końcówki.
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.
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 :/
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
dalej wyświetlacz miga
Proszę.Diodę podłącz między PORTB.2 a GND,powinna migać co 1s.
Czy da się wysterować portami poza do .... loop by np: pod tymi portami migały ?
ale przeciez to tylko dodaje wartość histerezy wczesniej tego nie miałem i tez migało
[syntax=basic4gl]while a=1 x++ if x==100 zapal led if x==200 zgas led x=0 waitms 5 wend zgas led[/syntax]
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...
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...
Dzięki. Uruchomiłem ponownie komputer i avrdude wgrał a dioda miga.
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.
Może jest włączony sprzetowy podział sygnału zegarowego przez 8 i dlatego diody (zauważalnie) migają.
Za pomocą np sprzętowego SPI, lub ręcznie sterując pinami jak przy miganiu diodami.
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.
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.
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ć.
Jak miałem "delay" na wyświetlanym tekście to mi też migał.
Wypróbowałem już kilka opcji i niestety dalej migają.
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 ?
komenda cls przed wyświetlaniem odczytu z ADC spowoduje miganie LCD
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...
Podłącz testowo do PC.0 leda, to powinno wyjaśnic sprawę.
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
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
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.
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...
A w ogóle to zamiast CLS lepiej użyć Locate. LCD będzie mniej migał.
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"...
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...
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ć
Witam. Może liczyć źle piny. Pomigaj całym portem A
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...
Co to znaczy że 'miga'?
Witam. Zamiast instrukcji CLS użyj Home Wtedy wyświetlacz nie będzie migał. Krzysztof
Tu jest błąd: Config Portd.4 = Output Jesli konfigurujesz pojedyncze piny to nie PORT a PIN. Czyli: Config Pind.4 = Output
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...
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.
W bascom 8051 nie trzeba deklarować czy P1 to wej. ,czy wyj. (zresztą sie nie da) ,opcja dostępna dopiero w bascom avr.
A jak mam to zrobic w bascomie????
Po zmianie sposobu zasilania na: http://obrazki.elektroda.pl/6418445600_1... i ponownym zaprogramowaniu procesora nie zmieniło się nic. Dalej dioda nie 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.
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...
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.
Wsatw sobie polecenie Wait 1 w pętli głównej to przestaną migać jak szalone ;)
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ł...
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...
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.
Jesteś pewien co do tych 10ms? Tak szybkiego migania nie zauważysz. Daj co najmniej 200ms.
to niech migają wszystkie na raz :P
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ą.
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...
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.
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...
ewentualnie spróbuj włączyć kursor i miganie (w bascomie) wtedy wyróżnisz cyfrę.
A jak w ogóle wyglądają światła awaryjne w takim aucie? Migają normalnie, czy też wężykiem?
Tak jest pisany w Bascom. Tu też kompiluje plik do .hex.
Od migania diodą.
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
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.
a nie 100µF :?:
On ma to już napisane i to będzie działało jak trzeba: [code]If Portd.7 = 0 Then Set Portd.7 Else Reset Portd.7 End If[quote] Ja polecam jednak: [code] na początku poprawnie: config portd.7 = output i w pętli programu wpisane toggle portd.7 [/code] Nie zapomnij o Wait 1 lub podobne po toggle bo led będzie ci za szybko migał.
Najpierw napisz jakiego to typu ma być STROBOSKOP. Strobów jest kilka rodzai.
gg: 2567890 Programów setki testowałem - od ponyproga, po dosowskie, az na basscomach wszystkich - jednakze nie ustawialem tego 200/300 niestety, pisze, ze nie znaleziono stk200/300 mimo tego, uruchomilem opcje programowania procesora, dioda na 'donglu' miga, ale bascom stoi - tzn, caly czas pisze writing rom, ale nie ma postepu.... Scalone z 4 po kolei...
Nie mam, ale to żadna filozofia raczej... Zajrzyj do noty jakiegoś rejestru SIPO, np 74595. Reguła jest taka, że wrzucasz na taki rejestr jedną "jedynkę" i przesuwasz ją aż na sam koniec linii, po czym wrzucasz kolejną "1". Rejestry możesz łączyć szeregowo, tj. z ostatnie wyjście rejestru podajesz na wejście kolejnego. Sygnał zegarowy wszystkich rejestrów...
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ł...
Dodałem krótki opis wyżej
Pokaż cały kod.
Czy autor potrafi napisać jakikolwiek program w Bascomie? Na przykład miganie diodą. Jak jest podłączony moduł BT do mikrokontrolera?
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ś.
Pewnie WatchDog powoduje reset. Nie masz pętli głównej. Wprawdzie masz "End" ale nie tak powinien wyglądać program. Rozumiem że to prosto z Helpa ale ja bym to zmienił.
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).
Problem rozwiązany poprzez właściwe ustawienie fuse bitów
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...
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,...
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...
W pętli głównej DO...LOOP daj LOCATE 1,1 jak sugeruje pixel7. A dioda-czy miga czy układ "żyje"?
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......
Gwarantuje ci że działa tyle tylko że timer przepełnia ci sie po około 0,1ms policz sobie jaka to częstotliwość. Nie ma najmniejszych szans żebyś gołym okiem zauważył jak miga dioda na PD0.
zwarciem zasilania nie miales prawa uszkodzic wlasciwie to operujac napieciem 5V mozesz na chwile kazde wyprowadzenie zewrzec zarowno do + jak - nigdy mi nic nie padlo , dlaczego nie napiszesz prstego programu na miganie LED? w bascom : $regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output Do Portb = 255 Wait 1 Portb = 0 Wait 1 Loop End
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...
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...
Bez kodu programu ciężko będzie coś powiedzieć.
Witam, właśnie mam problemy z właściwą rozdzielaniem funkcji i programy mi nie śmigają. Program nadajnika: Do If S5 = 0 And S4 = 0 Then Komenda = 1 Print Komenda ; Moc End If If S6 = 0 And S3 = 0 Then Komenda = 2 Print Komenda ; Moc End If ... Założenie jest zrobienie komunikacji między 2 mikrokontrolerami przy użyciu modułów BTM-222. Moduły skonfigurowane...
No widzisz, zawsze tak robię, nawet przy skomplikowanych projektach. Na płytce jest wiele innych rzeczy, m.in RTC i zasilanie do niego. Te 2 elementy po lewej stronie uC to są przyciski do ustawiania godziny. I nie mam zwyczaju osobnego nazywania każdego elementu, także na płytce jest "lekki" chaos... :| (at)tronics: docelowo ma tam być wyświetlana...
Robiłem, ale wtedy dioda miga a nie płynnie przechodzi:-)
Mogłbym Ci pomóc z C, ale BASIC to nie moja działka.
bascom miganie bascom miganie diodami miganie wyświetlacza bascom
rozruch transformatora monter elektronik prawego światła
pralka indesit kabel internetowy uziemienie
Czy warto kupić używanego Golfa IV 1.9 TDI 130 KM z 2003 roku? Epson: Drukowanie Odbitek Fotograficznych w Paski