Chwile mnie nie było :D Napisałbym to inaczej, ale wracając do pytania z pierwszego postu . Jeśli chcesz by procesor zawsze był tak samo zajęty to każ mu w tych innych Case`ach także nadawać Pulseout tylko na pin Reset. Bascom to przełknie bo ten pin może pracować jako normalny I/O ale jak jest resetem to nic mu się nie stanie jak napiszesz Pulseout...
jak chcesz takie duze czestotliwości mieżyć to musisz użyć timera żeby liczył zewnętrzne impulsy, wtedy drógim timerem wyzwalasz przerwanie co określony czas (im dłuższy tym lepszy bo pomiar dokładniejszy) liczysz ile było ilmpusów z zewnątrz w okreslonym czasie. wydaje mi się że tą metodą dało by sie mieżyć nawet do 100Mhz ale jest jedno zalożenie...
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:...
Można i na pewno lepiej byłoby to zrobić Timerem zwłaszcza jeśli to cześć większego programu bo to przecież zrobiłby nawet Tiny13 :D Jeśli jednak te impulsy są jakieś "wolne" to pewnie wystarczy taki Waitms a nawet możesz użyć innych jednostek Waitus itd.. Na tym Bitwait program mógłby zawisnąć gdyby stan ustalił się na stanie wysokim. Dlatego trochę...
(at)maximus22_kr Niezależnie od użytego języka programowania zapomnij o instrukcjach wait. Tego nie będzie się dało połączyć z żadnym sensownym programem. Należy to zrobić tak jak pisałem: - przerwanie OVF - zmiana wyświetlanej cyfry - przerwanie compare - wygaszanie bieżącego wyświetlacza. Wtedy czas pomiędzy OVF a compare to czas, w którym dany wyświetlacz...
Rozwiązaniem jest śledzenie pełnej transmisji, przy wykorzystaniu Mode=Background, co niestety wymaga mikrokontrolera z timerem 16bit. Takie są wymagania Bascoma, a w przykładowo czystym C można zrobić tylko na timerze 8-bit.
niechce mi sie czytac calego zrodelka ale moze sprobuj przerwanie na timerze w obsludze porzerwania licznik, bo zliczeniu do ilus wystapien przerwan.. w avr zreszta sa odpowiednie preskaley do tych celow. po ktoryms przerwaniu uruchom procedure zamykania bramy czy co tam chcesz
Program poprawiłem, ale dalej jest problem z drugim timerem tzn. działa tylko z TIMER0 , działa klawiatura, funkcja rozpędzania wirnika. włączenie drugie timera wiesza program. Zamieszczony program (tylko z TIMER0) działa fizycznie. [syntax=vbnet] $regfile = "m2560def.dat" $crystal = 16000000 '$sim '***************************************... Config...
Znalazłem specjalnie dla Ciebie jeszcze kilka bajtów :D ahahahahaha Bascom stara się być "ignorantoodpornym" czyli jak ktoś może czegoś nie wiedzieć to on to, na wszelki wypadek, robi za niego. W języku C każdą zadeklarowaną zmienną najczęściej inicjuje się jakąś wartością ponieważ po reset nie można być pewnym, że w niej znajduje sie zero lub potrzebna...
GETRC5 używa licznika TIMER0. Albo TIMER2 jeśli go układ posiada i tak go skonfigurujesz w CONFIG RC5. Aby ustrzec się dziwnych błędów (z adresami linii poza programem) nie zapomnij o wpisaniu nazwy pinu w CONFIG RC5. Sam kod bazuje na dokumentach ATMELa: http://www.atmel.com/dyn/resources/prod_... I tam można całą procedurę prześledzić....
A czy aby ten mikrokontroler nie ma wewnętrznego oscylatora ustawionego na 1MHz.
Nie wiem dlaczego ale nie potrafie poprawnie uruchomic Timer w Bascomie. W efekcie mojej konfiguracji Timer uruchamia sie z jakąś losową ( wg mnie ) częstotliowścią i nie potrafie go zmienić na np 1HZ Kwarc 3.6864 MHz Czy ktoś mógłby podesłać lub umieścić gotowy plik bascoma 8051 z uruchomionym timerem ( obojętnie którym ) w trybie autoreload który...
Nie prościej generować przerwanie co np 1s od timera?
Chodzi o dowolne przerwanie. Ale najlepiej oczywiście wykorzystać przerwanie od jakiegoś Timera.
Witam, chciałbym zrobić nietypowy nadajnik IR na Atmega 8. Nie Sony nie RC5, nietypowy. Sygnał ma mieć 38kHz, kluczowanie znam. Pytanie: czy te 38kHz mogę uzyskać za pomocą timera w trybie PWM 50%? Czy mogę ustawić dowolną częstotliwość, bo wydaje mi się że nie. Chciałbym jednym timerem generować falę prostokątną a drugim kluczować ją komendami START...
przerwanie timera wpływa na polecenia z rodziny Wait - powodują one, w zależności od częstości wydłużenie czasu oczekiwania, dlatego trzeba w takim wypadku odmierzać czas używając timera ;-)
14 bitów w RC5 zajmuje 25ms Mógłbyś zakodować jeden bajt nową funkcją dodaną do Bascom 2082 "ManChesterEnc" i sobie to dekodować "ManChesterDec", ale jak to Manchester z jednego bajtu robi dwa czyli 16 bitów. Musiałbyś samemu wygenerować timerem nośną i podłączać do niej wyjście timera w takt bitów. Jedno dobre to to że już nie ogranicza Ciebie "normalna...
Timingi i jeszcze raz timingi. Skoro na stałe zwarcie R, G lub B z napięciem różnym od 0V nie generuje jednolitego obrazu o jakimś kolorze to znaczy, że nie ma synchronizacji i w ogóle żaden obraz nie jest generowany. Sama zmiana koloru diody, czy napis na ekranie to niewiele, bo nie świadczy to o złapaniu synchronizacji przez monitor. Pytanie pierwsze...
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ą...
Problemem jest to: [syntax=vbnet]Call Obrot[/syntax] Skoro "Obrot" to wektor przerwania, to nie należy do niego skakać. Procesor sam będzie do niego skakał. Nie należy też tego deklarować jako podprogram (Sub). Albo coś ma być podprogramem, albo wektorem przerwania.
Dodajmy, że kiedfy pilot nie nadaje, odbiornik odbiera śmieci i wystawia na wyjściu przebieg prostokątny, któego zbocza są dużo gęstsze niż podczas odbioru danych, a każde zbiocze będzie w takim przypadku generowało przerwanie. Dlatrego lepiej jest odbierać w przerwaniu timera, a nie używać przerwań od zboczy. To jest oczywiste, ale.. odbiornik RF...
no ok, wszystko działa dzięki :D fourthline heh :D zobaczymy nie długo jak mi przyjdzie pierszy mój mikrokontroler AVR. pewnie będę musiał się pobawić z timerem :)
Witam! Jestem początkującym programistą i chciałbym zrobić sobie zegarek na LCD. Napisałem kod w BASCOM z wykorzystaniem TIMERA1 i wewnętrznego oscylatora, ale on się śpieszy. Nie mogę wcale ustawić aby dokładnie odliczał jedną sekundę. Czytałem w internecie, że do tego trzeba wykorzystać TIMER2 i zewnętrzny kwarc zegarkowy 32,768kHz, ale ja mam problem...
Tak odpal helpa zajrzyj do config timer i tam będzie przykład;)
Dzięki za pomoc :) chyba już sobie poradziłem. Wykorzystałem dwa sposoby, jeden z Timerem i czas wyszedł mi 928 us, a drugi z symulatorem i tam też udało mi się wyznaczyć ten czas, który wyniósł około 900us wiec chyba sie zgadza :) dodano 16:07: Hmm chyba jednak te dwa powyższe sposoby nie są jednak dobre, albo ja coś pokręciłem. Podłączyłem oscyloskop...
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...
Więc pozostało zamiast waitów uruchomić następny timer.
Funkcja WAITMS nie jest odporna na przerwania. Jeśli masz jakieś to każde wystąpienie przerwania w trakcie WAITMS rozjedzie go. Niezależnie od stabilności tej funkcji, a nie ma powodu, żeby nie była powtarzalna jeśli nie jest przerywane wykonanie przerwaniami, to i tak lepsza praktyką będzie wykorzystanie timera.
Witam Musisz skonfigurować Timer i za jego pomocą odliczyć 4 minuty. $Crystal = 11059200 Config Timer1 = Timer, Prescale = 1024 Load Timer1 , 10800 On Timer1 Sekunda Config Pind.1 = Output : Wy Alias Portd.1 Config Pind.2 = Input : We Alias Portd.2 Dim Licznik_1 As Byte Dim Wsk As Bit Enable Timer1 Enable Interrupts Licznik_1=0 Wsk = 0 Do If...
Zumek zaproponował nam prace timera w trybie CTC (Clear Timer on Compare match) - zerowanie licznika (i wywołanie przerwania OC1A) po wykryciu zgodności rejestru TCNTn z OCRn. Można w ten sposób "skrócić" timer do potrzebnej wielkości. Odpowiada to mniej więcej "skracaniu" zakresu liczenia timera przez wprowadzenie wartości początkowej tyle, że licznik...
Ja to widze tak, ze używasz PWMa do wygenerowania tej czestotliwosci 40kHz, poźniej mierzysz timerem odcinek czasu w jakim fala powraca do urządzenia. Masz czas, prędkość będzie korespondować z częstotliwością tego sygnału i mając te dwa parametry obliczasz droge czyli odległość. Aha, co mi sie nasuwa - musiałbys ustalić zakres czasu w jakim fala poleci...
Propozycja z 2 timerami może jest koncepcyjnie prostsza, ale zobaczmy - zalecana fext dla timera powinna być < fclk/2.5, czyli TOP timera generującego ustawiasz na min. 2 -> fext = fclk/3 (wypełnienie 1/3 lub 2/3). Stąd widać, że potrzebujesz 3x większej częstotliwości zegara niż w przypadku rozwiązania z pojedyńczym timerem. Poza tym z dwoma...
Żeby nie było, że w przerwaniach ustawiam tylko flagi Hahaha :D Wiem na ile sobie mogę pozwolić przy danych założeniach :P Kiedy się już coś tam wie to się nie zgaduje "czy się uda" tylko się to wie :D Te ADC można czytać w Bascom z pominięciem Getadc() W plikach DEF są zaszyte również definicje pod nazwą WIO Pozwala to na odczyt dwubajtowych rejestrów...
Zmierz timerem czas pomiędzy impulsami. uC będzie mógł "podjać" decyzję i wykonać regulację 60x na obrót. Warto byłoby monitorować działalność uC tak aby nauczyć go prawidłowo reagować na błąd.
Przetestuj ;] Generuj timerem pseudolosowe 8bitowe zmienne i badaj wydajność :) Level drugi optymalizacji jest rozbić bajt na dwa nibble. Fakt, że musimy wykonać około 2 instrukcje więcej, ale RAMu zostanie użyte 16x mniej...
Z przerwaniem INT0 sobie poradziłem bez problemu (zlicza i to nawet szybko:), ale przykład z Timerem a'la Counter'em wogóle nie gada. Nie wiem dlaczego. Timer ustawiłem na Internal. Impulsy podawałem na P3.2 i P3.4 ale nic nie dało. próbowałem też włączać i wyłączać przerwanie INT0 razem z Timer0 ale nic się nie zmieniło. Może to już nie istotne, bo...
Debounce spokojnie by tu wystarczył jeśli nie zależy Ci na ciągłości działania programu (ten zawsze wstrzyma na 25ms). Do tego wykorzystaj dodatkowy timer programowy do mierzenia czasu trwania buzera (ewentualnie można to zrobić w jakiejś pętli jeśli wstrzymanie programu jest nieistotne). Można też wykorzystać badanie portu z maskowaniem (AND) jeśli...
Nie. To poniżej odmierza czas. Nie jest to bardzo dokładne, ale w większości wypadków wystarczy. Pętla o czasie ok. 1ms wykonuje się 60000 razy i wyłącza diodę. Czas można skrócić zmniejszając 59999. Można też wydłużyć, ale raczej zwiększając Waitms 1 bo zmienna Czas ma "pojemność" <= 65535. Waitms 1 Incr Czas If Czas = 59999 Then 'Po czasie 60s...
Witam ja powiem ze sie da i to bardzo dokłądnie to wykoanć Potrzeba ci jeden Timerek generujacy przerwanie co sekunde. i drugi timerek to wyświetlania w multplesie. Choć faktycznie te dwa timery moga zaburzyć nieco prace tego całego układu. podłacz sobie jeden ls247 i 4 ledy w MPXie zajmie ci to jeden port. 4 linie to BCD i 4 to załącznie pokoleji LEDów....
Witam chcę aby po wybraniu podprogramu trwał on określony czas np 2 godziny no max 2,5 pózniej kończył pracę i wracał do głównego programu Jak to zrobic próbowałem coś kompinowc z timerem ale raczej niedam rady może ma ktoś prosty programik aby możnabyło po upływie danego czasu wyłączac np jakiś podprogram
mam prośbę i skierowano mnie tutaj.. potrzeba mi zrobić układ na atmega8 w języku bascom a sam nie wiem jak to wykonać w 100%... Działanie proste urządzenie jeżeli dostanie 100 imp / sek zapali jedną diodę od 100 do 200 imp / sek zapali drugą a od 200 w górę zapali trzecią... pewnie dla was to proste jak obręcz ale proszę o pomoc... z góry THX dokładnie...
Uruchomić timer w trybie CTC. Tryb CTC [syntax=vbnet]CONFIG TIMER1 = ..... CLEAR TIMER = 1[/syntax]
.... W pętli głównej sprawdzam na okrągło bit 0 rejestru 0 układu ( sprawdzam flagę alarmu timera). .... "Additionally, a timer alarm can be programmed by setting the timer alarm enable (bit6 of the alarm control register). When the value of the timer equals a pre-programmed value in the alarm timer register (location0F), the alarm flag is set ( bit1...
....ale teraz jest na forum taki problem:gosciu wzial program z forum bascomowski.Zczytuje temp po 1-Wire i mierzy czas za pomoca timera.Osobno oba moduly chodza a razem nie.Jak to zdiagnozowac jesli odczyt z 1-Wire i timera odbywa się za pomoca wbudowanych funkcji skoro nie mam pojecia co te funkcje robia ? Czy jest jakis konflikt na timerze czy moze...
Da się i własnie na flagach timera powinno się to zrobić. Samo taktowanie obniżaniem wartości to nie wszystko. Dioda zapala się już przy bardzo małej wartości PWM i potem dokładanie jej czasu intensywność świecenia zmienia coraz mniej. Dlatego przy ściemnianiu mało się dzieje i potem nagle dioda szybko gaśnie. Chciałem wiec uzyskać taki efekt by im...
Witam serdecznie, dopiero zaczynam na poważnie przygodę z mikro kontrolerami.Piszę na Atmegę 32 w BASCOM AVR.Chciałem napisać prosty programik będący timerem opartym o diody led.Zasada programu miała się opierać na następnym działaniu:zapal wszystkie diody,poczekaj pewien czas,gaś kolejno diody.W efekcie migają mi wszystkie diody i chodzi na kolejną...
Witam jeśli byś użył przerwania timera to wykonania rotacji tak jak w moim sofcie (nie chce cie tu oczywiście nękać i nakłaniać do ponownej analizy tego co stworzyłem ) tam polecenie rotate zawsze wykonuje sie tak samo tyle samo trwa i zawsze jest równo. Tylko ze w pętli głównej bym wykonywał wysyłanie bitu na port i blokowanie timera po wysłaniu żądanej...
Przez ostatni czas dokonałem wiele zmian kodu jak i płytki dane na szynie ibus na temat prędkości "pokazują" się w losowych momentach (gdzieś czytałem ze średnio co 2 sekundy ale w praktyce od 0,5s do 30 sekund czyli nie nadający się do tempomatu. Poradziłem sobie z sygnałem prędkości, znalazłem sygnał tacho odczytuje go timerem działa także mi obsługa...
[quote="kisoft"]Witam jestem początkujący w temacie bascom potrzebuję rozwiązać problem związany z błędnym odliczaniem zaprogramowanego czasu. Program przerobiony z działającego zegara ( samo odliczanie działa dobrze), tylko chcę żeby w 20 -stej sekundzie wyjście PIND.2 zostało załączone i w 45-tej sekundzie wyłączone. Teraz działa przypadkowo w 20...
Ok ,po prostu inaczej zrozumiałem "na AMEN wstrzymujesz działanie pozostałych funkcji". Jeśli program ma robić coś jeszcze , poza pilnowaniem przycisku i diody to też zastosował bym rozwiązanie z TIMEREM lub zmienną odliczającą do X, ja nazywam to "licznikiem". A poza tym to: "dzięki temu m. in. zaczynam pożegnanie z bascomem" Chyba masz rację, zacznij...
sterowanie timerem uzbrajanie timerem ładowarka timerem
naprawa kocioł buderus alternator regulator prąd maksymalny ethernet android
nagrzewnica dedra schematy radiotelefonów radmor
Schemat zasilacza APDP-22SA1 do TV Sony Hilti TE 2-A22: Diody świecą, silnik nie działa