Witam serdecznie, chcę taktować timer Atmega8 zewnętrznym kwarcem zegarkowym, a sam uC taktować wewnętrznym oscylatorem RC. Tylko nie wiem jak mam skonfigurowac Atmega8 abz to osiagnac, pewnie trzeba cos w fusebitach zmienic, ale nie wiem co.. Prosze o pomoc. Pozdrawiam!
a ustawiłeś Fuse Bity?? Bo jeśli nie masz ustawionych to ATmega pracuje z częstotliwością 1MHz. Musisz ustawić Fusy na albo 8MHz na wewnętrznym generatorze albo ustawić Fusy na zewnętrzny kwarc. i mniej więcej kod by tak wyglądał: $regfile = "m8def.dat" $crystal = 8000000 Cursor Off Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1...
mogę pomóc, ale w C, w BASCOMie sobie już sam pokminisz, bo algorytm działania jest wszędzie taki sam :) na początek wpychamy zewnętrzny kwarc 11.059200 MHZ + 2 kondensatory x 22pF, w nagłówkach należy dodać: #include <avr/interrupt.h> przed int main'em należy dodać: #define HI PORTC=0xFF; SIGNAL (SIG_OVERFLOW0)// funkcja obsługi Timer'a0...
Witam Jeśli potrzebujesz krótkich czasów to wystarczy timer 8-mio bitowy do dłuższych czasów 16-to bitowy. Taktowanie masz z tego co sobie ustawisz jako źródło zegara w fusebitach. Może to być kwarc podpięty pod uC, zewnętrzny generator podpięty pod uC, wbudowany generator RC. Im mniejsze czasy tym lepiej używać wiekszych częstotliwości kwarcu i ewentualnie...
Dzięki za odpowiedź:) Czy można prosić o jakiś przykład wiem o co chodzi tak mniej więcej ale nie potrafię tego napisać w bascom Ja myślałem że muszę uruchomić dwa timery i je połączyć. Ale tu masz rację że jeden timer uzależni od siebie jedno i drugie. No i najważniejsze jak oddzielić wypełnienie od częstotliwości bo na jednym timerze to może być trochę...
W swoim programie wykorzystuję m. in. TIMER i przetworniki ADC. Timer działa w trybie CTC, dane z przetwornika pobieram funkcją adc_get(): [syntax=c] int adc_get() { set_sleep_mode(SLEEP_MODE_ADC); cli(); sleep_enable(); sei(); sleep_cpu(); sleep_disable(); return ADC; } [/syntax] Dane z przetwornika są pobierane w pętli głównej, a timer ma za zadanie...
A zaglądałeś do DS ? Bo widzę, że niespecjalnie. Sygnał podpinasz pod nogę T0 a licznik konfigurujesz na zewnętrzny sygnał zegarowy. TCCR0 = (1 << CS02) | (1 << CS01); // External clock source on T0 pin. Clock on falling edge. i teraz w TCNT0 masz liczbę impulsów. Odpalasz jeszcze jeden timer i co chwilę obliczasz prędkość...
No to jeszcze dorzucę, to co znalazłem w pewnym pdf-e Motoroli - aplikacja , zresztą bardzo podobna do tej j/w. Legenda : XTAL1 - wejście inwertera generatora XTAL2 - wyjście inwertera generatora Tak przy okazji - AVR - y posiadające wbudowany timer asynchroniczny (np. AT90S8535 , ATmega8535 , ATmega16 , ATmega8 itd.) już są przygotowane do bezpośredniego...
Witam, Wiem, że podobne tematy były jak mój lecz nie znalazłem rozwiązania a siedzę już ponad tydzień czasu nad tym. Robię czujnik reagujący na odbitą wiązkę z diody IR 920nm. Wykorzystuje atmega8 do generowania nośnej 36kHz lecz mam za mały zasięg. Reaguje dopiero na odległości około 20cm a potrzebuje 1m. Pin B.1 odpowiedzialny jest za podawanie impulsu...
Witam wszystkich, rzadko pisze bo zwykle jakoś sobie radzę, ale po trzech dniach walki jestem zdesperowany i zaczynam szukać pomocy u Was. Zrobiłem emulację odbierania RS232 na nóżce INT0. Zbocze opadające oznacza że mamy bit startu. Tak startuje odbieranie: [syntax=c] ISR(INT0_vect){ // włączenie odbierania znaku na emulowanym UART 600bps GICR&=~(1<<INT0);...
Bardzo dziękuję za tą podpowiedź. Obecnie podkształcę się o tym trybie i postaram dokończyć program. Jednak po tym co wyczytałem wykorzystałem generator wewnętrzny na 8MHz '$crystal = 8000000 Ale tu pojawia się małe pytanie, czy lepiej dać generator wewnętrzny czy może kwarc zewnętrzny Wprawdzie za dużo nie udało mi się znaleźć pod BASCOM-a, a pod C,...
1. OCR1A = Getadc(3) 2. OCR1A = 255 - Getadc(3) Jest aż tak źle? Tutaj nie chodzi o zmianę trybu PWMa bo po zmianie trybu zostanie wygenerowany jeden impuls. Nie wiem skąd*. Ale tak napisał Tomekddd. Chodzi o odwracanie fazy na driverze. Jeżeli można by to odwrócić zmieniając tryb PWMa to oczywiście lepiej by było to tak zrobić niż pisać "255 - xxx"....
Witam wszystkich forumowiczów. Jestem początkujący w programowaniu AVR atmega8 w bascomie. I mam pytanie. Chciałbym aby przekaźnik podłączony (oczywiście przez tranzystor i rezystor)do portu D7 załączał się i rozłączał dokładnie co 1s. Chciałbym to zrobić na dokładnie identycznym schemacie postępowania programu taki jak napisałem gdyż łatwo mogę zmieniać...
Regulujesz ją przez PWM. Czyli tak jak masz - timer i regulacja wypełnienia impulsów na pinach OC1A/B. Dla małej diody ten BUZ11 to przesada, kup zwykły mały MOSFET, może być LL (logic level), chociaż przy tak mikroskopijnych prądach i zasilaniu 5V większość nowszych MOSFETów się nada. Także spokojnie ci to zadziała. LL-MOSFETy, szczególnie małej mocy...
Próbuję złożyć (a właściwie jestem na etapie rozmyślań) zegar na tym scalaku ale mam pewien kłopot. Układ będzie dosyć rozbudowany więc przerwania zewnętrzne muszę zostawić w spokoju. Z tego co zdążyłem się zorientować to można za pomocą timera wytworzyć przebieg i zliczać go przez preskaler i kiedy rejestr się zapełni uzyć wewnętrznego przerwania aby...
Po wielu "przebojach", trudach i masie czasu spędzonego nad zaprogramowaniem uC do tego projektu, podaję końcowy (na obecną chwilę) kod; [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define LEDR (1<<PD2) #define LEDY (1<<PD1) #define PRZEKAZNIK (1<<PC0) #define PRZYCISK (1<<PC1)...
Jak obiecałem wcześniej, zmontowałem ponownie zegar i działa bez zarzutu z rezonatorem kwarcowym jak i pod generatorem. Jak ustawić w bascom atmege żeby działał z generatorem 16mhz ? Przestaw fusebit na zewnętrzny zegar (0000:external clock) 'zegar binarny joboo $regfile = "m8def.DAT" $crystal = 16000000 Dim Sekjed As Byte , Sekdzies As Byte...
Opracowałem zegar elektroniczny oparty na mikrokontrolerze Atmega8 i zegarze PCF8583P. Działanie programu napisanego w C: -w nieskończonej pętli głównej wyświetlam na wyświetlaczu LED godziny i minuty poprzez multipleksowanie -za każdym wyświetleniem wyświetlacza pobierany i zapisywany jest czas z PCF8583P -posiadam dwa przyciski, którymi ustawiam czas...
Witam! Mam problem z wyświetlaniem liczb na 5 wyświetlaczach LED. Docelowo ma to być wyświetlacz sterowany poprzez RS232 i wyświetlający liczby z zakresu -999 do +29999. Na razie jednak zatrzymałem się na etapie samego wyświetlania. Problem polega na tym, że co jakiś czas pojawiają się "śmieci" na wygaszonych segmentach , czasami także zapalona cyfra...
Witam Zamierzam jako laik powalczyć z takim projektem jak układ czasowy. Czyli naciskamy przycisk następuje odliczanie np 3 minuty i potem się układ wyłancza się. Proszę o jakieś propozycje programu bo mi najgorzej jest wystartować. A mając jakiś szkic mogę walczyć z układem... Układ chce zrobić na Atmega8 bo tylko do niego mam programator. Pozdrawiam....
Witam Piszę ten post kwoli upewnienia się czy to co zrobiłem jest poprawne. Otóż potrzebuję wykonać zegar z datą na LCD + uC + kwarc 11.0592 MHz i do odmierzenia 1 sekundy użyłem poniższego fragmentu kodu w C: #include <avr/io.h> #include <avr/interrupt.h> int liczba; SIGNAL (SIG_OVERFLOW0) { if(liczba++==675) {...
Witam Właśnie przeczytałem rozdział manuala M8 dot. pracy T/C0 i rejestrów odpowiadających za timer, tylko nie wiem jak zrobić, aby timer odmierzał wartość 1 sekundy .... ;| Otóż policzyłem, że wg tego co mam to: F-CPU = 8MHz Prescaler = 64 MAX_VAL = 256 (bo 8-mio bitowy) więc: TOV ck = (F_CPU/Prescaler)/MAX_VAL = 488 czyli wynika że w ciągu jednej...
Witam Mam pewien problem z odmierzaniem czasu za pomocą ATmegi. założeniem był prosty licznik czasu pracy urządzenia. Za pomocą timera odliczam określony czas po przepełnieniu timera zwiększam zmienną w pętli tak żeby uzyskać sekundę, następnie kolejna pętla zwiększająca minuty itd. Użyłem Atmega8 częstotliwość taktowania to 8MHz z wewnętrznego źródła....
Wiatm. Jestem początkujący w tej dziedzinie. Jeste wiele projektów liczących czas (np. http://www.elektroda.pl/rtvforum/topic10... ) do zegarów i nie tylko. Nie znam języka C++, a pierwsze kroki stawiam za pomocą micropascala (znam pascala i delphi). Chciałbym nauczyć się jak liczyć czas, tzn. tak na chłopski rozum jak to się dzieje a z resztą...
Witam Zrobiłem sobie zegarek na ATmega8. Ustawiłem wewnętrzny "kwarc" na 8Mhz ale sekunda trwa u mnie krócej o kilkanaście ms i po 1 minucie zegarek śpieszy kilka sekund :/ powiedzcie mi co tu jest źle. przecież preskaler jest dobrze ustawiony. #define cbi(add,bit) ((add) &=~(1<<bit)); #define sbi(add,bit)...
Czy podczas pracy programu zegara RTC w glownej petli mozna umiescic swoj program ktory nie bedzie mial wplywu na zmniejszenie sie znaczenej dokladnosci zegara ? Zegar oczywiscie jest taktowany kwarcem 32768 Hz a uC wlasnym oscylatorem RC. Mam jeszcze jedno pytanko jak do tego programu zegara RTC dodac przyciski ustawiajace godz i minuty : $regfile...
Witam, Chce zmierzyć czas pomiędzy dwoma zdarzeniami mianowicie pomiędzy wystawieniem stanu niskiego na wyjściu PD7 a pojawieniem się stanu niskiego na wejściu PB0 (programowo podciągnięte do Vcc). Czas ten jest wynosi ok 70ms dlatego używam licznika 16 bitowego z prescalerem =64. Jeśli chodzi o dokładność tego pomiaru to zależy mi na 0,5ms, przy tak...
Witam. Chciałbym się upewnić czy podchodzę do zagadnienia prawidłowo a mianowicie : Dioda Led ma się zapalać co 1[s] korzystając z przerwań generowanych przez timer 8 bitowy. Podszedłem do tego tak ,że częstotliwość taktowania procesora ( 1[MHz] )podzieliłem preskalerem przez 64 . W wyniku czego 1 przerwanie wykonuje się w ciągu 255/15626 [s]. Oznacza...
Witam. Od jakiegoś czasu staram się w celach "samoedukacyjnych" zrobić coś na wzór zegarka. Problem polega na tym, że nie moge odmierzyć dokładnie 1 sekundy. Starałem się rozwiązać problem na kilka sposoów. jaklepszy efekt dała obsługa przerywania, lecz błąd to w dalszym ciągu kilka sekund przez noc ;p Nie chcę stosować żadnych zewnętrzych zegarów....
Właściwie dwa pytania ale jedno z większym priorytetem ;) Otóż, projektuje odległościomierz. Zamysł jest następujący 1. Załączam tranzystor który steruje napięciem dla nadajnika. 2. Włączam zliczanie czasu 3. Gdy pojawi się sygnał na odbiorniku. Wyłączam naliczenie i prezentuje wynik. Timer skonfigurowałem, żeby przerywał co 1us jednak nie jest to zbyt...
Witam, mam w ukladzie ATmega8 + MAX232 do komunikacji z komputerem. ATmega jest taktowana z zewnetrznego kwarcu 16MHz. Wydaje sie, ze fuse bity sa dobrze ustawione, bo do obliczenia parametru predkosci USART (wpisywanego w UBRR) musze wykorzystywac wlasnie 16000000. Mam jednak problem z timerami. Zarowno _delay_ms(), jak i _delay_loop_2() dzialaja tak,...
Witam Chcę zrobić w miarę dokładny timer na ATMega8. Ten na którym wykonuje prototypowe projekty działa ale się bardzo późni. Otóż przedstawiam problem: Wykonałem układ zapalający diodę LED przy pomocy ATMega8 ( nic więcej - taki prościutki układ). DO tego napisałem program w C o treści jak ponieżej: ****************************************...
Witam Od jakiegoś czasy chce zrobić zegarek na atmega8. Do odliczania sekund użyłem unsigned int i=0; void wait(long t) { long cnt = 0; TCCR1A = 0; TCCR1B = 3<<CS10; TCNT1 = 0; TIFR |= (1<<TOV1); while(cnt < t) { if(TIFR & (1<<TOV1)) { cnt += 65536; TIFR |= (1<<TOV1);...
Witam wszystkich !!! Jakiś czas temu wykonałem sobie zegarek z wyświetlaczami LED. (najprostszy jaki może być) I problem jest w tym ,że nie odlicza czasu tylko stoi w miejscu pokazuje same zera i nie reaguje na przyciskanie przycisków co jest nie tak? Oto i program #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h>...
Witam Temat być może pojawia się po raz wtóry, ale poprzednie tematy nie rozwiązały problemu. Chcę wykonać prosty zegarek cyfrowy oparty na uC ATMEGA8(L) oraz wyświetlaczu LCD 2x24. Wszystko chodzi bez zarzutów, gdyby nie fakt złego odliczania czasu przez mój uC. Otóż mój ATMEGA8 pracuje z kwarcem zewnętrznym 8MHz + dwa kondensatory ceramiczne 22pF...
Witam Mam uC Atmega8L, w ktorego dokumentacji dowiedziałem się że posiada wewn RTC. Chciałbym napisać program, który powoduje wyświetlenie godziny i daty na wyświetlaczu LCD. Sterowanie wyświetlaczem LCD mam juz opanowane, natomiast zastanawia mnie skąd pobiera sie dane dotyczące daty i czsu??? Nie mam zielonego pojęcia jak to sie robi wiec prosze o...
Mam dokładnie ten sam problem, wprawdzie udało się skompilować bez Arduino zmieniając w Makefile bodajże: CC= avr-c++ to jednak program coś nie działa z M8, no nie wiem może trzeba będzie wziąć M328, ale chciałbym się przed tym upewnić, bo niby biblioteka ma umożliwić zastosowanie M8. Z ATmega_8.h wyciągnąłem pinout, lecz coś nie chce śmigać. [syntax=cpp]/*...
W tym trybie timery są wyłączone - może działać tylko Timer 2 z zewnętrznym, kwarcem zegarkowym. Najpierw czytaj Datasheet, potem wymyślaj oprogramowanie... ;)
Wewnętrzny oscylator RC jest mocno niedokładny. Z pewnościa musisz kupić zewnętrzny kwarc, ale na ATmedze8 32mhz raczej nie pociągniesz :P Bardziej zalecane jest jednak kupienie kwarcu zegarkowego 32.768 kHz i podłączenie pod piny TOSC1 i TOSC2 które wykorzystuje specjalnie dostosowany pod to Timer2 w trybie asynchronicznym. Wtedy uC można taktować...
Opis fusebitow - http://www.tkdami.net/~voytek/programy/p... (nacisnij na link "problemy" w menu) - ustawiałem wg. tego mojego AtMega8 i wszystko działało dobrze Informacje o programowaniu AtMegi - m.in. opisane jest użycie timerów: http://www.freepgs.com/robkry/?t=avrgcc
Nie korzystałem nigdy z trybu asynchronicznego, ale właśnie w tym, że jest on asynchroniczny wydaje mi się, że leży Twój problem. W szczególności myślę tutaj o dostępie do rejestrów timera w tym trybie. Poszukaj na ten temat informacji. Może tu coś znajdziesz: http://www.atmel.com/dyn/resources/prod_... Drobna rada: [syntax=c]//zamiast...
Mam taki problem. Jeżeli procek pracuje na zewnętrznym rezonatorze to nie działa mi żaden z timer'ów. Jeżeli włącze wewnętrzny oscylator wszystko działa poprawnie. Co zrobić aby przy zewnętrznym kwarcu wszystko było OK? Może trzeba zaprogramować jakieś fuse?
Witam, chciałbym przy użyciu Atmega8 i zewnętrznego kwarcu odmierzać i zliczać setne części sekund, sekundę mogę łatwo wyłapać z timera1 według przykładowych obliczeń 4000000MHz / 256 = 15625 65536 - 15625 = 49911 lub 8000000Mhz / 256 = 31250 65536 - 31250 = 34286 Nie mam jednak pomysłu jak....... Z góry dziękuję za pomocne wypowiedzi. Aby odmierzac...
Jaką masz częstotliwość przerwań timera? Testowanie stanu przycisków powinno następować z częstotliwością rzędu 30..50 Hz jeśli pamiętasz tylko jeden stan wstecz. Jeśli masz większą częstotliwość, to albo testuj je w co którymś przerwaniu, albo wsuwaj stan do zmiennej i wykrywaj sekwencję stanów (bitów) np. 1110.
Bo nie tak się używa przerwań zewnętrznych. Można po pojawieniu się przerwania od zbocza narastającego wystartować timer, w przerwaniu zmienić na zbocze opadające i gdy pojawi się zbocze opadające zatrzymać timer, odczytać jego stan do zmiennej volatile wykasować i ponownie ustawić na zbocze narastające. Mozna też wykorzystać oba dostępne przerwania....
proponuję popularny PCF8583, do niego podłączamy np baterię 3 V jako podtrzymanie i tyle http://alfa.iele.polsl.gliwice.pl/elenot... pozdr KN
Zły pomysł, zły kod. Użyj jednego timera w trybie zliczania impulsów zewnętrznych i podłącz wyjście wentylatora do jego wejścia. Drugi timer zaprogramuj na zgłaszanie przerwań co 1 sekundę (timer 0 tego nie potrafi), w procedurze przerwania odczytaj wartość licznika, wyzeruj licznik i wyświetl wartość. Nie jest to idealne rozwiązanie, ale o niebo lepsze...
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Nie ma większego znaczenia w jakim środowisku programujesz (Basic albo C). Istotny jest koncept projektu i sposób rachunkowy, reszta to tylko inna forma zapisu programu. Wybrałeś za narzędzia: Timer1 i jeden z interruptów zewnętrznych. Zatem jest tez bez znaczenia...
No tak, ale nie umożliwia zliczania zewnętrznych impulsów.
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...
I dlatego właśnie zacznij od przerwania timera, np. coś ok. 100 Hz.
Witam. Mam takie oto zadanie: po wciśnięciu przycisku ma zacząć się odliczanie czasu, po puszczeniu przycisku koniec odliczania. Wartość na bieżąco wyświetlana na LCD Z obsługą LCD spokojnie dam sobie radę, ale z timerów i przerwań jeszcze nigdy nie korzystałem. Prosiłbym o linka jeśli ktoś widział gdzieś podobny program albo opis konfiguracji timerów...
Diody masz podpięte bezpośrednio pod porty ATmega? Jeśli tak to lepiej dołóż sobie oporniki aby nie spalić wyjść ATmegi. Bezpośrednio przy procku daj kondensator 100nF. Przed stabilizatorem np. 1000uF, a za stabilizatorem 100u (to i tak za dużo, ale lepiej więcej niż za mało). Zliczanie zrealizowałbym w taki sposób: - Odpalić któryś z wewnętrznych timerów...
No dla mnie tym następnym krokiem był przerzutnik T :) Również polecam :) Potem, sugeruje proste przerwania zewnętrzne, timer (tu duze pole do popisu, mozna sobie zrobić na nim mruganie diody, przyciskami sterowac częstotliwość), potem sterować jasnością z PWM. Dalej proponuje pobawić sie wewnętrznym eepromem, przydaje sie w dalszej nauce, potem zewnętrzny...
Zamiast ICR1 powinieneś użyć np. OCR1A i przerwania TIMER1_COMPA_vect. Rejestr ICR1 służy do czegoś innego. Zapamiętuje wartość timera 1 na przykład w momencie zmiany stanu logicznego na pinie ICP1. Wykorzystuje się go np. do pomiaru czasu między zdarzeniami zewnętrznymi.
Teraz spróbuję ustawić RTC na zewnętrznym kwarcu. Zanim zamknę temat może ktoś zechciałby podpowiedzieć na co tutaj zwrócić uwagę? (Myślę że to nie odbiega od tytułu tematu) A konkretnie - jaki kwarc? przy okazji jeszcze ten link: Czas - odmierzanie
Ależ się męczysz z tym timerem... :) Poczytaj [url=http://stsystem.elektroda.eu/progra... o timerze 2, tutaj [url=http://stsystem.elektroda.eu/progra... obsłudze wyjść, oraz [url=http://stsystem.elektroda.eu/progra...
zastosuj atmega 88PA Faktycznie jest to dobre rozwiązanie. Bez zewnętrznych elementów, można wykorzystać watchdog timera. Dzięki.
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...
jak chcesz takie duze czestotliwości mieżyć to musisz użyć timera żeby liczył zewnętrzne impulsy, wtedy drógim timerem wyzwalasz przerwanie co określony czas (im dłuższy tym lepszy bo pomiar dokładniejszy) liczysz ile było ilmpusów z zewnątrz w okreslonym czasie. wydaje mi się że tą metodą dało by sie mieżyć nawet do 100Mhz ale jest jedno zalożenie...
Przede wszystkim to zastanów się dlaczego do generowania nośnej usilnie chcesz pisać jakiś kod programu i obciążać tym program główny procesora, skoro można to zrobić CZYSTO sprzętowo za pomocą timera. Tylko nie Timera0 bo ATmega8 jest biedna w porównaniu do ATmegai88 gdyż timer0 nie posiada w niej trybu CTC. Tymczasem masz jeszcze timer2 i wystarczy...
Ja precyzyjne odmierzanie czasu realizuję na zewnętrznym rezonatorze 8Mhz na Timer 1 w trybie CTC i polecam ten sposób zamiast zabawy w te kwarce zegarkowe.
Nie pamiętam, jak działa makro sleep_mode(); ale przecież przechodzisz do trybu uśpienia w przerwaniu od timera a jak wiadomo wejście w dowolną procedurę obsługi przerwania blokuje globalne zezwolenie na obsługę przerwań, wiec prawdopodobnie w chwili uśpienia skutecznie blokujesz także przerwanie zewnętrzne, przez co nie możesz później wzbudzić procesora...
Witam Otóż mam taki dylemat ... Mam taki prosty programik robiący mi za licznik modulo 8. Samo liczenie odbywa się w przerwaniu timer'a ale to nie jest kwestia którą chce poruszyć. Po wywołaniu zewnętrznego przerwania, nie da się go przez czas paru/parunastu sekund wywołać. Czego to może być wina ? (pomijając że moja). Czy przypadkiem nie powinno to...
No to daj na zliczanie zewnętrznych impulsów timer2(?). Może po jakimś preskalerze- nie liczyłem. Timer jako counter.
prescale 256 miałem dlatego że najpierw używałem timer0 a później zmieniłem na 2 a nie zwróciłem uwagi że timer2 ma prescale =128. a ja to robiłem ładując do niego 128 wiec i tak liczył poprawnie. Ale w atmega8 , w 168 nie działa mi zewnętrzny kwarc który oczywiście jest podłączony
To dwa sygnały na timery jako liczniki a trzeci sygnał na przerwanie zewnętrzne. A trzeci timer jako zegar.
Ok, a jak to się będzie miało do samego programu napisanego na 1Mhz ? Nigdy jeszcze z zewnętrznym kwarcem do czynienia nie miałem. W jaki sposób należy programowo z niego skorzystać? Normalnie Timer2 jest taktowany z tegosamego zegara co microkontroller. Aby uzyskac taktowanie z rezonatora 'zegarkowego' podłączonego do pinów XTAL1/XTAL2, potrzebujesz...
Mozesz zrobić zewnętrzny przełącznik na wejsciu T0 i liczyć obroty na zmianę, np. kończy 1 zaczyna 2 itd. w kółko. Silniki mają dużą bezwładnosć i błąd pomiaru będzie znikomy. Pozdr. N.
zewnętrzny timer timer zewnętrzny timer atmega8
palnik kotła morel wzmacniacz gazowy bojler
Radio nie wycisza się do końca - przyczyny i rozwiązania Tłumienie filtra CL dla różnych indukcyjności