A gdzie instrukcja CONFIG TIMER1 = COUNTER?
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...
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
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...
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.
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.
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ą.
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).
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...
Nie wiem jak napisać przerwanie aby w kółko się nie wykonywało jak jest stan niski. Po prostu konfiguruje się przerwanie inne niż LOW LEVEL. Domyślnie jest low lewel dlatego mam podejrzenie że bascom coś namieszał i nie zmienił. Spróbuj też dodać jakiś mały kondensator, może jakieś szpilko się pojawiają i zlicza Ci dodatkowe impulsy.
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
Zliczam ilość impulsów z przycisku podłączonego do masy. Dokładność sobie później poprawię, na początek nic mi nie zlicza i nie wiem w czym jest problem. Pozdrawiam Sławek
Witam Czy w BASCOM’ie jest jakaś komenda która zlicza liczbę impulsów na jakimś z portów?? Pozdrawiam Michał
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...
Witam ! Ustaw odpowiednio fuse bity, bo ATtiny2313 jest fabrycznie ustawiony na wewnętrzny generator 1MHz. Pozdrawiam. Stefan amator
........ chce wykorzystać wewnętrzny kwarc 8Mhz po trzecie czytając helpa jesli dobrze rozumiem to timer1 jest 16bitowy a timer0 jest 8 bitowy emarcus - gdybym chciał wykorzystać twój pomysł to gdybym zostawil timer1 jako counter a jako timer wykorzystał timer0 ktory by zliczał czas w jakim sa zbierane impulsy - jeśli o to ci chodziło i jeśli jest...
Transoptor zdaje się generować delikatnie poszarpane zbocza - przez co na jednym zboczu zlicza mi kilkadziesiąt malutkich zboczy...
Mnożenie można zrobić robiąc programową symulację PLL. Zwykła symulacja wymagała będzie użycia jednego Timera i dość zamotanego kodu. Ale można inaczej. Dwa Timery. Jeden Timer zlicza okres przebiegu. A drugiego ustawia sie żeby zliczał powiedzmy do 1/3 wartości zmierzonej pierwszym Timerem. Taki układ ma już w miarę dobre parametery bo powinien działać...
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ę...
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube]https://www.youtube.com/watch?v... Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój wpis z innego...
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...
6000 * 360 = 2 160 000 czyli 460ns na impuls. więc co najwyżej 9 cykli zegara ATMEGI na impuls :(
Wszystko zależy od tego co jest źródłem impulsów. Jeżeli przycisk, to może to być efekt odbijania sie styków. Jeżeli to sygnał z innego urządzenia to może jego wydajność prądowa jest mała i zbocze zbyt wolno opada. A jeżeli sygnał jest dostarczany przez dodatkową rezystancję to może podciągający rezystor jest za mały.
Ten sposób też będzie powolny a do tego niedokładny. W sumie doszedłem do wniosku że programowe zliczanie impulsów nie będzie gorsze. Zliczanie 4 impulsów trwa 10us w symulacji programowej. Zauważ że w tym pierwszym rozwiązaniu mnoży się przez 28 a więc dokładność pomiaru jest do kitu. Przy 4000rpm układ zlicza tylko 160 impulsów. Możesz dać Prescale...
Witam Pisalem kiedys program do sterowania robotem (manipulatorem ) w bascomie. Zliczal on miedzy innymi impulsy z 3 enkoderow. i wszystko ladnie chodzilo: Fragment kody ktory zlicza impulsy z 3 enkoderow: //enkoder 1 Enk1_a Alias Pinb.0 Enk1_b Alias Pinb.1 //enkoder 2 Enk2_a Alias Pinb.2 Enk2_b Alias Pinb.3 //enkoder 3 Enk3_a Alias Pinb.4 Enk3_b Alias...
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
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...
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
Ciekawe jest to widać w twoim profilu (Pomógł: 79927) :P ale do rzeczy. Według mnie coś takiego można zrealizować w następujący sposób: - konfigurujesz przerwanie zewnętrzne żeby było wyzwalane przerwanie zboczem opadającym, rosnącym etc. - w tym przerwaniu uruchamiasz timer który zlicza sobie impulsy - jeżeli zliczy określoną ilość impulsów to wykonujesz...
Po prostu byk w BASCOMie. Prescaler jest ustawiany jako CS02..CS00 = 110 a to oznacza, że licznik nie zlicza impulsów zegarowych tylko zewnętrzne na T0 z opadającym zboczem.
Ja to tylko symulowałem w bascomie? do procka nie wgrywałem może ktoś zaproponuje inny counter??
Po długim analizowaniu problemu narodziło mi się coś takiego: 'pętla główna Dim I As Integer Dim Impulsy As Long Dim Sek As Integer Tccr1a = &H00 'ustawianie trybu pracy timera1 Tccr1b = &H0C Ocr1ah = &H7A 'załadowanie liczby 31250 do licznika Ocr1al = &H12 'przykładowa liczba do odmierzania (1s) Tcnt1h = &H00 ' zerowania rejestrów do zliczania...
Mozna to zrealizować na dwa sposoby: 1. Za pomocą przerwania zewnętrznego INTx zliczać ilość impulsów. Podobny temat już jest: 2 Zliczać impulsy na wejściu ICR Podobny temat masz poniżej: http://www.elektroda.pl/rtvforum/topic18...
Program chyba jest ok, jak cos to zamieszcze listing, jest w bascomie. Moze jeszcze inaczej, nawet jesli zewrze bezposrednio wejscie T0 do +5V to daliej zlicza a wtedy przeciez wartosc jest ustalona. Czujnik nie jest stykowy :) szkoda ze nie mam oscyloskopu... :(
A wypełnienie sygnału musi być takie samo? Jeśli nie, to może wystarczy mierzyć okres sygnału wejściowego i mnożyć go razy 10/11 a następnie produkować przebieg o takim okresie.
Nio zobaczymy. Doszlismy wkoncu do wniosku ze zliczanie bedzie poprzez port uC a wyswietlanie w przerwaniu timera zeby nie migotaly wyswietlacze. Przy zliczaniu przez timer zlicza on wszystkie drgania przycisku czy przekaznika a RC sie nie sprawdzi bo musi to byc bardzo uniwersalny licznik.
Mozna wszystko nieco uprościć: 1. Podączamy linie to INT0 i INT1 (bez zian) 2. T0 zlicza czas w tybie 16-bitowym (bez dodatkowej pętli) 3. w momencie wykonania przerwania z T0 impulsy zostaje zczytana wartość z rejestrów odpowiedzialnych z kanałów z INT0 i INT1 4. potem jakas procedura potrzebana do wizualizacji danych no i skok do 1 z uprzednim wyzerowaniem...
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
Witam 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...
. 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ś...
Witam, Zależy mi tylko na tym, żeby Arduino zliczał impulsy z kontraktrona do 5 - 1 impuls- świeci się dioda led 1 - 2 impuls zapala się dioda led 2 - 3 impuls zapala się dioda led 3 - 4 impuls zapala się dioda led 4 - 5 impuls zapala się dioda led 5 i dodatkowo daje sygnał ciągły HIGH na pin SILOWNIKA przez cały 5 po 6 impulsie reset i znowu: - 1...
czodi o to ... heh tak myslalem ze jakis uklad ale myslalem tez ze cos mniej skaplikowanego Jak masz enkoder AB, dający sygnał TTL a nie taki z myszki, to możesz darować sobie 74HC14 i jego peryferia. Układ zlicza oba zbocza sygnału A enkodera, więc podwaja jego rozdzielczość.
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...
Witajcie! Dziś właśnie jest ten dzień, w którym 1 raz zasiadłem do mikrokontrolera mega8 i pod bascom próbuje coś takiego: Chciałbym zliczać liczbę wciśnieć przycisku np na porcie d.0 i wynik wysłać wyświetlacz na lcd zrobiłem tak [...] Impuls Alias Pind.0 Config Impuls = Input Dim Wartosc As Integer Dim Pom As Integer Wartosc = 0 Pom = 0 Set Pind.0...
To ma zliczać impulsy z enkodera. A nie można zastosować czegoś takiego do eliminowania drgań na stykach?
Wolałbym nie pisać Ci gotowca ;) natomiast moja rada jest taka. Uruchomić timer i jeśli częstotliwość tych impulsów jest dość wysoka to bezpośrednio w przerwaniu timera dawać sygnał rozpoczęcia i zakończenia zliczania i zliczać w pętli głównej programu, a jeśli częstotliwość impulsów jest mała (np. w ciągu 5 czy 10s ma liczyć) to lepiej zrobić dodatkowy...
Przeszło mi coś przez myśl. Możesz zliczać po prostu impulsy wysyłane przez nadajnik. Inkrementujesz zmienną "czas". Każdy odebrany impuls resetuje nam czas, a zmienna np "odebrano" zlicza ilość odebranych impulsów. Po zaprzestaniu nadawania czas osiąga jakąś wartość i po jej osiągnięciu zmienna "odebrano" zostaje zapisana. To tyle by było w BASCOM,...
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...
Może być Timer0 inaczej skonfigórowany np: 8000000/256 = 31250Hz Load Timer0, 250 'zapis w Bascom ' TCNT0 = 6 'doliczy 250 31250/250 = 125Hz = 8ms ' występuje przerwanie Timer0 jest ośmio bitowy, więc może zliczyć od 0 do 255 czyli 256 impulsów. W przerwaniu wpisujesz to co ma być wykonane. 256 - prescaler 250 - dodatkowe zliczanie wyprzedził mnie bart-projects
https://obrazki.elektroda.pl/7406837400_... Chyba siła wyższa musi w tym maczać palce, bo przymierzałem się od kilku lat(!) z publikacją tego projektu i ciągle albo brak czasu albo skleroza... a tu trafił się konkurs no to jak nie skorzystać :) Urządzenie o, którym mowa w temacie to bardzo prosty i niezwykle przydatny (przynajmniej...
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...
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....
Nieee- to się kompiluje. Sprawdziłem. To jest stary, klasyczny problem. Czętościomierz- czasomierz. Dokładność zależy od częstotliwości- czasu. Przy dużej częstotliwości otwieramy "okno"- bramkę i zliczamy ile tych impulsów było. Przy małej częstotliwości mierzymy czas między impulsami a bramka- pracująca teraz jako generator impulsów- zlicza czas między...
Witam, Nie chciałem zaczynać nowego tematu o impulsatorze, więc się podpinam;) więc potrzebuję program do obsługi impulsatora, musi zliczać szybko impulsy, oraz działać poprawnie prawo(dodać impulsy)-lewo(odjąć impulsy). Po przeszukaniu wszystkiego co możliwe, po przestudiowaniu wszystkich programów dowiedziałem się że najszybciej działa na przerwaniach....
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...
Gdy wpiszesz 65535, będziesz miał przepełnienie co 1 takt, dla 65534 co 2 takty. Resztę sam policz. hyhyhy no rzeczywiście jeszcze prostsze wytłumaczenie, no prościej już się nie da chyba ;) chcesz odliczyć 1 impuls to: 65536 - 1 --> wpisujesz 65535 chcesz odliczyć 2 impulsy to: 65536 - 2 --> wpisujesz 65534 a jak chcesz odliczyć 15625 impulsów to:...
WItam kolegów jest taki problem podaję na wejśie T1 atmega8 przy kwarcu 16Mhz impulsy o okresie 11us co daje około 90kHz i procek zlicza jak należy bo porównuję z oscyloskopem, ale problem rozpoczyna się gdy włączę INT0 na którym też są te same impulsy ,gdzie sprawdzany jest kierunek obrotu enkodera , wtedy licznik zlicza głupoty w zasadzie około dwa...
Jeszcze raz dzięki ;) Ale już widzę, że będę musiał przerobić program, bo program za dużo zlicza impulsów z Pinb.0 ( działanie pętli jak się domyślam ). czytam o poleceniu " Debounce " i próbowałem go już zastosować ale mam jeszcze z nim problemy ;)
Witam! Mam pytania: jak w praktyce zastosowac timery? Jak one działają? W którą stronę zliczają? Jak zczytac ich stan? Do ilu mogą zliczać? chciałbym, aby ktoś wytłumaczył mi to na przykładzie Atmegi8 i języka Bascom. Wiem już że: -Timery zliczają impulsy które same generują wg. prescalera -Prescaler to taki dzielnik, który bierze jakąś część taktowania...
No tak, BASCOM - no to niestety ja nie pomogę :cry:
Może ten temat troche pomoże jest na innym kwarcu ale zasada ogólnie ta sama http://www.portalnaukowy.republika.pl/ob... Takie rozwiązanie w Bascomie jest najprostsze, tzn pomiar czasu poprzez komendę Wait 1(odczekanie 1 sekundy), odliczenie 1 sekundy podczas, której Timer1 jako licznik zlicza ilość impulsów. Już tak robiłem, ale domyślnie...
Musisz sobie sklecić mału układ mikroprocesorowy zliczający impulsy, potem wysłać to na RSa. Temat jest banalny i miliony razy mielony na forum. Jeśli chodzi o język programowania to Bascom, albo C.
Witam ! Zastępując fragment programu : 'If Impuls = 0 Then 'Incr Licznik 'Waitms 100 'End If Debounce Pind.5 , 0 , Licz , Sub i dopisując : Licz: Incr Licznik Return Otrzymamy program zliczający pojedyncze impulsy. Pozdrawiam. Stefan
Witam. Mam problem z przerwaniami bascomavr. Mój program główny robi różne rzeczy jak na przykład obsługuje wyświetlacz lcd sterowany szeregowo. Tak sie zlozylo ze musze liczyc impuly sygnalu dolaczonego do INT0. Generowanie przerwań powoduje że ta obsluga wyswietlacza bardzo jest zakłócona (dziwne rzeczy sie wyswietlaja). Jeśli na czas zapisu informacji...
Trzeba tu zaznaczyć, że metoda zliczania impulsów w czasie nie jest tożsama, pod względem efektów, z pomiarem czasu między kolejnymi impulsami. Pierwsza metoda nadaje się do wyższych częstotliwości, a druga do niższych. Problem tkwi w rozdzielczości pomiaru i szybkości uzyskania wyniku. Licznik AVR'a reaguje na impulsy o częstotliwości maksymalnej niższej...
Witam. Proszę Kolegów o podpowiedź jak z impulsatora sterować wyjściami : jeśli kręcę w prawo załączony np. portc.1 a w lewo portc.2. Port powinien być w stanie załączenia tylko w momencie kręcenia w danym kierunku , po zaniku ruchu wyjście ma być wyłączone. Oto część kodu wyzwalana przerwaniem: .......... (oczywiście "wait" odpada). Skonfiguruj w...
Te impulsy wejściowe i wyjście ma być na tym samym pinie ? PD.0? Jeśli nie to ustawiamy przerwanie na INT0 i w obsłudze przerwania zwiększamy zmienną. Jeśli zmienna osiągnie dziesięć ustawiamy wyjscie na stan wysoki. Jednocześnie timer zlicza czas pomiędzy impulsami i jeśeli jest większy niż 60 sekund ustawia wyjście na stan niski. Podumowując: Przerwanie...
Polecam help do Bascoma tam wszystko jest pięknie opisane.
zaprzyjaznij sie z datasheetem i znajdz sobie w nim rozdzial p.t. Input Capture gotowy kod mozesz napisac na podstawie tego co tam znajdziesz, powodzenia. 0x41 0x56 0x45!!
Konfiguracja timera '51 jest inna : [syntax=basic4gl]Składnia: CONFIG TIMERx = COUNTER | TIMER , GATE = INTERNAL | EXTERNAL , MODE = 0 | 1 | 2 | 3 gdzie: x0 – TIMER0, 1 – TIMER1, Opis: TIMER0 i TIMER1 mogą pracować jako liczniki impulsów zewnętrznych gdy pierwszy parametr jest ustawiony jako COUNTER. Impulsy zliczane muszą być dostarczane...
Witam, Zacząłem zabawę z AVR-em. Oczywiście trzeba uruchomić pomysł w miarę szybko więc BASCOM. Programy "kroczki" testuję na konfiguracji na wyrost, czyli Atmega16 z taktem 16MHz. Popełniłem program testowy który w założeniu miał zliczać impulsy poprzez timer. Źródłem impulsów jest PCF8593, procek obsługuje to przez PortB.0 (Wejście dla timerka). Konfiguracja...
ATmega8 posiada trzy liczniki/timery, z których dwa (T0 i T1) mają możliwość zliczania zewnętrznych impulsów, dołączanych do pinów 6 i 11. Wg atmelowskiego pdf'a częstotliwość zliczanych impulsów nie może być wyższa niż połowa częstotliwości zegara ATmegi. Dla bezpieczeństwa i zapewnienia prawidłowej synchronizacji podają wartość fclk/2.5 - co w Twoim...
kamyczek: Coś chyba niedokładnie odrobiłeś zadanie domowe... Co z tego, że wystąpią równocześnie? Po prostu najpierw będzie obsłużone to o wyzszym priorytecie (T0), a potem te i niższym. Zresztą co ma obsługa przerwań do ilości zliczonych przez tajmer impulsów? Co podmiot liryczny ma na myśli: "..włączanie obu liczników równocześnie i to z wielokrotną...
Witam, Potrzebuje zrobić sterownik tranzystorów do zasilacza impulsowego topologi half-bridge. Tranzystory są tutaj sterowane PWM na przemian. Chciałem zastosować sterowanie PWM które miało by działać w następujący sposób: [syntax=vbnet]Config Portb = &B11111111 : Portb = &B11111111 Config Timer0 = Timer , Prescale = 8 Enable Interrupts Enable...
Witam. Wolno czyli tak około jednego dotknięcia na sekundę, a jak już szybciej dotykam to licznik stoi a jak zrobię to na porcie d2 to wtedy po jednym dotknięciu wyskakują duże liczby np: 100. Program będzie musiał złapać około 50 impulsów na sekundę. Pozdrawiam.
Dzięki, widze teraz, że jednak troszke namieszałem ustawiając Timer2 ;) Nie wiem tylko dlaczego Bascom przepuścił moją konfiguracje Timer2. W pierwszej wersji programu, która była bez wykorzystania PWM (poprzez Timer2), program odliczał czas (Timer1), zliczał impulsy na Timer0 i migał diodą. W związku z tym pętla w programie głównym była pusta (Do-Loop)....
Nie tędy droga, Ty musisz zrobić coś dokładnie odwrotnego - nie wygenerować sygnał, ale go zmierzyć. Rozwiązania są 2, ale jeśli programujesz w bascomie i nie masz ochoty na operacje na rejestrach w procesora to kurczą się do jednego. Mianowicie: 0. ustawiasz timer na zliczanie impulsów i zmianę wartości jakiejś zmiennej - parametry dobierz w zależności...
Panowie, chyba juz wszystko zostało napisane. Dyskutujemy o rodzajach czujników i ich zasadach działania, a nikt nie zamieścił kawałka kodu. Od początku tylko o to proszę. Na razie chce przetestować tylko impulsowy przebieg na LED IR i jego odczyt, bez konkretnych częstotliwości, porównywania z tłem itd. Jest ktoś w stanie? Wszelkie dostępne możliwości...
Używasz INT0 i INT1 do zliczania impulsów na linii A impulsatorów, ustawiasz generację przerwań na opadające zbocze. W przerwaniu sprawdzasz linię B danego impulsatora, jeśli B jest w stanie wysokim, to masz impuls "w lewo", jeśli B jest w stanie niskim, to masz impuls "w prawo". Pozostaje jeszcze eliminacja drgań styków... ;) Timer1 wykorzystujesz...
ok ja podpowiem co to jest :D COnfig timer0 = timer 'ustaw timer jako licznik impulsów wewn. zegara procesora Mode=1 ' tryb pracy czujnika, to jest ladnie opisane w datasheet do procesora, 1 w tym przypadku oznacza normalna prace timera czyli zlicza impulsy gate = internal ' najprawdopodobniej chodzi tu o taktowanie licznika ale nie pamietam dokladnie...
Hm.. można by zrobić tak: uruhomić timer, niech zlicza czas, przerwanie ustawione na zbocze narastające i opadające, wyzwolenie przerwania zapisywalo by do kolejki fifo stan licznika poczym licznik był by zerowany, i następował powrót z przerwania, parzyste wyraz opisywały by stan wysoki (ile trwał) a nieparzyste - niski, można by jeszcze jakoś skalibrować...
Do If pinc.1 = 1 Then ' jezeli jeden 1 to impuls if Zezwolenie = 0 then Y(C) = X 'zapisz czas na pozycji C incr c ' nastepna pozycja Zezwolenie = 1'przelacz zezwolenie na zerowanie x end if end if if pinc.1 = 0 then if Zezwolenie = 1 then X = 0 ' zeruj licznik 1ms odczinkow czasu Zezwolenie = 0 ' przelacz zezwolenie na zapis y end if end if...
Walcze z licznikiem na Atmega 32 inicjacja wyglada tak : DDRB = 0xff; // DDRB jako wyjscie // t0 JAKO LICZNIK PORTB |= _BV(0); // BEZ PODCIAGNIECIA NIE CHCE LICZYC TCCR0 = _BV(CS01)|_BV(CS02); //_BV(CS00)| cs0 rosnace/~opadajace zbocze TCNT0 = 200; TIMSK |= _BV(TOIE0); // T0 wywoluje przerwanie Caly problem polega...
No więc jeżeli chcesz testować ten program, co napisałem, to musisz w kompilatorze (Bascomie) ustawić : 1. framesize ustawiasz na 8 2. softstack ustawiasz na 16 (zaczerpnięte z innego tematu z elektrody). Kwarc wbudowany, 1 MHz. Pamiętaj tylko, że ten program wygeneruje te sygnały szeregowo, czytaj: nie w tym samym czasie, kolejno po sobie. Pozdrawiam....
(at)ElektrodaBot powyżej 255 licznik źle zlicza dając ) co może być źle w tym kodzie: [syntax=text]$regfile = "attiny2313.dat" ' 2KB FLASH|128B SRAM|128B EEPROM $crystal = 8000000 $hwstack = 40 $swstack = 8 $framesize = 24 Config Timer0 = Timer , Prescale = 64 On Timer0 Wyswietlanie Config Pina.0 = Input Config Portb = Output : Segmenty Alias Portb...
Cześć. Przeglądałem archiwum ale nic dla siebie konkretnego nie znalazłem. Mam problem z programem (konfiguracją przerwań). Chciałem wykonać mały i prosty licznik obrotów. Wykonałem przetwornik obrót/impulsy na diodach, zakładam że nie występują w nim "drgania styków" :) Otrzymany sygnał chciałem podać na wejście INT0 i za pomocą Timera zliczać pojawiające...
nie podales jezyka. Jak bascom to cos takiego jest w kursie zbigeen'a. Dodano po 1 chyba jest ich w sumie 9 (pdfow) i w ktoryms z nich to jest
Jestem w trakcie naprawy części sterowania rozrzutnika do nawozu AMAZONE i tam jest to troszkę inaczej zrobione , nie mam schematu ale spytam czy nie mają akurat do tej płytki co ją naprawiam to schemat niepotrzebny bo jest mało skomplikowana pracuje jako czujnik położenia klapki dawkowania i jest to zrobione tak że układ zlicza impulsy za pomocą transoptora...
Witam Potrzebuję zbudować licznik który po zliczeniu określonej liczby impulsów wykona jakąs czynność. Jako generator impulsów wykorzystałem kontaktron magnes i filtr RC Początkowo napisałem program obrotościomierza i wszystko działa ok. A Teraz po małych zmianach nic nie zlicza. Wykorzystuję Timer1 $regfile = "m16def.dat" $crystal = 1000000...
Kolego jacynka84 . Układy MCS-51 nie posiadają konfigurowalnego preskalera. Jest tylko dzielnik przez 12. Wykonałem go na procesorze 89c2051 z 12MHz kwarcem. Program sam do niego pisałem i wydaje mi się że powinno być wszystko dobrze bo wyliczenia się zgadzają a jednak jest chyba coś nie tak. Gdyby BASCOM był idealny to działałoby to porawnie - z błędem...
Koledzy, mam mały problem, gdyż mój pomysł na zliczanie czasu otwarcia wtrysku nie bardzo się sprawdza. W tej chwili robię to tak, że w czasie 0,5s w pętli sprawdzam czy na pinie do którego jest podłączony sygnał wtrysku jest stan wysoki, jeżeli jest, to zwiększam zmienną "wtrysk". Działa to w miarę dobrze, ale jak np. wcisnę przycisk, co wiąże się...
Mam prostokąt (PWM) na timer1. Czy zliczać Timer1 czy Timer0? Timer ma być ustawiony na time czy counter. Wydaje mi się że najlepiej byłoby ustawić na zliczanie impulsów czyli counter i po odliczeniu 59 zatrzymać Timer1 na czas 1 lub 2 impulsów. Wszystko OK ale nie udaje mi się to w praktyce. Albo nie generuje nic, albo nie zatrzymuje po odliczeniu....
Z helpa bascoma (nawet nie bolało :)) : ";Średnik – rozdziela argumenty instrukcji wejścia/wyjścia " Zawsze mi działały instrukcje zapisane w ten sposób . Ale zmieniłem bo może jednak jest źle . Dalej nie działa więc to nie w tym problem . Drugi błąd to nie błąd ponieważ jak można znaleźć wyżej końcówki te są ustawiane jako WYJŚCIA więc nie mogą...
Chodzi Tobie tylko o szybsze, czy o to, że ma zliczać impulsy tylko wtedy jeśli ich częstotliwość jest równa 100 Hz?
W skrócie : ustawiasz co który impuls zegarowy ma byc zliczany, potem ładujesz do rejestru OCR2 wartosc z którą bedzie porównywał i w momencie zliczenia tylu impulsów ile jest w OCR2 następuje zmiana stanu na wyjsciu OCn... najprzyjemniejszą informacją jest to, że procesor robi to niezależnie od wykonywanego programu ;) wiec nie ma mowy o jakichkolwiek...
Mam już program napisany w Bascomie obliczający czestotliwość a z częstotliwości okres jednak nie bardzo mam pomysł jak moge wychwycić koniec impulsu(zbocze opadające)...Reszta to pikuś następnie obliczam procent wypełniania impulsu do całego okresu...ma ktoś pomysł jak zrealizować czas trwania impulsu w Bascomie? Dodam tylko że impulsy zliczam poprzez...
Witam! Jak rozwiazac problem zliczania impulsow z 8 kanalow np. na ATmega8535? ATmega8535 ma 3 wejscia typu timer/counter (ATmega128 tylko 4) a ja potrzebuje zliczac impulsy z 8 zrodel (wentylatory)-w celu pomiaru ich predkosci. CZy jest jakas mozliwosc podlaczenia tego przez jakis multiplekser (jak tak to jaki i jak to podlaczyc )?? Poniewaz jestem...
Witam. Mój wtrysk w samochodzie jest załanczany poprzez mase. Jak skonfigurować Timer żeby zliczał czas załączenia masy. Z tego co pamiętam to gdy podamy mase na Timer1 to zlicza impulsy dopóki nie wystąpi stan wysoki. Jak skonfigurować w bascomie żeby tak pracował???
WItam :) Zwracam sie do szanownych doświadczonych kolegów o podpowiedź. Bawię się ostatnio mikrokontrolerkiem atmega8 w sterowanie servem (hitec hs-55). Program piszę w Bascomie i bardzo chciałbym załapać jak sensownie uzywać timera i przerwan (nie chcę uzywać bascomowskiego config servo). Po pierwsze... Czy na 8 mhz kwarcu mogę sterowanie sensownie...
Mam jeszcze jedno pytanie Jak chciał bym zmierzyć prędkość impulsów np: w m/s , to muszę użyć Timera - ale jak... pomożecie? Nie mierzy się prędkości impulsów. Impulsy nie poruszają się, lecz trwają; mozesz zatem zmierzyc czas trwania takiego impulsu (co w tym przypadku jest bez większego znaczenia), oraz częstotliwośc ich występowania (F); gdzie F...
zlicza impuls bascom zlicza zlicza impuls enkoder
uszczelnienie układu chłodzenia koszt pompy wtryskowej elektronik samochodowy zarobki
ogranicznik prądu ogranicznik prądu
Zgemma H8.2H – komunikat DVB SERVICE na kanale DVB-S2/T2/C, brak obrazu, diagnostyka Jak działa przedni napęd w Polaris 335?