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...
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...
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...
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...
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...
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...
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)...
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...
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 Chcialbym napisac program w bascomie ktory by dziala jako wylacznik sterowany czasem impulsu
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...
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 :)
No jak za każdym razem do licznika wpisujesz zero to jakim cudem ma być spełniony ten warunek timer1= A?
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...
jest pelno takich projektow... poszukaj w lampkach rgb... caly pic polega na odpowiednich zmianach wypelnienia (PWM) impulsu dla kazdego z trzech kolorow diody :)...
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...
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....
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...
Witam Dzieki za info. A dokladnie ma wysterowac przez uklad calkujacy tranzystor regulujacy napiecie. MarCiu
Patrzymy do datasheeta i widać, że potrzeba ustawić mode 7, gdzie OCR0A = 33 ustala częstotliwość, a OCR0B wypełnienie. TCCR0A = &B00100011 TCCR0B = &B00001001
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.
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ć...
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.
Poczytaj troszkę o PWM, zmiana szerokości impulsu dające w efekcie zmianę jasności świecenia diody. Bo oto chodziło, prawda ?
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, 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...
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ć...
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...
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 ;)
> Cofam wypowiedź <
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).
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...
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...
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....
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...
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...
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...
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
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....
. 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ś...
"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.
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...
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.
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...
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...
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...
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.
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...
chce to liczyc przy pomocy mikrokontrolera AVR (AT90S2313) Strona "domowa" Bascom'a: aplikacja AN115 ;-)
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...
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.
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...
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...
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...
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,...
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
Nie pojedynczy impuls a czas trwania pojedynczego impulsu f=1/t
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?
W dobrym zakresie jest ten PWM? 1÷2ms szerokość impulsu i częstotliwości max poniżej 500Hz?
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...
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. 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...
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...
Witam serdecznie Mam pewien dylemat, problem Sprawa dotyczy Bascoma Mam Encoder 360 imp / 360 st wyjścia A, a oraz B , b (A i B stan wysoki oraz a i b stan niski) Między A i B jest przesunięcie impulsu o 50% do zliczania impulsów poszły 1 liczniki INT0 oraz INT1 Wszystko zlicza szybko itd Problem dotyczy rozwiązania a żeby bez zaprzęgania jakiejkolwiek...
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.
Witam Szukam odpowiedzi i nie mogę znaleźć na pytanie jak w temacie. Bawię się od tygodnia z AVR dokładniej z Atmega8 i zrobiłem sobie do samochodu taki mini komputer pokładowy, który narazie podaje temp w 3 punktach na DS1820 i wyświetla to na wyświetlaczu LCD 2 * 16 (który używam do kontroli wyników) bo drugim wyświetlaczem jest HDLX1414, to 4 segmentowa...
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.
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...
Zajrzałem do Helpa. Waitus nie przyjmuje parametrów w postaci zmiennych. Muszą być stałe.
Witam. Spróbuj nie czyścić ekranu starego wyniku poprzez CLS, ale zrób np. tak: ..... If Generator = 10 Then Wynik = Generator - Czujnik Generator = 0 Czujnik = 0 Locate 1,1 Lcd "WYNICZEK= ";" " 'tu jest 6 spacji między 2 i 3 cydzysłowiem Locate 1,11 Lcd Wynik End If Loop ..... Na dobrą sprawę ciąg "WYNICZEK= " jest stały i nie ma sensu go cały czas...
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...
Nie mam noty przed sobą, ale o ile mnie pamięc nie myli to timery 0 i 2 mają możliwość zrobienia przerwania typu Compare w trybie CTC. Sprawdź to.
Chodzi o to że program jest napięty czasowo jak... barania torba. Musi być 16MHz, a pewnie i tak go pewnie będe chciał przetaktować na 20... Wcześniej sprawdzałem z 8MHz i to samo, więc niżej nie jechałem, ale za Twoją namową sprawdziłem teraz na 4MHz - i jest dobrze! Ja jakoś zawsze myślałem że bascom sobie sam przelicza czas impulsu Enable według...
Witam Zgadzam się z przedmówcą. W zmiennej "Impw" zliczane są impulsy wtryskiwacza w czasie trwania jego cyklu. Wartość 15067 to nastawa timera zależna od częstotliwości taktowania uK (zastosowanego kwarcu): 1/4000000 = 0,25us 0,25us * 15067 = 0,00376675ms Wartość ta (jak widać z programu) odpowiada w przybliżeniu stałej wtryskiwacza: 'stała wtrysku:...
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ć.
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
Wszystko jest w datasheecie na prawde :) Jesli wybierzesz odpowiedni tryb (o zmiennym czasie impulsu) to albo przez zmiane OCR1A albo ICR1A (pisze z pamieci).
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, Serwo modelarskie może nie wytrzymać uderzenia w klapę. Przekładnia raczej na pewno ulegnie zniszczeniu. Można kombinować z serwem z przekładnią metalową ale wynik uderzenia ciężko przewidzieć. Sprawa rozdzielczości sterowania jest dość prosta. W helpie do bascom AVR jest podane jak wyliczyć minimalny czas trwania impulsu w zależności od użytego...
Przy zapisie nie powinieneś dawać impulsu Repeated Start oraz wszystkiego co z nim związane (czyli ponownego adresu, itp.).
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)
I tylko timer1 ma możliwości zliczania impulsów z zewnątrz?
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...
Tak, będziesz mógł. Jeśli chcesz liczyć w czasie (a nie chcesz) to mierzony przebieg doprowadzasz do wejścia zegarowego timera, w efekcie każdy impuls powoduje zwiększenie wartości licznika o jeden. Skoro chcesz mierzyć szerokość impulsu to wykorzystujesz wejście ICP timera - timer taktujesz z maksymalną częstotliwością, z kolei impulsy z obrotomierza...
Powiedz coś więcej, jak podajesz te impulsy - przyciskiem?
zlozylem już urządzonko i wysyła mi narazie jednego smsa (tak ustawilem w celu prób) moje pytanie brzmi jak zrobić program w bascomie zeby po podaniu impulsu na któryś port (zostało kilka wolnych) program wysyłal sms i by ten port był nie aktywny przez okolo 3 minuty aż syrena skonczy wyć... bo wtedy program wykonywałby 3 operacje wysłania smsów
Można i bez timera, ale to będą krótkie impulsy :-) toggle porta.0 toggle porta.0 toggle porta.0 toggle porta.0 toggle porta.0 toggle porta.0 :-)
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ę /
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?
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.
Można, oczywiście z rezystorem i pojemnością kondensatora dobraną do maksymalnej spodziewanej częstotliwości impulsów.
Użyj wejścia ICP - wtedy zbocze zgłasza przerwanie i jednocześnie zatrzaskiwana jest zawartość timera. Odejmując dwie takie wartości masz długość impulsu, musisz jedynie zmieniać zbocze, na które reaguje ICP.
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...
Witam wspólnotę chciałbym zaznaczyć że z wykształcenia jestem mechanikiem, a z programowaniem nie miałem wcześniej styczności. Przeczytałem książeczkę która mowiła o programowaniu w jezyku bascom, i stworzyłem taki o to kod programu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 'licznik do odmierzania...
nie uwzględniałem. Nie wiem czy są takowe w ogole, a poza tym ja liczę czas trwania impulsu sterującego - czyli masy. Myślę, że bez oscyloskopu w samochodzie się nie obejdzie...
impulsu bascom bascom pomiar impulsu długość impulsu bascom
uszkodzony akumulator laptop tl072 ne5532 sterowanie silnikiem pradu stałego
światła dzienne podłączenie polonez kierunkowskazy centralny
Biała linia obok kursora w Opera GX - jak naprawić? Kington 150 GY6 – silnik do quada, dane techniczne, typowe usterki, części zamienne