Której? PLL czy tej z dwoma Timerami? Ta z PLL jest bardzo zamotana (albo inaczej - zamotana nie jest ale wymaga dużej ingerencji procesora. A to bardzo spowalnia program główny więc trzeba to napisać a assemblerze i własnie to powoduje zamotanie). Podam więc ten drugi sposób: $regfile = "M8def.dat" $crystal = 8000000 $hwstack = 64 '---------------------------------------...
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...
"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.
a jak chcesz, żeby zamiast zer były puste pola na wyświetlaczu to piszesz warunek, że jeśli cyfraX <> 0 to włącz tranzystor
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.
Spróbuj najpierw najprostrzym sposobem, zamieniając typ zmiennych. Cyfra_ok(3) As Word Cyfra_nok(3) As Word
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...
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...
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...
Obstawiam, że się BASCOM nie wyrabia z obsługa przerwań co 13us. Ale na BASCOM-mie się nie znam. 4.3ms daje przerwanie co ca. 16us, co by się zgadzało z obserwowaną czestotliwością ok. 30kHz.
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
W Bascomie jest do tego specjalna instrukcja Zaglądnij do Helpa na polecenie Pulsein zmienna - tu znajdzie się nasz wynik w mikrosekundach PIND - to port do jakiego się podłączymy 1 - pin portu do jakiego jesteśmy podłączeni 0 - wybieramy czy chcemy obliczać do czasu pojawienia się stanu niskiego, czyli 0 czy wysokiego czyli zapiszemy wtedy 1
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...
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.
No jak za każdym razem do licznika wpisujesz zero to jakim cudem ma być spełniony ten warunek timer1= A?
Może odpal jakiś Timer żeby generował przerwanie bardzo często. Powiedzmy co 10us. I w przerwaniu sprawdzaj czy pin ma stan 0 czy 1. Jak 1 to inkrementujesz jakaś zmienną. Jak zmieni się na 0 to zwracasz wynik i zerujesz tą zmienną. Oczywiście w tym samym przerwaniu sprawdzaj tak samo drugi pin. Niestety wymaga to kodu obsługi przerwania w assemblerze...
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....
jeden impuls nigdy nie ustawi serva w zadanej pozycji MirekCz dobra rada
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.
Witam Patrz DEBOUNCE pin_portu , stan , etykieta w Help
chce to liczyc przy pomocy mikrokontrolera AVR (AT90S2313) Strona "domowa" Bascom'a: aplikacja AN115 ;-)
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...
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.
Dim Generator As Byte , Czujnik As Byte , Wynik As Byte , Gen As Byte , dim A as byte declare sub czekaj Czas As Byte Portd = 3 Cls Do Debounce Pind.0 , 0 , Gen , Sub Debounce Pind.1 , 0 , Czu , Sub If Generator = 10 Then Wynik = Generator - Czujnik Generator = 0 Czujnik = 0 Lcd "WYNICZEK= " Lcd Wynik End If Waitms 1 ' odczekaj 1 ms incr...
6000 * 360 = 2 160 000 czyli 460ns na impuls. więc co najwyżej 9 cykli zegara ATMEGI na impuls :(
Witam. Robie cyfrowy licznik w bascomie i wiekszosc mam juz ustalone. Chciałbym aby licznik mial mozliwosc ustawiania cyfrowego filtru czestotliwosci impulsow. Np. na jakies wartosci 50Hz, 100Hz, 500Hz i 1kHz. Chodzi o to ze gdy ustawie mu filtr na 100Hz zeby nie naliczal impulsow szybszych niz ta zadana w filtrze. Wiekrzosc fabrycznych licznikow ma...
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
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.
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
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...
No to jeszcze zapowiadana wersja turbo (przy założeniu że zmienna Dystans jest zmienną 16-to bitową): [syntax=basic4gl]On Compare1a Timer1_isr Nosave ... ... Timer1_isr: push R16 In R16, SREG push R16 push R17 lds R16, {Dystans+0} lds R17, {Dystans+1} subi R16, 255 sbci R17, 255 sts {Dystans+0}, R16 sts {Dystans+1}, R17 pop R17 pop R16 !Out SREG, R16...
Można, oczywiście z rezystorem i pojemnością kondensatora dobraną do maksymalnej spodziewanej częstotliwości impulsów.
(at)ElektrodaBot Napisz program w Bascom dla Atmega8, który będzie liczył pojedyncze impulsy w ciągu 24 godzin z zapamiętaniem najkrótszego odstępu między tymi impulsami, wynik wyświetlał na wyświetlaczu 2x16 opartym na HD44780.
Witam. Program według mnie jest przejrzysty. Po wejściu do podprogramu pierwsze If... sprawdzi jeszcze raz czy jest wciśnięty przycisk K1 wygeneruje impuls i wejdzie w pętlę Do... Loop o ile w dalszym ciągu jest wciśnięty przycisk. Jeżeli nie to wygeneruje jescze raz impuls jeszcze raz i wyjdzie z podprogramu. Ja również tego nie sprawdzałem, ale powinno...
Zajrzałem do Helpa. Waitus nie przyjmuje parametrów w postaci zmiennych. Muszą być stałe.
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...
Witam czy ktoś mi zmodernizuje ten program tak aby liczył mi same impulsy i je aktualizował na bieżąco a po przekroczeniu liczby 999 się resetował i liczył od nowa $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1...
Czy na 100% masz układy PCF8574 bez literki A na końcu? Ja bym jeszcze sprawdził czy układ odpowiada impulsem ACK po podaniu adresu.
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.
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).
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...
Witam ! Ustaw odpowiednio fuse bity, bo ATtiny2313 jest fabrycznie ustawiony na wewnętrzny generator 1MHz. Pozdrawiam. Stefan amator
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?
W Helpie bascoma jest napisane: "LOW LEVEL to generate an interrupt while the pin is held low. Holding the pin low will generate an interrupt over and over again." Przetłumaczyć, czy znasz angielski?
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ą.
I tylko timer1 ma możliwości zliczania impulsów z zewnątrz?
Nie możesz wykorzystać timera do zliczania impulsów?
zastanawiam się czy przypadkiem nie mam problemu z zasilaniem( obok falownik i napęd silnika prądu stałego ) a zasilacz prosty -trafo +7805 +po 100nano +100 mikro. W takim otoczeniu niewykluczone że jest to problem zakłóceń spróbuj podbić pojemności zasilacza (np. po 220uF) i zblokować sygnał reset jakąś większą pojemnością. Jeśli to zmniejszy błędy...
Uruchom przerwanie od Countera (najlepiej od porównania wartości zliczonej z ustawioną) i zmień stan portu w podprogramie obsługi przerwania lub prościej, ale mało elegancko zmień [syntax=basic4gl]If Counter1 = 100 Then ...[/syntax] na [syntax=basic4gl]If Counter1 >= 100 Then ...[/syntax] Nie tak jest to, że w chwili zliczenia setki nasz if może się...
A czy 1-szy program wyświetla zegar w górnej lini a 2-gi, obrotomierz w dolnej? Mam na myśli taki trik, aby może wrzucić po prostu 1 program a potem drugi. Tylko, że trzeba rozwiązać problem z podprogramami.
Witam :) Dzięki za kolejne koncepcje. Ale nie uśmiecha mi się dokładać kolejne kostki liczników, tym bardziej jak ma ich być "bateria". Zależy mi raczej na małych gabarytach układu. Liczniki też wolał bym zarezerwować dla innych celów - choć by odliczania czasu całej sekwencji i PWM,u Jak pisałem powyżej komenda Waitms wystarcza tu w zupełności gdyż...
Po pierwsze pochwal się jakimś listingiem z tego co napisałeś i nie działa , gdzieś mi się już przewinął przed oczami taki projekt na elektrodzie i jak pamiętam autor również próbował wymusić napisanie programu . Między szukaniem pomocy a wyręczaniem się innymi jest cienka granica . Tym bardziej zastanawia mnie to ,że cały układ można przetestować na...
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.
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.
Witam Podany kawałek nie liczy czasu tylko ilość impulsów w czasie. Pozdrawiam
Potrzebuję napisać licznik impulsów w Bascom 89cx051 o następujących parametrach: Wprowadzam ilość impulsów za pomocą trzech klawiszy (pierwszy klawisz ustawia pozycję nad liczba która będzie zmieniana, drugi i trzeci służą do zmiany góra-dół), po ustawieniu odpowiedniej liczby (maksymalnie 7 cyfr), wciskam czwarty klawisz (start) w tym monecie na wyjściu...
Czyli przesuwająca się linijka jak rozumiem... poczytaj o instrukcji Shift, bo na temat odczytu portu (przyjmowaniu impulsów) napisano już na forum wiele.
Witam. W przerwaniu wpisałeś : Timer1 = 131 do zliczenia zostało 65536 - 131 = 65405 Przy wpisaniu do Timer0 tej samej wartości do zliczenia pozostaje : 256 - 131 = 125 impulsów. Myślę, że dobrze zrozumiałem Twój post.
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...
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...
Jak najprościej wygenerować na tiny13 3 impulsy w ciągu 1 sekundy , ale bez użycia WAIT .
Halogeny też będą zabronione ?? a co do projektu, właśnie zakończyłem projekt na uczelnie gdzie wykorzystuję sterowanie halogenem. jest to zrealizowane w ten sposób, że mam 100 poziomów jasności (0-100%). Sterowanie fazowe oczywiście i triak załączany impulsem. Logicznie, program działa tak: 1) system detekcji zera (transoptor) wykrywa moment w którym...
Tylko mikrokontroler... bierzesz jakiś AVR... BASCOM + programator za grosze + 2 dni posiedzisz i sam to zrobisz... Prostsza plytka, tańsze, same korzyści... Pozdrowienia
A co to za kwiatek: Lcd Wynik2 = Wynik + Wynik1 Powinno być: Wynik2 = Wynik + Wynik1 Lcd Wynik2 A jeszcze zmienna Wynik2 jest niepotrzebna i może być: Wynik = Wynik + Wynik1 Lcd Wynik
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ć...
I pilotach LG niektórych. Dokładnie: one 657 1605 zero 657 469 Takimi (średnio) długościami impulsów (w us) kodowane są zera i jedynki.
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...
No ale przecież nikt nie każe stosować do tego komend BASCOMa. Wszyscy BASCOMowcy sobie sami narzucili takie dziwne podejście i potem są pretensje jak ktoś im podsuwa przykładowy kod w C (prosty ale operujący na rejestrach). A to przecież najnormalniejsza rzecz (operowanie na rejestrach).
1. Najważniejsze jest modulowanie świecenia diody IR. Od strony programowanej sprawa jest dość prosta. Trzeba wygenerować impulsy o częstotliwości kilku lub kilkudziesięciu kHz i przy ich pomocy włączać diodę IR. 2. Jeśli elementy jakimi dysponujesz to fototranzystory to możesz zbudować taki odbiornik: https://obrazki.elektroda.pl/8607391600_...
Polecam help do Bascoma tam wszystko jest pięknie opisane.
Wracając do tych 1200ms dodanych na końcu procedury Res1, można je zastąpić w części konfiguracyjnej, tam gdzie ustawiamy piny jako wej/wyj, stosując polecenie: [syntax=basic4gl] config debounce =1200 [/syntax] lub też zrobić wykrywanie zbocza i do startu zam. i otw. stosować impuls.
Na razie patrzyłem tylko w dokumentację Bascoma... dokumentacje tego procka ma coś koło 250 stron :/ Jeśli już wiesz ogólnie jak działają avr-y , to wtedy dokumentację czytaj wybiórczo , czyli tę część która Cie interesuje ;) Z dokumentacji Bascoma wynika, że stosując polecenie config timer nie da się ustawić prescalera dla trybu PWM... Między innymi...
Hehh w sumie racja :). Będę szukał i mam nadzieje, że znajdę:). Dziękuję i pozdrawiam!
bedzie dzialac ;)
Witaj. Tak na pierwszy rzut oka, to podejrzewałbym sposób ładowania wartości Czestotliwosc do Timera1. Nie na darmo robiłem to inaczej w moim przykładzie. Ponieważ nie mogę tego sprawdzić w tej chwili, a Bascomem zajmuję się od czasu do czasu (a i skleroza swoje robi :) ), więc radzę Ci to sprawdzić. Pozdrowienia - teedd
lepiej licz czas między impulsami będzie dokładniej przy słabych wiatrach lub zamiast 20 imp./obr. daj >200
A co to za problem... programujesz procesorek i po problemie, choćby 89C1051 sobie z tym poradzi, a program skrobniesz nawet w Bascomie. Chyba, że potrzebujesz precyzyjnej regulacji wypełnienia tych impulsów.
To, o czym piszesz, to na pewno nie jest IRDA. Używasz TSOP1736. "36" w nazwie - to częstotliwość filtra pasmowego w kHz. żeby to zadziałało, musisz sterować diodą podczerwoną falą prostokątną 36 kHz, w dodatku sygnał nie może być ciągły, 10-20 impulsów nadawania i min. 10 impulsów przerwy.
Ten kod można zapisać na co najmniej n sposobów, podam tylko najlepszy (wg mnie): ISR(INT0_vect) { unsigned char pintemp = PIND & (_BV(7)|_BV(2)); if (pintemp == 0 || pintemp == (_BV(7)|_BV(2))&... PORTC++; else PORTC--; }
Pomysl fajny, ale tez jak ja wykorzystujesz dodatkowy sprzet. Jednak w tym zastosowaniu dodatkowy sprzet bedzie najlepszym wyjsciem.
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...
Witam. Mam układ L6219 i atmege8 potrzeba mi programu, cokolwiek. Podpowiedzi jak go napisać? Jak ma wyglądać impuls? Pozdrawiam :D
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...
Musisz zliczoną ilość impulsów podzielić przez 100 :>
Config Timer0 = Timer , Prescale = 32 Enable Interrupts Enable Int0 On Int0 Przerwanie1 Nosave Cls 'tutaj wysyłasz impuls pierwszy start timer0 Do : Loop Przerwanie1: stop timer0 'tutaj co ci sie podoba lcd "odleglosc:" ; wynik 'co tam jeszcze chcesz 'wysyłasz impuls start timer0 return End
Poczytaj w helpie bascoma o funkcji Encoder. Prościej się już nie da.
Przeniosłem Temat był raportowany!
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
Spójrz do noty. Sprawdź sobie jak się nazywa rejestr Timera0 i czytaj z niego.
Witam, Nie będę zakładał nowego tematu. Mam podobny problem. Atmega 2560 + 16Mhz. Przy tym ustawieniu timera przerwanie powinno być generowane co 0,5s. Natomiast jest generowane co 1s. 256/16000000= 16us*65536=1,048576s 65536-31250=34286 co daje 0,5s [syntax=basic4gl] $regfile = "m2560def.dat" $crystal = 16000000 Config Portg.5 = Output : Portg.5 =...
rozumiem że ma to być 5V/2A prądu przemiennego? nie , bo zniszczysz stopień mocy ULN-na i przy okazji układ z którego jest sterowany , masz poprawny schemat pokazany wyżej można przyjąć założenia przedstawione wcześniej , ale przy normalnej pracy wartości prądu będą zupełnie inne i w głównej mierze zależne od częstotliwości zmian sekwencji sterowania...
A masz tyle?:>
Sam mi sugerowales atom1477 , ze zaleznosci czasowe pomiedzy impulsami nie maja wplywu i to potwierdzily kolejne poprawki fragmentu kodu do wysylania. Nie. Mówiłem że prędkość nie ma znaczenia. Zmiana prędkości zmienia czasy. Ale nie zależności czasowe. Zależności czasowe to też kolejność występowania sygnałów. Ta nie może być dowolna. Ja pisałem tylko...
Witam Czy w BASCOM’ie jest jakaś komenda która zlicza liczbę impulsów na jakimś z portów?? Pozdrawiam Michał
Witam W załączniku masz cały program stopera z dokładnością 0,1s Wytniesz z niego co trzeba Pozdrawiam PIOTR
No to muszę Cię zmartwić bo to jest dość trudne do zrobienia. Prędzej zrobisz to na zwykłym układzie PLL (4046) i dzielniku (którym może byc AVR) niż na samym AVRku.
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...
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...
W moich układach do sterowania serwami korzystam z funkcji PULSEOUT (opis w Helpie), która wydaje mi się o wiele wygodniejsza od "servos". Trzeba tylko zadbać o to, żeby impuls na wyjściach pojawiał się co ok. 20ms.
Zgadzam się, napięcia mogą być o wiele większe, nie posiadam oscyloskopu, poprostu mierzyłem to prostym multimetrem, multimetr uśrednia wartości. Nie zmienia to faktu że atmega nie miała z silnikiem szans. ... i pewnie już nie żyje, przy tak wysokich impulsach. Polecam lekturę Dodano po 4 ... Są prostsze elementy, nieprzyporządkowujące danej pozycji...
bascom impuls bascom liczenie impuls bascom timer impuls
grzałka spiralny kalkulator głosnika renault ciśnienie oleju silnik
demontaż wymiennika ciepła vaillant demontaż wymiennika ciepła vaillant
Jak przyspieszyć suszenie w pralko-suszarce Haier? Tłok do pilarki Makita DCS 460 - gdzie kupić?