A nie lepiej byłoby wykorzystać PWM? Wtedy można dosyć precyzyjnie ustalać częstotliwość na wyjściu, oczywiście ustawionym w tryb Toggle... Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Toggle , Prescale = 8
Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
no raczej działa nawet w następnych cyklach. sprawdz jeszcze to $regfile = "m8def.dat" Config Pinb.1 = Output $crystal = 1000000 Config Timer1 = Timer , Prescale = 64 Config Timer0 = Counter , Edge = Rising On Timer1 Odmierz_1s Dim Licz As Byte , I As Byte Enable Interrupts Enable Timer1 Start Timer1 Timer1 = 65535 - 15625 Do Loop End Odmierz_1s:...
Ten kod to tak dawno napisany że wiele by można w nim poprawić. Jednak działa i też dawno temu dochrapał się wersji przenośnej, bateryjnej, na Mega8 albo coś podobnego (nie pamiętam). Służy dzielnie do różnych zadań. Można symulować czujniki Halla w autach i podobne rzeczy :D http://obrazki.elektroda.pl/2071243700_1... Co do przeróbki...
Zumek -- dzięki za wskazówki ale niestety w moim procesorze nawet po ustawieniu Timer1 na 65492 max. częstotliwość jaką udaje mi się osiągnąć to ~16KhZ. Może tak: (Nadal w Bascomie , choć nie całkiem w Basicu) $crystal = 4000000 Config Portb = Output Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle On Compare1a Introc1a Nosave Timer1 = 0 Compare1a...
zacznijmy od tego, ze kod umieszczamy w klamrach Dodano po 10 to jest kod na jedna sekunde $regfile = "m8def.dat" $crystal = 8000000 Config Pind.7 = Output Portd.7 = 0 Przekaznik Alias Portd.7 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 31250 Do Loop End Sekunda: Load Timer1 =...
Witam, Polecenie SOUND port , il_impulsów , czas_impulsu To mi nie pomoże. Jako argument chcę podać potrzebną częstotliwość (liczba), a nie ilość impulsów i czas impulsu... Jeżeli znasz częstotliwość to nie problem określić ilość impulsów i czas trwania, ale ta funkcja jest mało precyzyjna. Lepiej wykożystać do tego Timera: $crystal = 4000000 Pwm1a...
Powiedz mi skąd u ciebie wektor przerwania wynosi 10 ? Czy to jakis Egzotyczny procesor czy jak ? Bo dla przerwania Timera 0 dla normalnego uK jest to inna wartość Patrz np Atmel strona http://www.atmel.com/dyn/products/tools_... C51 Timer1 in Mode 1 with Soft Gated Timer (20 KB, updated 06/04) /** * FUNCTION_PURPOSE: timer1 interrupt...
Kolego patrzę na ten kod ze zgrozą, ale załadowałem do swojego Bascoma i trochę więcej zrozumiałem bo mozna sprawdzać referencje i skakać po kodzie. W przerwaniu co osiem taktów (nierealne) timer ma zliczać te twoje "niby" OCR. (Incr Licz_timera1 : If Licz_timera1 >= Ooo Then) Te OCR jest ładowane z tabeli gdzie najmniejsza wartość to 127 a najwieksza...
Poniżej mój testowy program w bascomie. Procek m8, wew. zegar 8 mhz. Testowałem na nikon D80 - działa OK. ' PILOT NIKON ML-3 ' ZEGAR 8 MHZ Dim I As Word Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1 Config Portd.5 = Output Reset Portd.5 Compare1a = 100 Enable Interrupts Disable Timer1 Reset Tccr1a.com1a0 '***************************************...
Działa ;-) Ustaw Breakpoint na linijce (prawy myszy Toggle Breakpoint) [syntax=avrasm]com LED[/syntax] naciśnij F5 (Run) jak zatrzyma się na Breakpoint wykonaj kod przerwania krokowo F11 naciśnij F5 (Run) jak zatrzyma się na Breakpoint wykonaj kod przerwania krokowo F11 itd. Zamiast 15625 ładuj do OCR1A 15624. Wieczorem wrzucę inny sposób migania tym...
Witam Też się męczyłem jak zrobić sprzętowo bez żadnych przerwań generator około 36 kHz i 40 kHz. Polecam książkę Pana Piotra Góreckiego "Mikrokontrolery dla początkujących" (oczywiście o Bascomie). To naprawdę jest to jedno z nielicznych źródeł gdzie rzetelnie są rozpisane funkcje Timer1 po polsku. Właśnie testowałem układ Pana Góreckiego na At90S2313...
Ok rozumiem. Spróbuj tego. Użyte przerwanie. Można też zrobić bez zależnie od potrzeb. $regfile = "m8def.dat" $crystal = 8000000 Dim Zmienna As Word Dim A As Bit Config Pinb.1 = Output Config Pind.2 = Input Set Portd.2 '============ definicje timera ================================ Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect...
To trzeba zmienić priorytet z 12 bitów stałokodowego pilota na odbiór HCSa lub całkiem usunąć obsługę pilota 12 bitowego. może tak: [syntax=vbnet]'*************************... '========================= przerwanie przy kazdym zboczu ICP, odczyt czasu trwania impulsu...
Chwile sie pobawiłem i zastanawiałem sie czemu mi zle działa dioda podpięta do PORTB.3 a to jest związane z OCR1A dlatego zle działała. Nie dlatego, nie ma tu żadnego związku. OCR1A jest to wpis do rejestru, który służy do określenia górnej granicy (TOP) do jakiej ma liczyc Timer1 co odpowiada upływowi czasu tu akutat 1 sec., zaczym się wyzeruje. Jeżeli...
kurcze mi nie wychodzi :| timer chodzi co 1s ale reszta do kitu Dodano po 25 program chodzi :) oczywiscie musisz go przerobic na wlasne potrzeby dodac tyle ile chcesz przekaznikow i zmienic czasy w programie bo tam jest 10s i 40s ten program jest przygotowany pod ATmega8 i kwarc 8MHz $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0...
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
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...
Niestety schemat mi nie pomógł. Ależ pomógł, bo nie znalazłeś w nim żadnych zależności dot. kasowania timera przy jego wyłączaniu poprzez ustawienie preskalera zero. Jest to logiczne, ponieważ gdyby licznik timera był automatycznie kasowany, to zmniejszałoby jego możliwości, bo nie można byłoby go "puścić dalej" Schemat preskalera pokazuje natomiast,...
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
'$sim $regfile = "m8def.dat" $crystal = 8000000 'Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portb.1 , Db5 = Portb.2 , Db4 = Portb.3 , E = Portb.4 , Rs = Portb.5 'Config Pinb.3 = Output Config Portb = Output 'Config Timer2 = Timer Prescale = 1 , Compare = Toggle , Clear Timer = 1 Enable Interrupts Ocr2 = 102 Tccr2 = 25 'Enable Timer2 'Enable...
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 =...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...
Wchodzisz na stronę https://www.mcselec.com/ i po lewej przycisk Updates. Logujesz się i ściągasz cały plik instalacyjny. Była jakaś przerwa w tych aktualizacjach, ale teraz nowe wersje już da się później aktualizować z poziomu programu. Post wyżej wrzuciłem wersję juz skompilowaną pod 2086. To dlatego że coś tam było w międzyczasie poprawiane w konfiguracji...
Nie widzę żadnych grubych błędów w tym kodzie, ale może czegoś nie dostrzegam, dziwi mnie tylko że próbujesz coś robić z timer1 w BADISR. BADISR to przerwanie które nie powinno się wykonać, ale się wykonało bo przypadkiem włączyliśmy przerwania od jakiegoś peryferium, a nie napisaliśmy jego obsługi, więc robi się tam obsługę błędów. Nie rozumiem też...
Witam. Znalazłem coś innego i po modyfikacji działa jak powinno . Przypisany jeden klawisz pod PB.2 wysyłający LewyALT + Q. Jest też zmiana u gnieździe usb D- PD.3 na PD.4. [syntax=vbnet] 'Author : Rick Richard 'www : http://www.sloservers.com/swusb 'Created : Jul 29, 2009 'Version : 1.00 '***************************************...
Dzień dobry, zmagam się już z tym problemem od kilku dobrych popołudni, a zatem chcę napisać kod, który będzie uruchamiał tryb PWM korzystając z timera1 na dowolnym pinie w mikrokontrolerze STM32F303RE i nijak mi nie chce to zadziałać. Próbowałem już wielu rzeczy i nie wiem, co jest nie tak (zrobiłem to tak, jak jest w dokumentacji napisane, aby zrobić)....
Witam od 2 godzin draże problem i już troszkę jestem bezradny. Sprawa tyczy się procesora jak w temacie czyli ATmegi169 i Timera1 w niej. Chcę wywołać najprostsze przerwanie po przepełnieniu i żadnym sposobem mi się nie udaje. To że wszytko jest poprawnie testuję tak ze po podmienieniu w kodzie 1 na 0 (zmiana z timera1 na timer0) wszytko zaczyna ładnie...
Pętla ma być. gdy Timer1 się przepełni następuje skok do podprogramu. Ale czy to dobra częstotliwość?? Enable Interrupts Enable Timer1 Load Timer1 = 276 Set Portd.0 Do Loop End Proced: Load Timer1 = 276 Toggle Portd.0 Return Podprogram ma nazwę [Proced:] - gdzie masz do niego odwołanie ?
Pracuję nad nietypowym PWM jeśli można użyć takiego zwrotu na Atmedze 16. Problem polega tym że mam do dyspozycji 2 potencjometry. Jednym chcę regulować czas trwania logicznej 1 a drugim potencjometrem czas trwania logicznego 0. Czasy obu sygnałów regulowane w przedziale 0,05ms - 5ms. Poniżej próbny program. Ponieważ są to początki nauki Bascoma to...
Witam :) Źle inkrementujesz "Licznik" ... 'jest ... Skocz: Incr Licznik Toggle Portd.4 'CLK Timer1 = Timer1 + 65535 ... '... powinno być Skocz: Toggle Portd.4 'CLK If Portd.4=0 Incr Licznik End If Timer1 = Timer1 + 65535 Return ... 'Coś zeżarło przecinki Litera_a: Data 1 0 1 0 0 0 1 1 1 'Po wysłaniu 9 bitów trzeba zatrzymać Timer1 , by nie...
Udało mi się! 'Przykład generowania fali prostokątnej niezależnie od CPU 'procesor AT Mega8 'zegar wewnętrzny 1 MHz 'piezo pomiędzy PB.1 a +5V 'UWAGA!!!, ATMEGA8 ma domyślnie załączonego Wachdoga!!!. Trzeba wyłączyć bezpiecznik!!! $regfile = "m8def.dat" $crystal = 1000000 Dim I As Byte Ddrb.1 = 1 'port b.1 wyjściowy '---------------------------------------...
Witam , mam problem z uruchomieniem timer1 przez sam rejestr , programowo ok ale potrzebuje jak najwyższą częstotliwość na wyjściu (fusebit omijamy ,ten temat znam) . Jeśli chodzi o tmer0 to ok ale również chodzi o podział większy niż 8 bitów np.16554 , ale również przy najmniejszym podziale jak największa częstotliwość . Korzystałem ze strony [url=http://lx-net.pl/hr/gen1/gen1.html]...
Raz są zgodne raz są w przeciwfazie. A nie zależy to przypadkiem od stanu początkowego pinu? Config Timer1 = Counter , Prescale = 1 , Compare_A = Toggle , Compare_B = Toggle , Clear_Timer = 1 Nie znam baskoma ale toggle o tym mówi.
Witam. Jestem poczatkujacym dlatego proszę o błachostkę. Buduje ups-a / przetwornice trafo z starego ups-a a generator 50hz ... Niema dlatego wybor padl na atmege 8 i timer1. Czy ktoś co coś jarzy mógłby mi to sprawdzić ? Byłbym wdzięczny . Oto kod : $regfile = "m8def.dat" 'atmega 8 $crystal = 8000000 '8 mhz 'INNE KONFIGURACJE Config Timer1...
Witam kupiłem ostatnio nadajnik i odbiornik ultradźwiękowy, dziś się męczyłem próbowałem to uruchomić no ale niestety nic z tego nie wyszło, najprawdopodobniej to wina programu. To chyba coś nie tak z ustawieniem komparatora. Proszę o pomoc. http://obrazki.elektroda.net/27_12249746... Config Portc = &B0000000 Portc = &B0000000 Config Portb...
Dzień dobry, Chciał bym zrobić sobie prosty oscyloskop tyle że z wykorzystaniem uC Atmega8. Czy mógł by mi ktoś przetłumaczyć poniższy kod na język Bascom, lub chociaż objaśnić jego działanie? Kompletnie nic z tego nie rozumiem... Za przetłumaczenie na język Bascom oferuję 500pkt
Oki, ale mam to umieścić w programie w pętli If then zależnej od przycisku ? [syntax=basic4gl]If Portd.0 = 0 Then Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1 If Portd.1 = 0 Then Config Timer1 = Timer , Prescale = 8 , Compare A = Disconnect , Clear Timer = 1 [/syntax]
"Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1" Przy tej konfiguracji to chyba nigdy nie wejdzie w przerwanie od Timer1. Gdy osiągnie Compare1a = 600 to dzięki poleceniu Clear Timer = 1 licznik zostanie wyzerowany. A przerwanie Poz: jest uruchamiane dopiero po przepełnieniu licznika. Ale ja nie mam zaufania do konfiguracji...
Napisałbyś po polsku co chcesz osiągnąć...bo ja nie rozumiem od początku. Poniższy kod bez udziału mikrokontrolera będzie togglował na Twoim upragnionym pinie. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 16000000 Config Timer1 = Timer , Prescale = 1 , Compare_a = Toggle , Compare_b = Disconnect , Clear Timer = 1 Compare1a = 1 Do nop Loop End[/syntax]
Moim zdaniem najsensowniejsze rozwiązanie: Licznik-czasomierz TIMER1 posiada także dwa 16-bitowe rejestry – COMPARE1A (para OCR1AL i OCR1AH) i COMPARE1B (para OCR1BL i OCR1BH), służące do porównywania zawartości licznika. Kiedy zawartość licznika zgadza się z zawartością któregoś licznika, wywoływane zostanie przerwanie OC1A lub OC1B a stan odpowiedniej...
Dzięki za kalkulator i wyjaśnienie Napisałem kod z timer1 do odmierzania odcinków czasu po 10 sekund. 10 sekund świeci led i następne 10 sekund nie świeci i tak w kółko. Oto kod: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Pind.0 = Output Const Timer1 Reload = 9765 Config Timer1 = Timer , Prescale = 1024 Load Timer1 , Timer1 Reload...
a więc przy takim kodzie: $regfile = "M32Def.dat" $crystal = 16000000 $hwstack = 256 $swstack = 128 $framesize = 128 '---------------------------------------... Dim Timer1_licznik As Byte Dim Buffer(256) As Byte At 256 Dim Write_position As Word Dim Read_position As Word Dim S As String * 36 Dim...
np tak : Config Timer1 = Timer , Prescale = 1024 Timer1 = 0 Start Timer1 Enable Interrupts On Timer1 sterowanie_led do ..... loop sterowanie_led : Toggle Led1 return
Witam, Atmega 8, Timer1. Prosty generator: przerwanie od timera1 ze skróconym cyklem, pętla główna pusta, w przerwaniu zmieniam stan portu. Niby proste... Oto kod: http://obrazki.elektroda.pl/8467182600_1... Są to regularne skrócenia cyklu z 1.085ms na 0.6355ms. Proszę o wyjaśnienie co to jest i jak sie tego pozbyć?
Witam, Nie będę zakładał nowego tematu. Mam podobny problem. Atmega 2560 + 16Mhz. Przy tym ustawieniu timera przerwanie powinno być generowane co 0,5s. Natomiast jest generowane co 1s. 256/16000000= 16us*65536=1,048576s 65536-31250=34286 co daje 0,5s [syntax=basic4gl] $regfile = "m2560def.dat" $crystal = 16000000 Config Portg.5 = Output : Portg.5 =...
tak właśnie podejrzewałem że bascom nie lubi operacji z dokładnym czasem.Zmiana polecenia z Toggle na not nic nie zmienia.Pozostanie przy sprzętowej generacji.Mam tylko jeszcze jedno pytanie,bo fala którą generuje to będzie nośna dla pilota SIRC.I teraz przy włączaniu i wyłączaniu T1 raz zostaje stan wysoki ,a raz niski na PB1. Na razie załatwiłem to...
Niestety u mnie te przerwania są "zawalone". Nie było to do tej pory problemem, bo użycie uarta nie było przewidywane do "poważnych celów". Niestety na razie nadal jest źle... Popatrzę, czy jest możliwe przesunięcie "prac" z timera1 - bo to on pewnie jest źródłem nieszczęścia, jako że jest wywoływany 1000 razy na sek. A jest mocno obciążony; Oto jego...
Fajny ten kalkulator...tylko skomplikowany. sie przyda. Teraz może dalej te timer'y ,Czy tak uzyskam PWM na Pinb.0 o częstotliwości zależnej od wyniku ADC? Jak już męczyć tajmery to tak żeby je troche znać... Config Portb = &B11111111 'Portb.0 ma być wyjściem Config Timer1 = Timer , Prescale = 1 Enable Interrupts : Enable Timer1 On Timer1 Gen Dim...
bascom toggle toggle button toggle switch
zmniejszyć sygnał wejściowy brotje opinie silnik krokowy sterownik amper
electrolux mruga start konkurs napisz pierwszą
Radio w Mercedesie W210 2.4 V6 gaśnie przy ruszaniu Brak pracy pilarki elektrycznej Makita - przyczyny