Witam. Nie sprawdzałem tego, ale proponowałbym coś takiego: W pętli głównej programu Main: Do If K1 = 0 Then Call Generacja End If ....... Loop End W podprogramie Sub Generacja If K1 = 0 Then Set ...jakis port Waitms 50 Reset ... jakis port End If Do If K1 = 0 Then Loop End If If K1 = 1 Then Set ... jakis port Waitms 50 Reset ... jakis port Exit...
Jeszcze taka jedna rzecz, Wydaje się, że najbardziej krytyczny jest sam impuls (1 - 2 ms) który ustawia pozycję. Odstępy pomiedzy nimi nie są takie ważne, a okres ~20ms wynika chyba z tego, że z założenia w tym czasie powinna się zmieścić aparatura RC i przesłać ustawienia wszystkich kanałów. To też można by sprawdzić, jak dalece można zmniejszyć (ewentualnie...
Na moje oko 4046 to najlepsze rozwiązanie. To ja podpowiem że trzeba tylko minimalnie zmodyfikować mój program. Tak żeby drugi Timer generował tylko tyle impulsów po uruchomieniu ile wynosi mnożnik. A w tym pierwszym Timerze który mierzy okres ma być inicjalizacja tego drugiego Timera i uruchamianie go. Dzięki temu częstotliwość tego drugiego będzie...
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
Nie mogę się doszukać w helpie jak skonfigurować i używać PWM dla Tiny2313 w Bascom AVR a wyszukiwarka na forum nie działa, ktoś może mi pomóc? Ponieważ nie za bardzo ufam Bascomowi przy konfiguracji automatycznej( Config Timerx) , to wolę poustawiać rejestry ręcznie , korzystając z dokumentacji :D $regfile = "attiny2313.dat" $crystal = 1000000...
hunterhouse W AVR-ach sprzętowo można zatrzasnąć zawartość timera , ale uruchomić zliczanie trzeba programowo.Natomiast w 51-ce można uruchomić i zatrzymać timer sprzętowo.Jeśli na P3.3 jest stan wysoki i flaga GATE timera1 jest ustawiona , to timer zlicza doputy , dopuki stan na P3.3 nie zmieni się na niski.Problem jest tylko z tym , że Charly chce...
Witam W załączniku masz cały program stopera z dokładnością 0,1s Wytniesz z niego co trzeba Pozdrawiam PIOTR
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
Witam Chcialbym napisac program w bascomie ktory by dziala jako wylacznik sterowany czasem impulsu
Hmm.... no ok. a jakby sprawa wyglądała w przypadku AVR? bo powiem szczerze - uzywam w tej chwili Bascoma 8051 tylko ze wzgledu na to ze na AVR wbudowany symulator nie pokazuje mi w czasie rzeczywistym stanów wyjść (tam na tych diodkach..). Bycmoze jakiś mój błąd konfiguracyjny ale póki co go nie odkryłem. W ciagu najbliższego miesiąca planuje się zaopatrzyć...
Witam Dzieki za info. A dokladnie ma wysterowac przez uklad calkujacy tranzystor regulujacy napiecie. MarCiu
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...
jest pelno takich projektow... poszukaj w lampkach rgb... caly pic polega na odpowiednich zmianach wypelnienia (PWM) impulsu dla kazdego z trzech kolorow diody :)...
> Cofam wypowiedź <
"Tą" liczbę masz zapisaną w zmiennej Liczba_przerwan_tim0 a nie w ośmiobitowym (czego się chyba obawiałeś) rejestrze timera0 - więc nie ma problemu.
r"]Potrzebuje zmierzyć samo wypełnienie impulsów nie wiem jak za to się zabrać. Potrzebuje badać sygnał idący na serwo modelarskie. By wiedzieć na 3 diodach jakie jest jego położenie. Proszę o jaką kolwiek pomoc. Oczywiście nie chodzi mi tu o zrób za mnie... ale nie wiem od czego zacząć. Rozumowanie moje jest takie przychodzi impuls odpala się timer....
No przecież prosto. Konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer. robisz przerwanie dzialajace na zbocze np. narastające-> Dalej : robisz zmienną flaga w przerwaniu robisz if flaga=1 then start timer1 flaga=0 else stop timer1 w rej od timera masz czas... kopiujesz gdzie Ci tam pasuje flaga=1 zerujesz licznik endif I tyle, oczywiście...
Może spłycę :) wypowiedzi przedmówców, ale w skrócie chodzi o to. 1. Wyświetlanie wszystkich 4-ech segmentów sterowanie jest tym samym portem, w tym przypadku P1 2. Tranzystory powodują po prostu dostarczenie napięcia do odpowiedniego segmentu. 3. Wysyłając jakiś sygnał na port P1, wysyłamy ten sam sygnał do wszystkich segmentów, a sterując odpowiedni...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
Liczniki są osobnymi blokami uC, więc jeśli sygnał wejściowy jest poprawny, to impulsy powinny być zliczone poprawnie. Podany wyżej program to program użyty w moim mierniku częstotliwości okrojony z niepotrzebnych ci rzeczy, które mogłyby zaciemnić jego sens. Działa przy częstotliwości kilku MHz.
Poczytaj troszkę o PWM, zmiana szerokości impulsu dające w efekcie zmianę jasności świecenia diody. Bo oto chodziło, prawda ?
To zostaw w spokoju sprzętową obsługę PWM, i używaj przerwań do zmiany stanu tego pinu, np. On Compare1A.
Mam taki problem że po zaniku w kodzie impulsu nadam piszczy mi buzer - wszystko wyjaśni poniższy kod który jest na 100% poprawny ale i tak czegoś brakuje a i skończyły mi się pomysły 'alarm P If T(1) >= T_alarm Then If Buzz_en = 1 Then Led_a = Not Led_a Else Led_a = 1 if Buzz_en = 1 then buzz = not buzz else buzz = 1 Else Led_a = 1 Czujnik(1)...
W Bascomie jest do tego specjalna instrukcja Zaglądnij do Helpa na polecenie Pulsein Zauważ że zarówno instrukcja pulsein jak i pulseout mierzy tylko czas trwania impulsu a nie całego cyklu; patrz paniżej diagram: http://obrazki.elektroda.pl/1148630500_1... Zmierzysz tylko L1 albo L2 . Autor potrzebuje zmierzyc czas L (czas pomiędzy...
Akurat ważniejszy jest mały spadek napięcia, żeby stan niski pozostawał niskim również za diodą. Zrobiłem szkic pokazujący o co chodzi w tym różniczkowaniu i ANDowaniu: http://obrazki.elektroda.pl/7732349900_1... Przy zwykłym różniczkowaniu widać, że brakuje szpilki wskazującej początek impulsu pierwszego kanału. Można ją odtworzyć...
Banalne zadanie. A więc włączasz licznik(lepiej TIMER1-większa pojemność), tak, aby odliczał ci te 10sekund. Dajesz zmienną którą zwiększasz np co 1sekunde (zmienna o nazwie sekundy). W czasie odliczania do 10s w pętli głównej zliczasz impulsy przycisku i zwiększasz je w innej zmiennej (np. impulsy). Po 10 sekundach w zmiennej sekundy będzie10s a w...
Rzeczywiście, z zaremowaną funkcją bitwait zmienna W przybiera wartości. Nie mam pojęcia dlaczego. Musisz tu zrozumiec mechanizm pomiaru długości trwania impulsu w instrukcji "PULSEIN": patrz 'Bascom help' Pulsein W , Pinc , 0 , 1 W tym konktetnym przypadku pomiar czasu dokonywany jest pomiędzy zboczami, z których pierwsze jest rosnące a drugie opadające....
Patrzymy do datasheeta i widać, że potrzeba ustawić mode 7, gdzie OCR0A = 33 ustala częstotliwość, a OCR0B wypełnienie. TCCR0A = &B00100011 TCCR0B = &B00001001
Silniki krokowe jako enkodery całkiem dobrze sobie radzą nawet na wolnych obrotach, ale wypadało by żeby to były te przynajmniej 200-krokowe (1,8 stopnia na obrót). Wystarczy komparator do niego parę elementów ustalających parametry i zabezpieczających przed zbyt dużym wyindukowanym napięciem i zachowują się identycznie jak zwykłe z przesunięciem impulsu.
Bascom zawsze używa metody obliczeniowej, która należy do zmiennej wynikowej. Oznacza, że w tym przypadku Bascom wykonuje obliczenia na bajtach. Wartość obliczeniowa2 jest typu Word. Czyli (1) = Liczba_ok / 100 zmienna Liczba_ok traktowana jest jako byte. Jedynym sposobem na konwersję jednego typu na inny jest po prostu przypisanie go w ten...
Impulsy pobieram przy liczniku z kabelka który wg "Sam naprawiam ..." pochodzi od czujnika drogi umieszczonego przy skrzyni. Do zliczania impulsów wykorzystałem timer0 (oczywiście znalazłem przykład), który liczył i podbijał mi zmienną. Zrobiłem 10 km i sprawdziłem wynik. Było 5150 więc podzieliłem aby zamienić na m i wyszło 5,15 Nic mi się nie zgadza...
To rozwiązanie chcę użyć do zliczania sygnałów z czujnika. Na chwilę obecną zliczam impulsy na zmiennej i jest taki efekt, że w trakcie zliczania program wykonuje zliczanie i nie mam możliwości przełączać innych wyjść. (zliczanie jest jednym etapem gdzie musi zostać wykonana określona liczba obrotów)
Tak. Tylko mniej świadomość że procek będzie odrywany od pracy wieloma nieprzydatnymi impulsami. Ewentualnie po pierwszym impulsie na INT, wyłącz przerwania na czas drgań. Jak teraz masz podłączony kontrakton ? INT podciągnięty pod +5V ? Jak INT wyzwalasz ? W docelowym projekcie koniecznie czujnik kontraktonowy zamień na jakiś halotron albo transoptor...
Prototyp zrobiłem na pomiarze napięcia (ADC) na fotodiodzie - to chodziło, dopóki nie zacząłem testu na dworze.... Fotodioda łapała podczerwień z... no właśnie, skąd? Nie wiem. To oczywiste. Światło z otoczenia również zawiera podczerwień, więc pojawiają się zakłócenia. Po odłączeniu fotodiody i dotykaniu kabelkiem do + na wyświetlaczu także pokazywały...
Witam, Mam problem z pomiarem czasu trwania impulsu. Próbowałem różnych sposobów, siedzę już nad tym 3 dzień i nic mi nie wychodzi. Na wejście INT0 atmegi32 podaję sygnał np. 30Hz i wypełnieniu 15%. Sygnał jest stabilny więc tutaj problem odpada. Potrzebuję zmierzyć czas trwania stanu wysokiego. W programie który stworzyłem na wyświetlaczu wyświetla...
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
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...
Mam problemy z odbiornikiem modelarskim gdzie jest sygnał PWM o różnym wypełnieniu. Chciał bym zmierzyć czas tego wypełnienia. Napisałem prosty program ale jak na moją głowę coś z nim nie tak. Zbyt prosto wygląda. Może lukniecie na niego i podacie jakieś spostrzeżenia ? [syntax=c]$regfile = "M8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin...
Witam! Uważam że Minipuls-3 jest super ! Chodzę z nim drugi sezon i zachowuje się bez zarzutów ,pocisk od mausera wyciągam bez żadnych wątpliwości z 30-40cm ,wprowadziłem w nim tylko małe modyfikacje np.zmieniłem tranzystor na mocniejszy i dałem większe napięcie zasilania (18v) żeby zwiększyć energię impulsu,komunikaty oczywiście po polsku i program...
W C to bym ci nawet pokazał jak to zrobić, o BASCOMie nie mam pojęcia i nie chcę mieć :) Swoją drogą lepiej porzuć tą ciemną stronę mocy i przejdź na stronę światła :)
Nie mam, bo to tylko mikrokontroler (Attiny 13), złącza ISP, kondensatory filtrujące, stabilizator na 5V (7805) i przekaźnik sterowany kluczem tranzystorowym. Musisz mieć programator i zainstalować sobie środowisko Bascom.
No jak za każdym razem do licznika wpisujesz zero to jakim cudem ma być spełniony ten warunek timer1= A?
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...
Witaj, No save spokojnie możesz użyć.... pod warunkiem, że nie korzystasz w obsłudze przerwania z instrukcji Bascoma bo jeśli tak to nie odkładając rejestrów na stos, zgubisz ich wartości i w najlepszym przypadku będą się działy różne rzeczy. Ja bym napisał wstawkę w asemblerze odkładając wcześniej na stos używane rejestry w tym SREG. Możesz też użyc...
Tu jest gotowy przykład na atiny13 ale w ASM [url=http://www.avrfreaks.net/index.php?... nie mam pojęcia czy działa ale zapewne tak ;)
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Co zrealizować? Programowe zliczanie impulsów? Ustawiasz timer tak, żeby generował przerwanie co 100 us, sprawdzasz stan portu, robisz xor z poprzednim stanem i testujesz, które bity są ustawione - ustawiony, znaczy zaszła zmiana stanu, czyli inkrementujesz odpowiednią zmienną.
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
Prosty program nawet w BASCOMie. Podajemy impuls z PLC na pin startujemy timer i liczymy czas. Jest impuls reset timera nie ma impulsu - reset PLC Start odliczania 60 sekund. I tak w koło. Dziesięć linijek kodu.
odświeżam posta. Jak mogę wysterować atmega8 tak by w zależności o wysokości amplitudy impulsu zapalała się odpowiednia ilość diodek?
Czy to poprawny zapis do uśredienia wyniku z 60 pomiarów kodu co wyżej podawałem (*) pytam z czystej ciekawości czy to poprawna forma To nie jest 'uśrednienie',- to jest zbyteczne rozszerzenie rachunku wydajności, które jest równoznaczne z pomiarem impulsów w czasie 60 sec. Inaczej, zamiast odczytywać zawartość Countera1 po zliczeniu 250 4-milisekundowych...
Brakuje oczekiwania na puszczenie przycisku wyzwalania. W takim przypadku będziesz musiał uważać aby przycisk trzymać krócej niż 300ms, inaczej wygeneruje są kolejny impuls
1. Wszystkie zmienne powinny być typu takiego, który jest w stanie pomieścić wszystkie możliwe wartości, które mogą wystąpić, czyli w tym przykładnie zmienne WYNIK i WYNIK2 powinny być typu WORD 2. Zmienne T, S, D, J są w tym przykładzie zmieniane przed wyświetleniem i przy następnym wywołaniu podprogramu wychodzą głupoty. Sprawdz coś takiego: Dim J...
Sygnałem wyjściowym hallotrona jest napięcie. Tak więc przez 1/2 LM358 pracująca jako komparator i zasilona napięciem takim jak procesor. Ważna jest biegunowość napięcia wejściowego.
na symulatorze nie masz co patrzeć. One są do niczego. Ok sprawdzę zaraz. Dodano po 18 ok sprawdziłem. Działa bez problemu. Sprawdzałem na płycie testowej a sygnał brałem z Timera2 skonfigurowanego jako PWM. Zmieniałem różnie Prescaler od 1 do 1024 i działało bez problemu.
Powiedz w jakich zakresach ma być regulowana częstotliwość tego impulsu. A w BASCOM teoretycznie można zrobić to samo co w C - kto powiedział, że nie można w B. operować na rejestrach i uruchomić "ręcznie" timera w dowolnym trybie? Dla Autora tematu - zapoznaj się z notą katalogową procesora, z rozdziałem dotyczącym timera i jego trybu pracy jako PWM...
Hej, Jeśli chcesz płynnie regulować współczynnik wypełnienia to musisz wybrać jeden z modów PWM i wtedy będziesz skazany na jedną z kilku częstotliwości wynikających z zegara systemowego i tego jak ustawisz prescaler, Jeśli chcesz płynnie regulować częstotliwość to wybierasz mod CTC(clear timer on compare) ale będziesz miał wtedy stałe wypełnienie,...
W dobrym zakresie jest ten PWM? 1÷2ms szerokość impulsu i częstotliwości max poniżej 500Hz?
Nie pojedynczy impuls a czas trwania pojedynczego impulsu f=1/t
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
Zauważ, że przy zliczaniu impulsów w cyklu pomiarowym np. 1s można zliczyć max 15000/60 = 250 impulsów z enkodera. Czas pomiędzy dwoma impulsami to min. 4ms, a więc przy kwarcu 1MHz timer odmierzy minimum 4000 taktów. Błąd pomiaru w każdym przypadku to średnio 1/2 impulsu - w przypadku 1) mamy przy maksymalnej prędkości błąd względny 0,2%, który rośnie...
chce to liczyc przy pomocy mikrokontrolera AVR (AT90S2313) Strona "domowa" Bascom'a: aplikacja AN115 ;-)
6000 * 360 = 2 160 000 czyli 460ns na impuls. więc co najwyżej 9 cykli zegara ATMEGI na impuls :(
W twoim programie wg BASCOM-AVR są błędy: Error : 42 Line : 31 Numeric parameter expected Error : 42 Line : 32 Numeric parameter expected Error : 124 Line : 32 LOOP expected Popraw program. Przepraszam za wcześniejsze błędy. Poniżej prezentuję poprawiony kod: [syntax=text] $regfile = "m8def.dat" $crystal = 16000000 $hwstack = 32 $swstack...
1 - doprowadź sygnały z czujników do trzech wejść jednego z portów 2- każdy z tych sygnałów doprowadź do wejścia przerwania INT0 ( odseparowane diodami lub przez transoptory np. CNY-17 ) Każde pojawienie się impulsu na jednym z wejść wyzwoli przerwanie INT0 W obsłudze przerwania sprawdzasz stan wejść i porównujesz z poprzednim stanem W zależności od...
WITAM, Chciałbym wyświetlać to co jest nastawione, czyli w jednej linii nastawioną częstotliwość w Hz, a w drugiej czas trwania impulsu w mS.
Można, oczywiście z rezystorem i pojemnością kondensatora dobraną do maksymalnej spodziewanej częstotliwości impulsów.
no gdybym umiał coś zdziałać tym bełkotem to nie zadałbym pytania. Przedstawiłem jak by to wyglądało w teorii i poprosiłem o pomoc speców z tego forum polegająca na podpowiedzi jak to skubaństwo napisać, że wszystko było o.k.
Tobie chyba chodzi o "debouncing". Poczytaj to: http://www.bioinspired.com/users/ajg112/... I zrobisz to pewnie i w bascomie. Nie przejmuj się. Sam zdecydujesz, kiedy przejść na inny język programowania.
Dałem kondesator i jest lepiej z tym że zawartość timera nie zawsze jest zwiększana co jeden szczególnie gdy z większą częstotliwością podaje impulsy.
Szybko zajrzałem do noty PCF8583 i tam jest napisane, ze kiedy nie używasz funkcji alarmu to stan na pinie INT zmienia się na przeciwny co 500ms. Tak wiec impuls jest na tyle długi ze spokojnie można go traktować jak zwykły przycisk naciskany co sekundę. [syntax=vbnet]$regfile = "m32def.dat" $Crystal=8000000 $hwstack = 64 $swstack=32 $framesize = 128...
Jeśli bez timerów to zadeklaruj 4 zmienne typu long ( dla odliczania dużych wartości - to będą czasy przerw ) i 4 zmienne typu byte (czas impulsu) zerujesz zmienne przed pętlą . W pętli incrementujesz kolejno te cztery zmienne. sprawdzasz komendą if czy kazda z nich osiągneła założoną wartośc (czas przerwy) . Jeżeli tak to : zerujesz zmienną , incrementujesz...
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
zapoznaj się z tym projektem http://www.edw.com.pl/pdf/k10/55_06.pdf cała idea sterowania zawarta jest w podprogramie Foursteps i Ddelay jest to wprawdzie dla 8051 ale to kwestia tylko zmiany nazwy portów oraz podstawowa sprawa typ silnika i jego parametry
dzięki o to mi chodziło a zeby powrócił on potem do stanu czuwania tzn do początku programu i czekal na nastepny impuls?
Trzeba mierzyć czas impulsu i jeśli wynik = ileśtam to wtedy dzieje sie cośtam Może : $regfile = "twój uP" $crystal = twój crystal Config Timer1 = Counter , Edge = Rising Config Portc = Input Do If Portc.1 = 1 Then Start Timer1 If Portc.1 = 0 Then Stop Timer1 End If End If For Timer1 = 100 To 200 Reset Porta.1 Next For Timer1 = 300 To 600...
Witam. . Myślałem także o odseparowaniu galwanicznym pomiędzy przekaźnik a procek . Obecne sterowanie poprzez ULN2803 i wpięta dioda wraz z kon. równolegle w przekaźnik. Jeszcze wymienię na ekranowane przewody i obudowy powyklejam folia aluminiową. Ostatecznie co pozostanie to filtracja 230volt . Stosując ULN do załączania przekaźnika, nie potrzebujesz...
Prawie wszystko jest nie tak - oczekiwanie w przerwaniu, brak eliminacji drgań. To nie tak się robi - potrzebujesz przerwania timera zgłaszanego ze stałą częstotliwością, np. 100 Hz, i w nim robisz wszystko - sprawdzasz stan przycisku i odmierzasz czasy impulsów.
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
Powinieneś raczej mierzyć prąd na rezystorze diody (tylko że ten rezystor dla ułatwienia pomiaru musi być od strony masy). Żeby mierzyć w połowie impulsu to musisz uruchomić przerwanie od Timera1 i w nim dać funkcję Getadc. A jeżeli już mierzysz napięcie zasilania a nie prąd diody, to nie musisz trafiać w połowę impulsu więc już teraz powinno działać.
jeśli dobrze rozumiem to timer0 ma pracować jako licznik impulsów podanych na jego wejście zewnętrzne . Wejście T0 w mega8 to pin 4 portuD ( noga 6 ) a tam " wisi wyświetlacz na który procek " sypie " impulsy
Witam. Jestem osobą która od kilku miesięcy w wolnych chwilach próbuje sił z mikrokontrolerami. Jako język wybrałem Bascom bo wydaje się być bardziej przyjazny od np. C. Mam wielki problem gdyż nie wiem jak zabrać się za pisanie programu który miałby generować 59 impulsów w określonym czasie, a po wygenerowanie zrobić przerwę długości jednego impulsu...
Wszystko jest w datasheecie na prawde :) Jesli wybierzesz odpowiedni tryb (o zmiennym czasie impulsu) to albo przez zmiane OCR1A albo ICR1A (pisze z pamieci).
Zrób tak: 1 licznik do odmierzania czasu, przerwanie co np 25ms 2 licznik do zliczania impulsów Jeżeli nastąpiło przerwanie np 25ms, to zlicz liczbę impulsów. W taki sposób masz dokładniejsze odmierzanie czasu, funkcja wait do tego się nie nadaje. Przeanalizuj sobie ten temat: http://www.elektroda.pl/rtvforum/topic16... a potem dodaj to co napisałeś...
Przy zapisie nie powinieneś dawać impulsu Repeated Start oraz wszystkiego co z nim związane (czyli ponownego adresu, itp.).
Zrób to na mierzeniu czasu od impulsu do impulsu. Bo jak bedziesz mierzył ilosć impulsów w danym czasie to wałasnie tak Ci to bedzie pokazywało z rozrzutem
Prawdopodobnie podczas inicjalizacji pojawiają się zmiany na przewodach, co powoduje rozsynchronizowanie się nadajnika i odbiornika - nie ma wyraźnego końca bajtu, więc utrata jednego impulsu zegara (lub nadmiarowy impuls) spowoduje przesunięcie się danych pomiędzy nadajnikiem a odbiornikiem. Wyglądać to będzie tak, że wszystkie bajty będą przesunięte...
I tylko timer1 ma możliwości zliczania impulsów z zewnątrz?
Bardzo bym sie zdziwil gdyby ten program w jego oryginalnej postaci lub nawet z pozniejszymi poprawkami mogl funkcjoniwac! Po pierwsze: Jest on nie pelny, nie tylko brak jak juz ktoz zauwazyl, deklaracji rodzaju, typu uC i jego cyklu pracy (czestotliwosci). Pomimo faktu ze nie ma w programie pomiarow czasu to ta informacja nie moze byc pominieta. W...
Nie możesz wykorzystać timera do zliczania impulsów?
A kto powiedział,że on musi mieć dokładnie jakieś tam parametry czasowe ??. W większości przypadków wystarcza prosta pętla czasowa - aby zachować minimalne czasy trwania impulsów.Przy takiej transmisji synchronicznej zegar może się "kołysać" .Nawet gdy wstrzymamy na chwilę transfer na złączu (np. gdy wystąpi nadrzędne przerwanie i procek coś tam ważniejszego...
Cześć. Mój problem polega na tym, iż muszę oprogramować stosunkowo prosty układ. Na jego wejściu pojawiają się impulsy dodatnie, które przez rezystor i tranzystor npn zwierają nogę procesora do masy. Oczywiście ta noga jest programowo podciągnięta do plusa. Teraz do rzeczy - muszę w głównej pętli programu zawrzeć następujący warunek: - gdy podam jeden...
Poco wyważać otwarte drzwi???? Czekam na zamówione układy, jak dotrą to wymyślę coś sam i dam znać sposób z wysyłaniem RC5 przez I2c może być prostszy bo nie trzeba liczyć czasu impulsu i generować nośnej / może się mylę /
jest podciągnięcie, zwyczajnie za dużo usunąłem wklejając kod: Portd = 127, Korzystam z płytki startowej ZL11AVR, guziki nie są podłączane przez rezystory. Obecnie nie mam dostępu do "zabawki", spróbuje działać na pwm1a poprzez rejestr. Dam znać czy pomogło. Pwm nie wchodzi w grę, potrzebuje generować zmienną częstotliwość, nie zaś czas trwania impulsu....
Dr_dead....źródłem impulsów są kontaktrony, albo poprawniej zwarcie styku kontaktronu powoduje powstanie impulsu. Sprawdzę oczywiście wydajność żródła zasilania ale nie sądzę aby tu była przyczyna problemu. Raczej liczone sa jakieś"śmieci" z drgającego styku....i moje pytanie raczej skierowane było w tym kierunku. Zastosowałem parametr , przy konfiguracji...
Chce mierzyć impulsy z zakresu 10kHz do 120kHz.Jednak nie bardzo mam pojęcie jak obsłużyć przerwania pod Bascomem dla mikrokontrolera AT89cxxxx...tzn jak w bascomie wykrywać zbocze narastające a później opadające?
Witam. Można i tak kolego Kuniarz , ja robię to troszkę inaczej . Korzystam z przerwania od porównania wartości dla timera 1 . Przerwanie INT0 staruje timer od zera natomiast przerwanie Compare A załącza triak a Compare B wyłącza impuls bramkowy. Wartość od zera do wartości Compare A to opóźnienie załączania triaka od przejścia przez zero . Natomiast...
Może i proste dla tych co w tym siedzą dla mnie jeszcze trudne swego czasu coś tam pisałem w Bascomie a potem już nic a Arduino to znowu inna bajka ale do rzeczy .... - nie wiem jak deklaracje pinów ardurino maja się do pinów atmegi ? Mają się 'nijak' !!! Arduino stosuje własną numerację pinów, która w żaden sposób nawet nie jest podobna do naturalnej/fabrycznej...
Timery będą tu nieodzowne. Ogarnij je, a jak już będziesz co nieco wiedział to wtedy przy pomocy takiego timera mierz czas trwania impulsu z żyroskopu. Właśnie ten czas będzie wartością, o którą Ci chodzi.
Witam. Na początku chciałbym zaznaczyć że dopiero zaczynam "przygodę" z mikroprocesorami. Jestem w trakcie przerabiania materiału z książki Pana Góreckiego "Mikroprocesory dla początkujących". Doszedłem do ćwiczenia 29. Generator impulsów- tryb porównywania i natknąłem się na pewien problem. Otóż na portb.3 (oc1) powinien pojawić się sygnał o częstotliwości...
bascom impulsu bascom pomiar impulsu długość impulsu bascom
electrolux odkurzacz schemat radiowy sterować 868mhz hyundai obrazu
światła dzienne podłączenie polonez kierunkowskazy centralny
ZOYI ZT-703S: Oscyloskop, Multimetr i Generator w Jednym Dell laptop - kod błędu 2000-0000, klawiatura nie działa