Tak odpal helpa zajrzyj do config timer i tam będzie przykład;)
Poi pierwsze. Do BASCOM-a jest pomoc - także po polsku, której to zresztą jestem autorem. Wersję on-line (beta) znajdziesz na mojej stronie WWW. Jak one działają? Zliczają impusy. Albo z prescalera, albo z zewnątrz. Patrz nota katalogowa. W którą stronę zliczają? Zwykle liczą w górę. W trybach PWM liczą też w obie strony. Patrz nota katalogowa. Jak...
W przykładzie AN157 jest Tikers: 'work on timer Timer0 = 253 u Ciebie jest Timer0 = 255
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...
Obejdzie się bez kwarca zegarkowego. Zajrzyj do Samples w katalogu Bascom-AVR i przećwicz przykłady z timerami. Sam dojdziesz do tego, jak to zrobić. Powodzenia - teedd
20 prostych projektów dla elektroników Timer 555 w przykładach Czasopismo Elektronika dla Wszystkich na płytach czy książki poświęcone mikrokontrolerom avr lub pic -przykładowo (jest ich dużo) Programowanie mikrokontrolerów AVR w języku Bascom Mikrokontrolery PIC 16F. Przykłady w C dla początkujących opisy książek znajdziesz w internecie.
Widzę że muszę trochę sprostować. 1. Nawet kosmicznie często wywoływane przerwanie zdąży się wykonać choć by nie wiem jak długo ono trwało, bo przerwania po wejściu w obsługę jakiegoś przerwania są blokowane i odblokowywane są dopiero po zakończeniu się obsługi tego przerwania. Więc twierdzenie że przerwanie nie zdąży się wykonać w ciągu 128us bo samo...
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...
Szukam teraz zmiennej którą mógł bym to zrobic ale widze tylko takie które odpowiadają za wyświetlanie znaków na lcd, i funkcie matematyczne. podejrzewam że zmienna ma w jakiś sposób odczytywac wartośc licznika z timera? Mógł byś podac dokładniejsza nazwę tej zmiennej lub przykład?
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
Jakoś nie widzę żebyś tu korzystał z przerwania od Timera... Bo nie musisz ;p mogłbyś pokazać jakiś przykład obsługi przycisku w przerwaniu timera ? Nawet jakiś URL do innego projektu. Więc chyba oczywistym jest że ten fragment kodu należy umieścić w przerwaniu od Timera.
E tam, nic strasznego.... Tu masz błąd: Dim U_wy As String * 2 Zwiększ to na: Dim U_wy As String * 3 I leci aż miło. Nie mieścisz się w zmiennej, that's all:) Poza tym skonfiguruj watchdog oraz TIMER. Pewnie jeszcze coś tam siedzi (wyświetlanie bez wymazywania poprzednich, większych o rząd wartości na przykład) ale to tak na szybko. Pozdrawiam, TD
Czyli zwykły prosty miernik częstotliwości z jej porównaniem przy pewnej wartości - bez problemu się to na jednym timerze realizuje... Zobacz tu: [youtube]http://www.youtube.com/watch?v=... Złapałem tym nawet 40tys. obr/min :) Co prawda to przykład na attiny44, bo obsługa wyświetlacza i takie tam duperele zabierają jednak piny i pamięć...
W uproszczeniu częstotliwość sprzętowego generatora PWM to następująca zależność: F oscylatora / Prescaler / X, i tak: dla rozdzielczości Pwm=8 bitów X=510, dla rozdzielczości Pwm=9 bitów X=1022, dla rozdzielczości Pwm=10 bitów X=2046. Przykład dla rozjaśnienia: F kwarcu = 8MHz, rozdzielczość generatora PWM=9 bitów (możliwe 8,9 i 10), Prescaler=8 (możliwe...
Dokładnie tak jak masz napisane, z tym, że konfigurujesz jeden z timerów do dliczania czasu. Przykładów w Bascomie z obsługą timera znajdziesz bez liku.
Trzeba skracać czas który Timer ma odmierzać. W tym trybie zrobisz to najłatwiej w przerwaniu. Zaraz pod "Obrot:" użyj jednej z komend Load albo Timer= Po prostu teraz Timer liczy od 0 do 255. Jak coś do niego wpiszesz to będzie liczył, na przykład, od 128 do 255 czyli krócej. Dodaj sobie potencjometr do układu i będziesz mógł sterować prędkością w...
Tak wiem że należy odpalić timer na początku i zatrzymać na końcu i odczytać jego wartość.. no nic. Dziękuję za wypowiedzi tak czy inaczej.. Odp. kol. Draco była troche sarkastyczna, bo na tak prostą procedurę nikt, kto ma choć troche rozeznania w tej dziedzinie chyba (!) nie szuka pomocy. Mopzesz to zrobić na kilka sposobów: 1. mierzyc czas metodą...
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
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...
Więc spróbuj skorzystać z funkcji ICP timera. Tu masz przykład: http://winavr.scienceprog.com/avr-gcc-tu...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Proszę o pomoc. Pierwsza zasadnicza uwaga to nie zauważyłem w programie konfiguracji interruptu0- coś np. takiego: config INT0=...
Ja sie właśnie bawie 2313 i 4433 i jednym z zadań jakie wykonuje procek jest odmierzanie czas. co sek przez 24h. Jest to oczywiści prymitywne rozwiązanie programowe. Niestety dokładność pozostawia wiele do życzenia, spieszy sie o 1 sek na 10 minut. ale to sie da poprawić, Pozdrawiam A programik pisałem w BASCOM
Witam W sumie bardzo prosto. Trzeba to zrobić na timerze. Przykład. $crystal=4000000 Config Portb.0 = Output : Wy Alias Portb.0 Config Timer0 = Timer, Prescale = 1 Load Timer0, 66 On Timer0 Negacja Enable Timer0 Enable Interrupts Start Timer0 Do Loop Negacja: Load Timer0, 66 Wy= not Wy Return Wartość ładowana (66) do timera 0 decyduje o częstotliwości....
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
Jak napisać program w bascomie do pomiaru czasu trwania impulsu wejsciowego ?Prosze o konkretny przyklad listingu takiego programu ponieważ jestem początkującym programistą w bascomie i nie znam wielu możliwości.Domyślam sie ze należałoby wykorzystać któryś z timerów i poprzez start timera za pomocą przerwania i jego zatrzymanie a następnie odczyt...
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
Wszystko wyjaśniłem w Post #5. Dodano po 16 Wewnętrzny oscylator nie ma nic wspólnego z kwarcem 32.768 . Oscylator ten napędza sam uC, natomiast kwarc zegarkowy ma napędzać dodatkowo jakiś timer.W przypadku Bascom jest to Timer2, gdzie są dodatkowe instrukcje do ustawienia i pracuje asynchronicznie. Przykład w Bascom. Config Timer2 = Timer , Async =...
Help Bascoma nic nie mówi o wykorzystaniu timer0 w roli PWM, ale w PDF M32 jest jasno napisane, że to potrafi. I to jest wystarczający powód aby przejść z komercyjnego środowiska MCS Bascom na darmowy i lepszy język C. Co do timerów - w Internecie mnóstwo przykładów (również gotowych kalkulatorów do timerów). Co do wyboru timer8 czy 16-to bitowy -...
Hmm. Nie wiem jak. Bascoma uczę się od dopiero 2 dni. Może kolega podać jakiś przykład? 1. Do rozpoznania naciśniętego przycisku zastosuj "DEBOUNCE" 2. Do pomiaru czasu w multiplexing zastosuj dowolnyTimer (może byc timer1, skoro już zacząłes go używac). Dla ławości rachunków zastosuj podstawowy czas pomiaru 4 mSec. Co 4 mS zrobisz multiplexing cyfr...
Cześć. Zaczynam programować i potrzebuję obliczyć lub policzyć ile trwa jedna pętla(Do-Loop) w moim programie(wiem tyle, że trzeba wykorzystać Timer tylko nie umiem się nim obsługiwać:cry:). Proszę o przykłady i także o brak wypowiedzi typu zajrzyj do help-a(bo patrzyłem).
Mogę prosić o przykład takiego wykorzystania timera aby sterował miganiem diody? Z tego co zrozumiałem jest to możliwe, ale mimo tego, że dość dużo czytam/tałem o timerach nie wiem jak to wykorzystać, a przykład pomoże mi to zrozumieć.
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...
Nie prościej generować przerwanie co np 1s od timera?
Najprościej przepisać jedną z bibliotek na Timer3. Dla przykładu w tej samej obudowie jest Atmega1284 ale pewnie można jeszcze coś poszperać ;)
Naprawdę nikt nigdzie nie napisał o użyciu timera i przerwań? Ech, leniuszku - popatrz na linki, które podają tutaj Koledzy takim, co zaczynają z mikrokontrolerami - mnóstwo opisów i przykładów kodu.
W książce "Mikrokontrolery AVR w praktyce" jest przykład wykorzystania timera jako modulatora PWM. Listingi do ćwiczeń z tej książki znajdziesz na stronce wydawcy www.btc.pl Pozdrawiam
Nie wiem co to ma wspólnego z przestrajanym generatorem częstotliwości. Ten mój mnożnik częstotliwości będzie miał Jitter na poziomie kilku % co całkowicie go dyskwalifikuje jak "generator częstotliwości". Generalnie to trzeba zacząć od przetestowania tego co już mamy. Potem się pomyśli nad zwiększeniem zakresu częstotliwości pracy. Jako że nie masz...
Ale timer przyjmuje tylko liczby całkowite, chyba że się nie rozumiemy. Podaj przykład zastosowania, oraz te wyliczenia co chcesz załadować i gdzie je wcisnąć ;)
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...
Witam. Czy układ DS1307 sam wystawia dane na I2C czy trzeba wysłać do niego zapytanie żeby wystawił je na wyjście, bo mam przykładowy program w Bascomie i tam do odczytu jest wykorzystany timer z procka który co sekundę odczytuje dane z DSa. Nie mogę wykorzystać timera z mikroprocka , a DS jest tylko podłączony do I2C jego wyjście SQW mam niepodłączone(brak...
Witam Prozę Was o poradę/pomoc. Otóż chcę migać dwukropkiem za godzinami na wyświetlaczu. Nie chcę podpinać kolejnego przewodu do portu procesora od wyjścia INT RTC. Próbowałem coś spłodzić w programie, ale musiałbym użyć WAIT, a tego wolę uniknąć. Pozostaje TIMER. Widziałem w sieci kilka przykładów odnośnie odmierzania określonego czasu na timerze,...
No to jest to czego szukałem. Tylko teraz pytanie: Dlaczego zawartość rejestru R0 to zawiera,a nie można odczytać z MCUCSR jak jest opisane w DSie?? edit Aaa już wiem gdzie robiłem błąd. Można odczytać WDRF moim sposobem tylko przed Config Watchdog, bo ta instrukcja czyści rejestr MCU(C)SR. Wszystko pięknie jest wyjaśnione w Helpie od wersji 2.0.1.0...
To nie jest żadna składnia Timera tylko lista zmiennych. Dim to skrót od Dimension. Pisząc Dim Zmienna As Byte opisujesz zmienną że będzie jednobajtowa i tak trzeba opisać każdą. Co do chwilowego wyłączania diody D1 to to dopisałem. Zadbałem też o poprawną polaryzację D3 przy naciskaniu. Niedobrze jest tak nie znać wszystkich założeń programu i potem...
Przykładów w necie jest od groma. Z częstotliwością co najmniej 50Hz musisz przełączać wyświetlacz i wartość podawana na niego. Najlepiej wykorzystać do tego przerwanie timera.
Ok coś tam rozumiem ale mam jeszcze taki problem albo prośbę bo nie wiem jak ustawić rejestry w attiny13 Tccr0a Tccr0b Admux Adcsra Adcsrb jakbym chciał pwm 8 bitowy (attiny13) z max częstotliwością tj chyba FAST PWM na pwm0a i pwm0b czyli 9600000/256=37500Hz przy działającym ADC. Reszta ustawień zostaje tak jak jest. To już będzie wszystko. Zacznij...
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
Nie za wiele swojego programu pokazałeś, więc trudno powiedzieć gdzie masz błąd. Masz przykład jak powinno wyglądać przerwanie.[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Interrupts Enable Timer0 Start Timer0 On Timer0 Timer_przerwanie Do ........ Loop Timer_przerwanie: ............ Return [/syntax]
Witam ogarnąłem już dużo na temat programowania w bascom, tylko mam kolejny problem, mianowicie chciałbym zaprogramować obsługę serwa pilotem nadającym w RC5 lecz gdy połączę obsługę rc5 i serwa mam takie błędy i nic nie działa: ........ Pojedynczo programy działają ok. ................. Rc5+ servo (nie działa) Pozdrawiam. Zauważ że zarówno 'Config...
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
Timery są dobrze opisane tu: http://www.gammon.com.au/timers , co prawda dla Atmega328P, ale zasady są takie same. Przykłady są dla Arduino, ale im szybciej schowasz książkę do Bascom w głębokim archiwum domowym, tym szybciej zaczniesz robić faktyczne postępy, dla Arduino znajdziesz też więcej przykładów, gotowych bibliotek, darmowych kursów na blogach...
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
Witam wszystkich Czy da się zastosować funkcję timer zamiast kilku waitms dla obsługi 10 x lcd chr? Chodzi mi oto ,żeby nie wpisywać po każdym zdefiniowanym znaku (deflcdchar) waitms.Jeśli tak ,to prosiłbym o jakiś przykład jak to zrobić.W helpie znalazłem to, na temat portów a w sieci sporo ale nie na temat.
Jak nie radzisz sobie na razie z tym timerem to przynajmniej nie nadużywaj bezpodstawnie Wait. To co Ci zaproponuję nie zwalnia Cię od ogarnięcia timerów! Ustal sobie jakie dopuszczasz maksymalne opóźnienie pętli i użyj go tylko raz np. 10ms. Za rozwiązanie, może nie do końca eleganckie, zaraz zbiorę burę od fachowców ale w wielu przypadkach to naprawdę...
Oprócz komendy RC5SEND trzeba pamiętać o wykorzystaniu wyjścia PWM timera do generowania przebiegu wyjściowego ponieważ sygnał RC5 jest kodowany bi-fazowo (kod Manchester). W helpie do Bascom-a AVR jest podany przykład wzmacniacz wyjściowego podłączany do wyjśćia OC1A (port B.3 w 2313)
Co to jest Prescale ? Timery w mikrokontrolerach AVR nie muszą być taktowane zegarem systemowym - często jest on za szybki dla potrzeb projektanta. Inżynierowie z Atmela rozwiązali ten problem, umieszczając dodatkowy (nieco ukryty) licznik zwany prescalerem. Z tego licznika otrzymujemy kilka nowych sygnałów zegarowych, z których skorzystać mogą timery....
Nie musowo być biegłym w BASCOMie. Wystarczy znajomość jednaj komendy z BASCOMa: On Timer. [syntax=vbnet] On Timer1 Timer1_handler ... Timer1_handler: 'Tu robisz pomiary ADC Return [/syntax] A do skonfigurowania Timera w tryb PWM Phase Correct wystarczy wpisać odpowiednie wartości do rejestrów Timera (i nawet nie można tu w zastępstwie użyć polecenia...
Panowie, czy możecie napisać jakiś przykład modulacji podczerwieni? Męczę się z tym i nie mam już pomysłów. Wykorzystałem drugi timer do odmierzania krótkiej chwili (doświadczalnie). Działa to tak że jeden timer co okolo 100ms wysyła nośną 36kHz, gdzie ta generowana jest drugim timerem. Nie zadowala mnie to ponieważ musi być to tak jakby ciągły sygnał........
Witam, chciałbym przy użyciu Atmega8 i zewnętrznego kwarcu odmierzać i zliczać setne części sekund, sekundę mogę łatwo wyłapać z timera1 według przykładowych obliczeń 4000000MHz / 256 = 15625 65536 - 15625 = 49911 lub 8000000Mhz / 256 = 31250 65536 - 31250 = 34286 Nie mam jednak pomysłu jak....... Z góry dziękuję za pomocne wypowiedzi. Aby odmierzac...
Jarosław J --> po pierwsze postaraj się jak najszybciej robić odpowiednie wcięcia w kodzie to będzie łatwiej nie tylko nam tutaj na forum analizować twój kod - ale tobie samemu będzie łatwiej a to jest nawet ważniejsze ;) po drugie masz tam gdzieś w tej swojej pętli głównej coś takiego: Convallt ' "Convert ALL T on the 1w-bus" Waitms 1 czyli...
Niestety nie posiadam przykładu włączania i wyłączania Timera. Napisz na jakim mikrokontrolerze pracujesz, to może ktoś siedzący w Bascomie pomoże.
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Nie ma większego znaczenia w jakim środowisku programujesz (Basic albo C). Istotny jest koncept projektu i sposób rachunkowy, reszta to tylko inna forma zapisu programu. Wybrałeś za narzędzia: Timer1 i jeden z interruptów zewnętrznych. Zatem jest tez bez znaczenia...
Ja uczyłem się na poniższym kodzie: Czy, jako początkujący wiedziałeś co to jest TCCR1A, TCCR1B, OCR1AH, OCR1AL i inne niezrozumiałe dla laika rzeczy ? Są to rejestry atmegi, dostępne w instrukcji PDF do niej. Więc po co karmisz nowicjusza takim przykładem ? Jestem pewien, że autor wątku nie ma bladego pojęcia o rejestrach atmegi. Mogłeś juz podać...
Z tego co wiem "PIN Change Interrupt" ma np. Atmega168 i Atmega 328. Atmega 32 - jakoś nie widzę takiej możliwości. Proszę o poprawienie mnie, jeśli się mylę. Oczywiście zawsze można skorzystać z tych specjalnych pinów - INT0, 1 czy 2 lub zasymulować taką kontrolę stanu pinu w zwykłym przerwaniu - np. timera.
Nie ma do tego komendy. Bo raczej sobie z tym nie poradze :) Hmmm.. Na 100%? CONFIG TIMER, ON int są pominięte w plikach pomocy? Przykładów do nich też brak? Książka red. Piotra Góreckiego też nagle zniknęła z księgarń/aukcji?
Jak użyć timera (tzn. jak wyciągnąć z niego np zmienną dodawaną, lub resetowaną co określony czas?) Boję się jeszcze TIMERów :) Nie ma się czego bać. Oto prosty programik, który na pewno pomoże. 796182 Jednak dziwię się dlaczego nie używasz sprzętowego PWM. Attiny 2313 posiada ich cztery. Na każdym z timerów po dwa. [syntax=vbnet]Dim R As Integer Dim...
Witam ZbeeGen szacuneczek za tłumaczenie, ale po kolei: - Bascom 1.11.9.1 wersja demo - posługiwałem się oryginalnym helpem 1) przykład Config Timer2=Timer , Async=1 kompiluje się Async=ON 2) helpa czytałem i drugie miejsce które się wykładało przy kompilacji to COMPARE A NO_OUTPUT , COMPARE A PWM NO_OUTPUT Dziękuję za pierwszy konkretny post w sprawie,...
...Ale... Jak się tak dokładnie przyjrzałem Twoim obliczeniom, to muszę stwierdzić, że nie rozumiesz istoty działania funkcji Load Timer :( Przykładzik: $regfile = "m8def.dat" $crystal = 4000000 Const Prescaler = 64 Const Interval = 1 / 1000 Const Reload_value = _xtal / Prescaler * Interval Config Timer2 = Timer , Prescale = Prescaler Load...
Klawiature musisz potraktować jak jeden zwykły przycisk. Tyle że zwykły przycisk ma stan wysoki jeśli nienaciśnięty a ten przycisk zwraca 16 jeśli nienaciśnięty. Napisałem na szybko dwa przykłady. Jeden działa bezposrednio na wartosciach a drugi na stringu [syntax=vbnet] Dim Key As Byte Key_val As Byte , Lock As Byte , Licznik As Byte Dim Val_str As...
Muszę użyć układ dwóch timerów ponieważ w docelowym układzie zakres czasowy Timera1 będzie za mały. Czy procesor zliczy na T1 impulsy generowane na OC2 ? Obawiam się sytuacji, że przy wspólnym CLK gdzieś mi się zbocza miną pomiędzy OC2 a T1 i układ nie zatrybi... Oczywiście że zbocza te mogą się minąć, ale to jest bez znaczenia. Podczas synchronizacji...
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,...
Hmm. No to żeś kolego janbernat zabił początkującego tym tematem :) Tak ogólnikowo pisząc to by wszytko działało w pseudo multitaskingu nie należy stosować opóźnień typu wait, tylko timery, oraz wykorzystywać system flag i przerwania. Przykładów na forum jest sporo więc można zawęzić wyszukiwanie tylko do elektrody, oraz na stronie firmowej Bascoma.
Nie ma się co poddawać. Prędzej czy później i tak będziesz musiał używać przerwań i liczników bo bez tego większość programów robi się zagmatwana o ile nie niemożliwa do napisania. W necie jest dużo przykładów, Bascom jest o tyle prosty, że nie grzebiesz po rejestrach. Timer już masz, dodatkowa linia konfiguracji i kawałek kodu da Ci obsługę przerwania...
Proszę. Można to zrobić na kilka sposobów. Pokazuję taki najprostszy żeby pokazać mechanizm. Kiedy bit w bajcie na danej pozycji ma wartość 1 to pin nadawczy jest ustawiany w stan wysoki i po 500us jest zerowany i znów czekamy 500us. Po tej operacji licznik wskazujący o który Bit w Bajcie nam chodzi jest zwiększany. Bity występują w ilości 8 ale numerowane...
Przykład. W pętli głównej jest zmienna, która jest zwiększana przez TIMER0. Zależnie od wartości owej zmiennej, jest wysyłany dany ciąg znaków przez instrukcję PRINT - uart sprzętowy oraz instrukcję Print#kanał - uart programowy. Mam też przerwanie od timera1 - do obsługi wyświetlaczy siedmioseg. i innych elementów. I co będzie, jak np. w momencie wykonywania...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Dzięki za odpowiedź:) Czy można prosić o jakiś przykład wiem o co chodzi tak mniej więcej ale nie potrafię tego napisać w bascom Ja myślałem że muszę uruchomić dwa timery i je połączyć. Ale tu masz rację że jeden timer uzależni od siebie jedno i drugie. No i najważniejsze jak oddzielić wypełnienie od częstotliwości bo na jednym timerze to może być trochę...
Nie analizowałem Twojego programu- ale może to Ci się przyda. Może moje stare belferskie umiejętności (teraz to się nazywa- zdolności pedagogiczne) jeszcze całkiem nie zanikły. 'Program poglądowy do unikania wait 'Prescale oczywiście można zmienić 'licznik też i Temp0 też $regfile "m8def.dat" $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin...
Tak co jeden cykl. Prescale jest 64 wiec nie tu chyba problem. Nic sie nie dzieje na wyswietlaczu a w symulatorze tez nie pokazuje zmian zmiennych. To nie jest jeden cykl, ani też 64 jakby wynikało z podziału prescalera. Wszystko można odczytac w symulatorze, tylko musisz potrafic posługiwac się jego ustawieniami i funkcjami. Poniżej masz przykład...
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
Witam ..gdy użyję "Config Clock" działa dobrze przerwanie co 1s,jak zewrę kwarc to staje. Natomiast gdy korzystam z Config Timer kwarc zegarkowy nie jest brany pod uwagę zamiast: Config Timer2 = Timer , Async = On , Prescale = 128 wyedytuj odpowiednio dwa znaczące tu rejestry w sposób bespośredni, na przykład: TCCR2B = Bits(CS22 , CS20) ASSR = Bits(AS)...
Problem w tym ze za pomoca bascoma chyba nie da sie wygeneroawac czegos takiego: http://www.bigmike.it/ircontrol/images/M... (po wygeneraowaniu czekamy 62ms i znowu to samo) Napisalem kod z toggle i nic - zero reakcji ze strony aparatu. podchodząc w ten sposób to szybko okaże ci się, że pisząc ten program np w języku C - też nic nie zadziała...
C czy Bascom? Jeżeli Bascom to konkretną odpowiedź masz tutaj: [url=http://www.elektroda.pl/rtvforum/to... Co do C, konfigurację znajdziesz [url=http://www.elektroda.pl/rtvforum/to... Wystarczy zamienić tylko niektóre rejestry, ctrl+f w datasheet'cie aby zobaczyć który od czego.
Witam. Nie znalazłem informacji na ten temat więc piszę. Na ile w bascomie prawdopodobne jest że odmierzenie czasu 250ms za pomocą Timer1 jest prawdziwe? Kwrac 4000000, atmega8. Config Timer1 = Timer , Prescale = 64 Enable Interrupts Enable Timer1 on timer1, 250ms timer1=46875 do loop 250ms: timer1=46875 'program co 250ms return Dobry jest ten przykład?...
Tak, jednak w powyższym przykładzie podmiana Timer2 na nazwę rejestru nic nie zmieni - nadal będzie chciał to potraktować jako zmienną. To akurat dobrze (że będzie chciał tak potraktować). Źle że mimo chęci, nie traktuje. Wpisując jednak TNCT1 zamiast 2 - wszystko jest ok. Wiem już też na pewno, że to kompilator. Dokładnie.
Ten if załatwia sprawę naciśnięcia dłuższego niż 3s. Oczywiście po 2,5 minuty trzymania przycisku licznik się przekręci ale to już olewam :-) Do do kolejnego wywołania INT to masz rację, ustawi się w kolejce i znów wykona. Mogę dodać czyszczenie flagi INT po bitwait. Albo tak jak teraz - olać to. Kolejne przerwanie wskoczy tylko na 100ms (1 cykl do-loop...
Co prawda ten przykład co podam poniżej dotyczy liczenia sekundy, ale nic nie stoi na przeszkodzie przerobić kod wg swoich potrzeb. Generalnie przy 8 mhz i preskalerze 256 timer zlicza 31250 na sekundę. Czyli w przyblizeniu 31 na milisekundę. Odejmując jedną próbkę od drugiej otrzymamy czas pomiaru. Polecam zastosować timer w trybie CTC jaki podał mi...
Z przerwaniami nie jest tak trudno. Enable Interrupts Config Timer1 = Timer , Prescale = costam Timer1=costam2 Enable Timer1 On Timer2 etykieta Config Timer2 = counter , edge=falling Enable Timer2 On Timer2 etykieta2 coś takiego na przykład dobry zwyczaj to czas realizacji procedury pod daną etykietą był w granicach 10us, a wszystko pakuj do pętli głównej...
Witam. No moze i za duzo kombinacji. Mnie w sumie zalezy naprawdę na prostym, zrozumiałym programie. Jednak ciągle czegoś nie wiem na 100% i ciągle są jakieś problemy. Sporo się naczytałem, mam przykłady, sam zacząłem pisać , napisałem i ...teraz czekam na dalszą Waszą pomoc. Została już tylko jednak kwestia do wyjasnienia. A piszę w C. Nie mogę w Bascomie....
Tak też próbowałem - tzn. czekanie na konwersję poza timerem2 - wtedy się program na tym zawieszał. Narazie Timer pozostawię w spokoju - póki działa, a jak narazie działa on ;). W zasadzie czytam i czytam i nie widzę przykładów o Free Runing mode albo o Single Conversion. Jak narazie są przyklady typu "Help!" albo " ADC doesn't work" itp. ------------------...
To pewnie wynika z tego że powstało dużo różnych AVR`ów. Jeśli na początku ktoś korzystał tylko z jednego typu to mógł sobie w IDE ustawić konfigurację dla stosów a nawet wyświetlacza LCD czy I2C. Stąd dla wstecznej kompatybilności dalej tak można zrobić. Na przykład ustawienia dla stosów są tutaj tylko moje są już zmienione bo mogę szybko wkleić to...
Kolego (at)miszcz310 tu nie wykorzystuje się przerwań bo to enkoder magnetyczny z interfejsem I2C który dodatkowo ma tylko wyjście PWM lub DAC. Czyta się go przez odpytywanie co jakiś czas. BTW "Config Encoder = Enabled" to chyba tylko bot mógł napisać ahahahaha :D Trzeba sobie ustawić Timer i odpytywać. Enkoder ma 14bit więc najprosciej jest chyba...
Wszystko załatwia się timerem i przerwaniem ovf oraz compare. Nie wiem jak w Bascomie to zaprogramować, w C to parę linijek kodu więc w Bascomie podobnie. Przykłądy w C znajdziesz np. w darmowych przykładach do książek z mojej stopki (Język C...), może ci to ułatwi port dla Bascoma.
Soft PWM i filtr wyjściowy... To w sumie najmniej elementów... i chyba jedyne wyjście.... Tylko trochę zabawy z programem... Sprzętowy timer do interwałów a resztę programowo... Każde inne rozwiązanie wymaga zewnętrznych układów... Masz jakiś przykład, i kawałek softu, najchętniej bascom :)
Przykład z Bascoma na ATmega8 do sterowania serwem modelarskim: $regfile = "m8def.dat" $crystal = 8000000 'on chip clock speed Osccal = &HC1 'uC 8MHz internall clock New calibration byte Tccr2 = &B01100110 'PWM2, clear down, phase correct, prescale 256 -> 16ms Acsr = &B10000000 'Analog Comparator disable Dim W As Byte 'Servo position ....
Witam, poniżej znajduje się listing pliku dhcp2.bas. Cały pakiet easytcpip w załączniku. '---------------------------------------... ' DHCP2.BAS ' (c) by Atilio Mosca ' '---------------------------------------... $regfile = "m161def.dat" $crystal = 4000000 $baud = 19200 $lib "tcpip.lbx"...
Hmm. Niektóre zagadnienia można rozwiązać na wiele sposobów. W przypadku mojego przykładu pin INT układu PCF można podłączyć do dowolnego pinu uC. W przypadku Twojego rozwiązania trzeba się podłączyć do INT0 albo INT1 i z samego opisu wynika że takich punktów w tym uC jest tylko dwa. Co jeśli komuś komplikuje to układ? Można by rozważyć ocję zmiany...
Dzięki rejestr007, ale chyba jestem jeszcze za mało doświadczony w timerach i ich obsłudze - napisałem tylko bardzo proste programy, głównie dotyczące sterowania lcd. Jeśli możesz to podaj jakiś krótki program najlepiej w BASCOMIE, najlepiej uczę się na przykładach (mam już swoje lata i ta elektronika której się kiedyś uczyłem to już dziś muzeum, choć...
Kolejny element układanki... łopatologicznie ;) bity CS10 do CS13 określają częstotliwość pracy timera, inaczej mówiąc wyznaczają czas aktualizacji (zwiększenia o jeden rejestru TCNT1). W zależności od trybu pracy rejestr ten jest porównywany z zapisanymi przez użytkownika nastawami w OCR1A (kanał A ), OCR1B (kanał B), OCR1C (dla uproszenia maksymalna...
No bo widzisz, przeczytałem książkę a rozdział o timerach dwa razy i nic z niego nie rozumiem. Nie potrafię, skonfigurować, wystartować i zatrzymać oraz a jedyne przykłady w sieci odnośnie tego co mnie interesuje to tylko w Bascom. To co skonfigurowałem to przez przypadek mi się udało dzięki stronie wkretak.pl Właśnie ściągnąłem sobie PDF'a 80 stron...
Ja też dotarłem do tego helpa :D . Nie chodzi mi o konfigurację poszczególnych timerów, tylko o korzystanie z nich w programie. Tak się składa, że po skonfigurowaniu timera 1 jako generatora PWM, aby z niego korzystać wystarczy w programie wpisać na przykład pwm1a=10. Ta komenda daje (w przypadku na przykład działania 8 - bitowego) współczynnik wypełnienia...
bascom timer servo bascom timer bascom timer generator
lodówka chłodzi dół obliczanie cewki przetwornica lodówka moduł
SMART FORTWO 451 II 0.8 CDI - Centralny zamek nie działa Schemat kuchni Mastercook - model, rodzaj schematu, źródła