Witaj. Zamiast zewnętrznego PCF możesz wykorzystać timer2 z zewnętrznym kwarcem zegarkowym 32,768kHz. Dokładność ta sama, a koszty mniejsze.
Skoro sygnał ma być podawany na INT1 (PD3) to chyba tu jest problem bo podłączony jest tu wyświetlacz No ale jak to? Mówisz tak ja by wyświetlacz podłączył tam się sam. A przecież to Ty go chyba podłączyłeś. Wina więc nie w wyświetlaczu a w tym kto go podłącza :D No i druga sprawa. Nie bardzo rozumiem dlaczego chcesz podłączać sygnał do INT1, skoro...
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.
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
.... W pętli głównej sprawdzam na okrągło bit 0 rejestru 0 układu ( sprawdzam flagę alarmu timera). .... "Additionally, a timer alarm can be programmed by setting the timer alarm enable (bit6 of the alarm control register). When the value of the timer equals a pre-programmed value in the alarm timer register (location0F), the alarm flag is set ( bit1...
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.
Algorytm w skrócie: 1. pętla czekająca na mignięcie 2. jeśli pojawił się sygnał, wyzeruj licznik, wykonaj pętlę zliczającą czas 3. jeśli czas = 0,5 sekundy to zwiększ licznik, wróć do pętli 4. jeśli czas = 3 sekundy to wartość licznika zapisz jako pierwszą cyfrę kodu błędu, wyzeruj licznik i wróć do pętli 5. jeśli czas = 6 sekund to znaczy że jest koniec...
Pomysłu na teraz nie mam jak to rozwiązać, ale problem zapewne leży w tym, że kiedy przekaźnik = 1 to zmienna jest zwiększana z każdym przejściem pętli..stąd 2 potem 7 itp. Po prostu przez czas trwania stanu 1 na zmiennej przekaźnik, liczba się powiększa. Ciebie interesuje jednokrotne powiększenie. Czyli Przekaźnik = 1 i tylko raz incr zmienna. Trzeba...
Ja już chyba na to odpisywałem, albo deja vu:) Nie Timer nie liczy stanów a zbocza... tak można na takie i takie zbocze liczyć... Ty zapewne chesz liczyć na zbocze opadające...
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ą.
Noise canceller raczej nie pomoże. Można zbudować jakiś prosty filtr RC, albo filtr programowy, ale wtedy i zliczanie musi być programowe. Swoją drogą, po co wewnętrzny pull-up, jeśli masz zewnętrzny pull-down?
brakuje Ci jeszcze jednej malutkiej instrukcji [syntax=basic4gl]Set Portc.5[/syntax] u mnie zawsze to działa
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).
Witam ! Zmień zapis na ten: Stan_enk = Encoder(pind.2 , Pind.3 , Lewo , Prawo , 0)
Nie lepiej zerować przez RS'a zmienną która zlicza 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...
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...
Timer2 jest nieco inny niż Timer1. Timer2 w M8 może pobierać sygnał zegarowy z oscylatora taktującego procesor bądź z kwarcu małej częstotliwości. Spróbuj dodać do Config Timer2 ASYNC = OFF . Skieruje to do Timera 2 sygnał zegarowy generatora uC. P. S. Jak chcesz sprawdź to sobie ustawieniach rejestrów. Mnie się nie chciało. Poczytaj sobie helpa. No...
Możesz podłączyć poprzez rezystory bezpośrednio do portów, tylko trzeba pamiętać, że diody mogą wziąć 20mA i to teoretycznie pin ma wytrzymać, ale też chyba nie można brać więcej niż 100mA na cały port. To tyle teorii a w praktyce to sam sprawdzisz i pewnie procek to zniesie. Wprowadziłbym jednak pewna optymalizację. Wyświetlacze podłącz do portów PB...
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...
niestety nic to nie dało - może jakieś inne sugestie?
Witam, mam mały problem tzn. nie wiem dlaczego w jednym warunku INCR zlicza w nieskończoność a w drugim warunku tylko jak klikam w klawisz [syntax=basic4gl] do Key_readmemory = Bank_memory + 1 If Key1 = 0 Then Mkey = 1 Idx = 0 Readmemory = 1 : Writememory = 0 Incr M If M = 255 Then Readmemory = 0 End If Gosub Key_memory : Gosub Freq_update : Gosub Wyswietlacz...
Wystarczy 1
Witam ! Ustaw odpowiednio fuse bity, bo ATtiny2313 jest fabrycznie ustawiony na wewnętrzny generator 1MHz. Pozdrawiam. Stefan amator
Najpierw dajesz Config INT0=Falling Wprowadzasz zmienną opisującą wybrane zbocze wyzwalające przerwanie (Edge_) i w procedurze obsługi tego przerwania: If Edge_ =0 Then Start Timer1 Config INT0=Rising Else Stop Timer1 Config INT0=Falling End If Niektóre AVR'y umożliwiają konfigurację typu Config INT0= Change Wtedy przerwanie wywoływane będzie po stwierdzeniu...
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...
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 Czy w BASCOM’ie jest jakaś komenda która zlicza liczbę impulsów na jakimś z portów?? Pozdrawiam Michał
Załadowałem to do symulatora w Bascomie. Ten układ zlicza czas i pojawia się w miarę jego upływu linijka na wyświetlaczu. a mnie chodzi, aby jakoś to podłączyc pod potencjometr. Jak to zrobić?
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
a moze wykorzystac timer/counter do zliczania impulsow zewnetrznych? chyba po to jest. dla 2313: do TCCR0 zaladuj 0b00000110 dla opadajacego zbocza a 0b00000111 dla narastajacego zbocza. wtedy licznik bedzie zliczal impulsy z wejscia T0 czyli PD4 czyli pin 8. licznik T0 jest 8-bit czyli 256 zliczen, wiec jak potrzebujesz pojemnosc 65536 (16-bit) musisz...
wstawić dodatkową i uzależnić zliczanie od niej
........ 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...
Witam, piszę sobie program na A128 i nie umiem sobie poradzić z jednym problemem ... wykorzystuję instrukcję encoder jaka jest w bascomie do zliczania zmiennej LONG + - i jednocześnie dokonuję pomiaru napięcia V kod programu [syntax=basic4gl]'----------------------... 'name : BG30dB_LCD.bas 'copyright...
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ę...
Transoptor zdaje się generować delikatnie poszarpane zbocza - przez co na jednym zboczu zlicza mi kilkadziesiąt malutkich zboczy...
odpowiem sobie sam, sprawdzilem w symulatorze bascom i działa
Zobacz to: Dim Przycisk As Word , Czas As Integer , Czas_zamka As Integer Czas_zamka = 0 Czas = 0 Do Debounce Pinb.1 , 0 , Licz , Sub If Przycisk > 0 Then Incr Czas If Czas = 300 Then Przycisk = 0 Czas = 0 End If If Przycisk = 3 Then Portb.2 = 1 If Portb.2 = 1 Then Incr Czas_zamka If Czas_zamka = 300 Then Portb.2 = 0 Czas_zamka = 0 End If Waitms...
Poi pierwsze. Do BASCOM-a jest pomoc - także po polsku, której to zresztą jestem autorem. Wersję on-line (beta) znajdziesz na mojej stronie WWW. Jak one działają? Zliczają impusy. Albo z prescalera, albo z zewnątrz. Patrz nota katalogowa. W którą stronę zliczają? Zwykle liczą w górę. W trybach PWM liczą też w obie strony. Patrz nota katalogowa. Jak...
[syntax=basic4gl] Config Timer1 = Timer , Prescale = 8 'Parametr Prescale może być równy:1, 8, 64, 256 lub 1024 [/syntax] Potem w programie możesz sobie odczytywać zawartość tego licznika w następujący sposób (np.): [syntax=basic4gl] Stan = Timer1 'Zmienna Stan typu Word [/syntax] robiw
............... przy prescale = 1 częstotliwość PWM równa się częstotliwości krwarcu czyli 16MHz (trochę za dużo :)). .......... Co takiego? Timer5 skonfigurowany u ciebie do pracy w trybie1 generuje falę o częstotliwości 31 kHz (dokładniej 31250Hz), zgodnie z wzorem : http://obrazki.elektroda.pl/9569063700_1... gdzie TOP = "fixed value...
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ł???
Ha... a jaki ma być ?
po pierwsze źle obsługujesz przyciski - te podłącza się tak by zwierały do masy i załącza się wewnętrzne podciąganie pinów - od tego zacznij po drugie w obu przypadkach dodajesz liczbę po trzecie skorzystaj z timerów do eliminowania drgań styków, lub, jeśli nie jesteś na tym poziomie to dodaj odpowiednio funkcje wait lub poczytaj o bascomowej funkcji...
Tak, wiem, ale T0 zlicza impulsy drogi, a T1 odmierza czas :)
Jak jest z dokładnością zegarka RTC w Atmega8? Słyszałem plotki, że nie chodzi to zbyt idealnie. Potrzebuję zrobić zegar do zliczania tylko dni i zastanawiam się czy jest sens stosować zewnętrzny układ RTC. Układ musi mieć podtrzymanie zegara z baterii/kondensatora w przypadku zaniku zasilania. Śmiało możesz użyć np. Timer1 w trybie CTC jako generatora...
Witam państwa na forum chciałbym stworzyć w Bascomie licznik który zlicza np: do 10 ale nieweim jak z konfigurowac wyswietlacz chodzi mi oto zeby w oknie symulacj na tym symulacyjnym wyswietlaczu że tak go nazwe wyświetlały sie liczby tyle jest tych konfiguracji jak czytam helpa ze juz zgłupiałem Pozdrawiam serdecznie.
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...
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...
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ć...
Popełniłem coś takiego, nie wiem czy w 100% poprawnie ale działa :) [syntax=basic4gl]Zegar: If S5 = 0 Then Toggle Startstop End If If Startstop = 1 Then If Ileminut <> 0 Or Ilesekund <> 0 Then 'pokaz babelki Locate 2 , 8 Lcd Chr(5) Locate 1 , 9 Lcd " Pracuje "; Gosub Sprawdztemp If Ilesekund >= 0 Then Ilesekund = Ilesekund - 1 End If...
Jreżeli to mają być tylko komunikaty o jakich piszesz to najprościej wykorzystać transmisję RC5 Procek nadawczy robisz tabele z komunikatami i zbierasz dane Wartości przypisujesz do funkcji command i wysyłasz w odboirniku też masz tabele i odczytujesz kod z tablicy zostaje wyświetlić to na lcd Transmisja na taką odległość powinna zadziałać Kilka diod...
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...
zielony_gajowy próbowałem zrobić jak mówiłeś, ale nadal to samo.
Chodzi o ten kod? To mój kod. JESZCZE RAZ NAPISZĘ - impulsy zlicza licznik0 więc musisz podać je na pin o alternatywnej funkcji "T0". Inaczej miernik nie będzie mierzył. Schemat i program to jedna całość. Nie można do danego programu dorabiać dowolnego schematu!
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...
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... :(
No i słusznie. C.6 pewnie też Ci nie działa. Jak podajesz taką deklaracje to do pinów C.6 i C.7 należy podłączyć kwarc zegarkowy i zliczanie czasu masz obsługiwane automatycznie. Poczytaj HEPLa.
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
Widzę, że chyba przesiadłeś się z asemblera na bascoma, postaram się pomóc, napisz tylko do czego Ci ten program, co ma robić poza zliczaniem w dół i w górę. A ja już zbuduję układ na stykówce :P Edit: Rozumiem że wyś7seg masz ze wspólną Anodą?
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.
Hej Ludzie mam pewien problem.z tego co sie orientuje ustawione liczniki: Config Timer0 = Timer , Mode = 1 , Gate = Internal Config Timer1 = Timer , Mode = 1 , Gate = Internal Start Timer0 Start Timer1 Do Loop powinny zliczac taka sama wartosc.a w symulacji programowej wychodzi, ze jeden zlicza o polowe szybciej niz drugi np: T0=100 to T1=50,T0=10 to...
Przepływomierz na litr podaje 648 impulsów jak napisać kod bascom żeby zliczał litry litry = impulsy / 648 Litry mają być typu single.
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.
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...
Daj jakiś schemat. Bo już nic z tego nie rozumiem. Co ma wyzwolić opóźnienie? Bo Timer1= counter zlicza impulsy z PD.5. Czy na tę końcówkę podajesz impulsy jakieś?
Ja to tylko symulowałem w bascomie? do procka nie wgrywałem może ktoś zaproponuje inny counter??
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...
Wszystko zależy od kwarcu jaki zastosowałeś. Przykładowo przy kwarcu=12mhz licznik T0 i T1 (ale nie T2) zlicza z częstotliwością 12.000.000/12=1.000.000/sek.
Jeśli chcesz zrobić wait na liczniku to możesz uzyskać dwa efekty. W obu ustawiasz w przerwaniu flagę. Pierwszy do instrukcja czekaj aż flaga będzie ustawiona wykonuj dalszy ciąg programu loop Generalnie w takim rozwiązaniu nie ma sensku dawać timera. Druga opcja do instrukcja if(flaga ustawiona) reszta kodu loop Oczywiście drugie rozwiązanie...
marco47 - przepraszam, nie zauważyłem. marek19951 - proste if-then nie załatwi problemu. Jeżeli masz zapał, a widzę , że masz, zacznij od procedury obsługi klawiatury , która nie powoduje opóźnień poprzez martwe pętle ( czyli m.in wait, debounce, bitwait itp). Ja to zrobiłem na przerwaniu programowym z timer1, które odliczało mi okresy 10 ms w połączeniu...
... wydawało mi się, że w trybie CTC mogę za pomocą OCR1A i OCR1B oddzielnie regulować częstotliwość na wyjściach OC1A i OC1B ... Masz racje , tylko Ci sie wydawało ;) W trybie który ustawiłeś , timer zlicza od zera , do wartości w OCR1A.Jeśli w OCR1A masz 1562 , a do OCR1B zaaplikujesz 3124 , to na wyjściu OC1B nic nie zobaczysz , bo NIGDY nie nastąpi...
[url=http://mcselec.com/index.php?option... i [url=http://mcselec.com/index.php?option... masz podobne tematy ze strony Bascom'a. Jeżeli układ ma być precyzyjnym licznikiem, to sterowanie wyświetlaczem z tego samego uC który zlicza jest złym rozwiązaniem. Lepiej podzielić...
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...
Wypełnienie jest 50/50 a więc takie samo...impulsy idą z wiatraka
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.
Przede wszystkim musisz zacząć kolego od poznania timerów. Do odmierzenia czasu używamy timerów ponieważ zlicza nam czas w tle działania procesora. Używając polecenia wait zatrzymujesz kompletnie uC na ten czas. Konfiguracja dla AtMega8 8Mhz u mnie wygląda tak: Config Timer1 = Timer , Prescale = 256 ''''konfiguracja timera On Timer1 1s ''''przy przerwaniu...
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...
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...
Mam wyświetlacz led 3,5 X 7 led zlicza do 1999 zabiera portb i 4 z portd może da się z niego coś zrobić .
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...
Witam, jak wiadomo (przynajmniej mi narazie) z helpa Bascoma - zwykłe polecenie PRINT generuje na końcu dwa dodatkowe znaki CR i LF Niekoniecznie :D Za pomocą polecenia PRINT , można wysłać stringa zakończonego ... praktycznie dowolnym znakiem - również sterującym. Print "Zmienna" ; Chr(13) ; ' średnik zakazuje wysyłania znaków sterujących. ... druga...
W.K przekleic tekst z helpa to kazdy potrafi(nawet zostawiles podpis autora tego helpa :):) ), ja sie pytam o knkretne rowiazanie. Druga sprawa jest to, ze naweto po obnizeniu zasilania AT90S8535 do 3,6V nie zalatwilo mi roblemu z rezonatorem "zegarkowym". Zeby sie wogole wzbudzil musze gotknac obudowy - po takim wzbudzeniu zlicza 37 min na dobe, jak...
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...
Kawałek kodu, który powinien Ci pomóc z odmierzaniem czasu: Odmierz_1s: Load Timer1 = 12500 Incr Licz_10ms If Licz_10ms = 10 Then Licz_10ms = 0 End If Return Zlicz: Incr Czestotliwosc Return Odmierza 1s, a potem zlicza ilość przerwań na timer0. Przerób na swój kwarc.
R10 jest nie potrzebny Kolega pisze bzdury, bez rezystora przycisk dostaje spore impulsy przeciążeniowe z naładowanego kondensatora. zapewne styki switcha sie skleją od tej pojemności 100n A jeśli chodzi o zliczanie impulsów to używa sie do tego Timera.
witam mam taki problemik bo wyczerpały mi się pomysły potrzebuje zrobić licznik na wejściu x który zlicza liczbe a następnie zapisuje ją sobie i licznik sie zeruje i od początku. Niedawno bawie sie w bascomie i nieumię sobie ztym poradzić za pomoc bardzo dziękuje.
A na jakim to jest procku? ATMEGA czy ATTINY? Dużo zależy od czystości sygnału i jego amplitudy. Zliczanie można zrealizować na przerwaniu INT0 ale wczśniej dobrze aby sygnał przepuścić przez komparator aby ukształtować ładny prostokąc, można też wykorzystać wbudowany w procek komparator analogowy.
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Jest już prawie dobrze, nie zlicza jeszcze dobrze tych 10 sekund a potem coś wyświetla. Co znaczy nie zlicza dobrze? Co pokazuje na wyświetlaczu? Jeśli nie masz przy PCFie kwarcu zegarkowego to zawsze będziesz miał niewielkie rozbieżności w czasie.
To załóżmy taka sytuacje.. Obsluga przerwania Timera1 zlicza nam czas. Po okreslonym czasie,nastepuje zalaczenie portu. Jezeli licznik do zliczania czasu w WinAVR bedzie zadeklarowany jako zmienna lokalna i nastapi reset to czy licznik bedzie dalej prawidlowo zliczal?fakt ze wystapi zwłoka wynikajaca z kasacji zawartosci timera1. w bascomie juz taka...
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)....
Widocznie w BASCOM bity są zanegowane - nie wiem niestety bo jak już wspomniałem BASCOM to nie moja działka. Zapytaj jakiegoś BASCOMowca :) Co do spóźniania lub szybszej pracy: http://mikrokontrolery.blogspot.com/2011...
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...
Najprościej wstawić coś takiego, jak jest na lotniskach.. (kołowrotek zliczający - jakkolwiek to się nazywa). Choć nie masz pewności czy dwóch chudzielców ci się nie wciśnie na raz.:)
Wait nie stopuje programu. Program nadal się wykonuje.Piszesz trochę niejasno o tym, że timer wywołuje przerwanie z częstotliwoscią około 400 Hz. Czy to znaczy, że przerwanie wykonuje się około 400 razy na sekundę? Zliczasz coś?
odnosnie zegarka to ja bym to zrobil na timer1 - 16 bitowy licznik, i uzaleznil to od przepelnienia tylko nalezy ustawic preskaler na 256 wpisac poczatkowa counter=conter+34286 oczywiscie przy rezonatorze 8 MHz 8000000/256/(65536-34286) = 1 sekunda pozniej tylko zliczanie a i jeszcze jedna sprawa nalezalo by zmienic wartosc dwojkowa na kod BCD :)
zlicza liczba czujnik zlicza zlicza kilometry
radio kondensator trzeszcz telewizor samsung standby wieża technics wyłączać
traktorek silnik briggs traktorek silnik briggs
Ekspres Philips EP5365 - Kod błędu 1 i problem z młynkiem Opadnięte zawory w głowicy VW LT 2.5 TDI - przyczyny i diagnostyka