Dlatego, że nie używasz AS masz problem z ustaleniem przyczyny. Wystarczy uruchomić symulator, by zobaczyć, że Twój program wpada w zabezpieczenie dodawane przez kompilator polegające na wyłączeniu przerwań globalnych i zapętleniu się w specjalnie dodanej pętli. Symulator na początku zabawy z mikrokontrolerami, to podstawowe i bezpłatne narzędzie -...
no i ok, ja mowilem o dodatkowym podziale czestotliwosci na 2, 4 i 8 (domyslnie 8 ) . no i czas sciagnac nowe wersje, bo we wszystkich jakie mam logo jest niebieskie 4\/3!! No własnie. Domyslnie jest 8. Ustwiasz 8MHz, a to chodzi na 1MHz. I zdziwka. Ja też kiedyś miałem z tym problemy. A jak kolega Robgie programuje? Z BASCOMa? no i ok, ja mowilem...
Wpisz większą wartość do OCR1A, przerwanie wtedy musi wywoływać się rzadziej albo zrób tak jak czasami robię kiedy procek działa za szybko a potrzebuję mieć przerwanie rzadziej; zadeklaruj zmienną globalną, np: uint8_t licz = 0; SIGNAL(TIMER2_COMPA_vect) { licz++; if(licz >= 10) //liczba przykładowa, zależy jak często chcesz...
OK, już działa. Nie wiem czemu, ale Programmers Notepad i A pisałem abyś zainstalował AVR Studio 4.
TCCR1B |= (1<WGM12) tu ma być (1<<WGM12) (dwie strzałki)
Do przeładowania Timer'a1 używaj: Int_timer1: Load Timer1 , 62500 [...] Return Mam jeszcze jedną regułę z przeszłości aby nie używać obsługi pamięci EEPROM w obsłudze przerwań (starsze wersje BASCOM'a przy rozbudowanych programach powodowały błędne działanie programu). Stosuję to do dziś dnia i nie mam zamiaru sprawdzać to w nowszych wersjach...
1. Zaprogramuj timer w tryb CTC, np. na częstotliwość 100 Hz. W przerwaniu timera: - sprawdź, czy przycisk naciśnięty; jeśli tak - zapal diodę i załaduj wartość 1000 do zmeinnej - "timera programowego". - jeśli zmienna timera ma wartość różną od zera, zdekrementuj ją, a jeśli zdekrementowała się do 0 - zgaś diodę. Razem daje to 5 linii kodu w przerwaniu...
Pierwszy i bardzo poważny problem zauważyłem w funkcji TIMER1_COMPA, jest nim linijka rjmp uspij. Gdy się wykona, to przerwania pozostaną zablokowane, oraz kilka bajtów na stosie zostanie uwięzionych - głównie adres powrotu z przerwania. Można temu zaradzić poprzez wstawienie pop + pop + sei przed rjmp. Drugi problem, to karygodna pętla główna - dławienie...
(at)seba_x:A co to za bzdura?:> • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode A co do pytania autora, nie, zliczanie umożliwiają tylko dwa pierwsze timery. Trzeciego można używać jako wewnętrznego.
Najpierw próbowałem z przetwornikiem a/c ale nie dawało to żadnych odczytów i teraz spróbowałem z komparatorem a/c i timerem. Do atmegi podłączyłem nadajnik ultradźwiękowy przeciwsobnie. Jeśli przetwornik podłączyłeś bezpośrednio do pinów mikro-kontrolera to nic dziwnego. Po pierwsze nadajnik ma wtedy bardzo małą sprawność, jak budowałem swój miernik...
takie pytanie dodatkowe jeszcze mam, jaka najnizsza czestotliwosc mozna ustawic (na wew zegarze) ? W opisie rejestru OSCCAL (nota od ATmega8) jest napisane, ze można zjechać do 50% wartości nominalnej, czyli teoretycznie ok. 500 kHz.W niektórych nowszych AVR można i 128kHz.
Debouncing można wykonywać na wiele sposobów. Twój sposób jest jak najbardziej poprawny. Ta bezsensowność jest tylko z pozoru bezsensowna :) - jakoś trzeba poinformować main(). Taka technika jest powszechnie stosowana nie tylko do debouncingu. Pamiętaj także, że zawsze możesz na końcu while() w main() uśpić mikrokontroler do następnego przerwania -...
Bo jak ma działać? Widać kolega nie do końca rozumie mechanizm przerwań, skoro czeka na przerwanie INT0, a włącza przerwanie przepełnienia Timera0. Adresem przerwania przepełnienia Timera0 jest OVF0addr, a nie INT0addr. Przerwanie od INT0 wyzwalane jest ZEWNĘTRZNIE zboczem lub stanem na fizycznym wejściu INT0 mikrokontrolera, a nie Timerem. Skąd ten...
To zależy. Z opisu autora (nie analizowałem kodu) wynika, że timer jest zatrzymany, stąd kolejność nie ma znaczenia. Przy okazji mała poprawka, bo zamiast TCNT0 podałem TCCR0. Zerując TCCR0 zatrzymamy timer ponieważ w tym mikrokontrolerze są tam tylko bity preskalera.
a jak dziala w "realu"? a powiedz mi jeszcze skad wiesz ze on wywoluje przerwanie co 1s?
Rzeczywiście, teraz widze ze to co myslalem bylo kompletna bzdura. Bardzo dziekuje za rozjasnienie
Ja bym zrobił na przerwaniu + timer.
Może ten Twój jakiś dziki jest :P więc spróbuj jeszcze przenieść Sub pod pętlę główną jak ja poniżej. U mnie kompilują się wszystkie wersje wiec w załączniku masz skompilowane Hex i Bin do wyboru. Sprawdź też prywatną wiadomość ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 '********* TUTAJ SOBIE...
http://obrazki.elektroda.net/77_12591386... Witam! Chciałem Wam przedstawić jeszcze nieskończony timer kuchenny autorstwa Mirosława Firleja. Ta zabawka powstała jako prezent świąteczny dla mamy. W wakacje postarałem się zrobić taki, ale coś nie chciało działać. Segmenty cyfr się źle wyświetlały, buzzer cały czas dzwonił, jednym słowem porażka....
nic we fusebitach nie zmieniasz. Mozesz jedynie ustawic na wew. 8mhz. Moim zdaniem temat sie powtarza, wiec powinien wyladowac w koszu. Poszukaj w helpie config clock, albo jak chcesz sam ustaswiac timer to poczytaj o timerze 2 i jego trybie asynchronicznym (tez w helpie)
a) Dlaczego nie na przerwaniach? b) Timer wcale nie musi liczyć od zera. c) Da się ustalić górną granicę (CTC). d) Przeczytaj sobie: http://www.avrfreaks.net/index.php?name=... http://maxembedded.com/2011/07/14/avr-ti...
Wklep na początku przerwania : Enable Interrupts Wywnioskowałem to z pomocy bascoma (polecenie on Interrupt)
Według LED przy 50 sekundach (stoper), LED ma już 51 mignięć. Możliwe że się tak faktycznie rozbiega, no cóż... Więcej na temat dokładności tutaj
Co do kolegi Andrzeja warunki z obługi przewania timera działają bo za zmienną obliczoną podstawia mi 1 W pliku "iom8.h" Warunek if (ICP==1) nie będzie spełniony nigdy . Może źle się wyraziłem w poprzednim poście. To nie jest "raczej" źle, to jest na pewno źle .
Jeśli masz detekcję otwarcia/zamknięcia migawki to nie ma najmniejszego problemu z pomiarem. Nawet ATMega8 ma timer z możliwością pomiaru czasu - tryb capture. Podajesz sygnał na wjście timera i potem odczytujesz rejestr zawierający timestamp zdarzenia. Parę linii kodu. Ale jak wykryć otwarcie/zamknięcie migawki? Laserek i mierzenie odbicia od migawki?
Racja - jeżeli pierwszy timer masz ustawiony na odliczanie jakiejś podwielokrotności sekundy to wtedy wszystko zrobisz na tym samym timerze.
Hm, no nie wiem... to zezwolenie na przerwanie timera 1 po przepełnieniu zostało mi z poprzedniego programu, po prostu dopisałem zezwolenia na przerwanie od porównania z rejestrami a i b, który to wektor się zgadza z tym co podałeś. A przecież przerwanie od przepełnienia nigdy się nie wywoła i tak, bo licznik się zeruje, nie? Ciekawostka, jak na końcu...
w momencie wystąpienia przerwania program powinen wykonać to co jest na końcu kodu,od linii czas:(nie wiem czy o to chodzi) . Próbowałem kopiować kody działających rozwiązań(oczywiście dopasowując do uC) ale nic to nie dawało :|
Zacznij od tego: funkcja wait i pokrewne PRZESTAŁY ISTNIEĆ. Do opóźnień i odmierzania czasu użyj timera i ogólnie poczytaj o timerach.
Klasa TwoWire (której obiektem jest Wire) też używa przerwań. Po wejściu do ISR przerwania są blokowane. Jeżeli chcesz, aby dane ISR nie blokowało innych przerwań można użyć ISR_NOBLOCK:[syntax=c]ISR(TIMER2_OVF_vec... ISR_NOBLOCK) { ... }[/syntax]Byłbym jednak z tym bardzo ostrożny, ponieważ może przydarzyć się przepełnienie stosu. https://www.nongnu.org/avr-libc/user-man...
Moje pytanie brzmi czy mogę pogodzić precyzyjny odczyt z ADC (z uśpieniem) i dokładny timer czy muszę wybrać albo precyzyjne ADC i niedokładny timer albo standardowy odczyt z ADC i dokładny timer? Timer1 jest taktowany przez prescaler z CLK_I/O, a podczas 'ADC Noise Reduction' , ten zegar jest nieaktywny/ wyłączony. Patrz tabela14 w datasheet; w której...
To co sugerowal Tajwoj - źle ustawiłeś preskaler, powinno być: TCCR0 = 0b00000101;
tak jesli timer1 jest tylko do odliczania tej jednej sekundy i do niczego innego go nie potrzebujesz
mozna tę aplikacje rozwijać, ale to chyba wyczerpuje Twoje oczekiwania $regfile = "m8def.dat" ' procesor ATmega8 $crystal = 8000000 ' Kwarc 8MHz Config Portb = Output Speaker Alias Portb.2 Portb = &B00000000 Portb = &B00000100 'załaczy przekaznik Wait 30 ' czeka 30 sekund Sound Speaker , 248 , 675 ' dzwiek do słuchawki 300ohm Portb = &B00000000...
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
Witam. Napisałem sobie prosty kod: /** * Timer - test */ #include <avr/io.h> #include <avr/interrupt.h> #define T0_INIT 0xFF //Wartość początkowa timera volatile uint32_t timer; //Odliczanie czasu przez timer /** * Przerwanie przepełnienia timera */ SIGNAL ( SIG_OVERFLOW0 ) { TCNT0 = T0_INIT; if ( timer > 0 ) timer--;...
Slyszalem cos ze wkarc 32KHz bylby ok czy to prwda? Prawda (dokładnie 2^15 Hz). Przeczytaj stronę 24 i 26 w nocie katalogowej ATmega8. Hasło: Asynchronous Timer Clock / Low-frequency Crystal Oscillator. Możesz też przeczytać tą konwersację -> http://news.elektroda.net/viewtopic.php?...
Program wyświetla to co chcesz ale w symulatorze to trwa bardzo bardzo długo. i Teraz ja licznik odlicza 100 impulsów to musisz pozmieniać obliczenia. Podczas symulacji w warunkach wpisz mniejsze wartości to się szybciej doczekasz tego wyświetlenia na lcd albo zwiększ zmienne ręcznie podczas symulacji. sygnał 125khz do generowania PWM 1,25khz. Nie rozumiem?...
Jeśli chodzi o mechanizm przerwań, to wszystko masz ładnie opisane w formacie pdf na stronie Atmela . Wywoływanie przerwania w procedurze obsługi jeszcze innego to porażka. Przerwania są kolejkowane i po powrocie z jednego jest wywoływane drugie, dlatego procedury obsługi powinny być jak najkrótsze (polecam asm ;)). W procedurze timera możesz sobie...
Przeglądając Twój program mam takie małe spostrzeżenie, a mianowicie w pętli głównej masz wywołaną procedurę Gettime - ' Call Gettime' - która działa na I2C. Co się stanie gdy podczas wykonywania procedury Gettime zostanie zgłoszone przerwanie od Timer'a?? Program przerywa wykonywanie procedury Gettime i skacze do obsługi Timera a tam jest wywoływana...
timer2 w ciągu 10 minut późni się o jakieś 12 sekund, a timer0 zdaje się nie reagować na wartość początkową wpisaną do rejestru TCNT0 Z zegarem wewnętrznym 12/600 = 2% porównaj z DS. A timer 0 reaguje, tylko Ty nie dostrzegasz różnicy 131 cykli na 10 minut -) Tą wartość to jakby nie tylko raz trzeba było wpisać. Albert
Należało by jeszcze dodać iż nie wszystkie Timery są np 16 bitowe np. ATmega8535 ma 2 8 bitowe i jeden 16 bitowy. O tym ile i jakie Timery wyczytasz z noty katalogowej danego mikrokontrolera.
Jaka częstotliwość taktowania uK? Od tego zależy jak ustawić Timer. Jaki język?
Jakoś nie widzę żebyś tu korzystał z przerwania od Timera... Bo nie musisz ;p mogłbyś pokazać jakiś przykład obsługi przycisku w przerwaniu timera ? Nawet jakiś URL do innego projektu. Więc chyba oczywistym jest że ten fragment kodu należy umieścić w przerwaniu od Timera.
Sam byś chciał zrobić ale zacząłeś od bardzo złej strony robić bo zamiast robić sam to prosisz nas o to abyśmy Ci znaleźli zestaw pod Twoje możliwości. Proponuję więc rozwiązać ten dylemat w ten sposób że albo rzeczywiście sam poszukasz sobie projektu pod swój poziom i sam go zrobisz, albo lepiej posłuchaj rad kolegów że to trochę za głęboka woda a...
ATmwga 8 ma 3 timery... 2x 8-bit i 1x 16bit... Timer2 może pracować z kwarcem zegarkowym... Timer1 jako PWM... A timer0 jako licznik...
Obsługa przerwania nie ma być "jak najkrótsza", tylko "nie za długa". Odświeżanie wyświetlacza zawsze robi się w przerwaniu, gdyż zajmuje to czasu tyle co nic, a nie zrobienie tego w przerwaniu powodowałoby złe działanie wyświetlacza - nierówną jasność cyfr, zmiany jasności, migotanie, przygasanie itp. To ma być działać ze stałą częstotliwością, a do...
Ja bym napisał tak, jak w załaczeniu. Zmieniając wartość dla zmiennej Czas_led , można zmieniać czas świecenia ledki.
Drodzy urzytkownicy, To moje początki w programowaniu contollerów. Chciałbym zaprogramować timer na ATmega8. Proste logiczne programy udało mi się już napisać. Moim następnym zadaniem jest zaprogramowanie timera z licznikiem, niestety na początek mam problemy nie wiem jak zaprogramować timer. Czy ktoś mógłby mi w tym pomóc. Algorytm mojego programu...
A jak wygląda wyświetlacz 3-segmentowy? Nigdy jeszcze takiego nie widziałem... Program napisz od nowa - ten nie ma prawa działać. Zacznij od przerwania timera. Odliczania czasu NIE DA się zrobić bez timera.
Timer0 w Atmega8 może pracować tylko w trybie OVERFLOW (przepełnienia).
zobacz tu: http://mikrokontrolery.net/avr_c_06.htm
Hmmm, ... Możesz wkleić aktualny kod łącznie z zerowaniem preskalera? Czy wcześniej używasz Timera do innych celów?
ten link z przykładami pomoże Ci ;-) [url=http://www.elektroda.pl/rtvforum/to...
Nienawidzę czytać datasheetów... Ooojo joj ... to będzie bolesna droga przez mękę ta nauka programowania :( W książce mam napisane że do TCCR1B jest przypisany OCR1B, ale jak widać niezbyt to działa... No to hmmm książek też nienawidzisz czytać ? tak by wynikało skoro piszesz, że ktoś tak napisał w książce. Coś chyba mało uważnie czytałeś. Nikt tak...
Timer- np. Timer1- jako licznik zlicza impulsy zewnętrzne. Podane na odpowiednią końcówkę- T1 w wypadku ATmega8. Nie potrzebuje żadnego preskalera- bo preskaler dzieli impulsy z zegara- a tu nie ma co dzielić. Ustawiamy bity CS10-CS12 na external clock source- falling lub rising. Czy ustawiamy końcówkę T1 jako wejście- nie pamietam. Można ustawić. Ilość...
Kolega czytał opis w helpie o Config RC5 ? jest tam napisane, że GETRC5 korzysta z Timera 0 , a tego samego timera używasz do multipleksowania.
Nie pokazałeś całości, a problem może właśnie tkwić w rzeczach, których nie pokazałeś. Ale kilka uwag - po pierwsze przyciski drgają, w efekcie nie dostajesz jednego przerwania tylko dziesiątki. Twoja procedura obsługi to eliminuje, bo jest strasznie długa, ale i tak co najmniej 2 razy zostanie wywołana. Przyciski jak rozumiem masz podciągnięte rezystorem?...
W Atmega8 timer mógł odmierzać określony czas i dawać przerwanie czy coś w tym stylu. Zastanawiam się w jaki sposób do obslugi enkodera wykorzystuje się timer zamiast przerwań reagujące na zmianę zbocza sygnału albo jakiś liczników ?
Już śmiga. Nasuwa mi się jednak takie pytanie niezwiązane z tematem. Jeżeli dodam do tego układu WATCHDOG to co z moimi zmiennymi ?? Tzn czy jezeli mam zmienna wartosc1 która sobie jakoś na buttonach ustawiłem wartość po resecie WATCHDOGa wszystko się wyzeruje ?? Jezeli tak to jak zachować pamięć (niezewnętrzną)
Ja zawsze wpisuję Timer1 = var i to jest wartość początkowa licznika , a wpisując instrukcję load , podajesz ilość impulsów do zliczenia , a nie wartość początkową timera, kompilator sam wylicza wartość początkową.( chyba ). Timery zliczają w górę.
Przedstawiam timer oparty na ATmega8 i podwójnym multipleksowanym wyświetlaczu 7 segmentowym LED. Układ stworzony do uruchamiania syreny co pewien ustalony czas. Maksymalny czas załączenia to 99 sekund a maksymalny czas zwłoki to 99 minut. Układ zasilany bezpośrednio z sieci 230. Wrzucam schemat układu oraz płytkę układu i wyświetlacza który łączy się...
Setne sekund , timery z sekundami są i to dużo ale z setnymi sekundy nie ma nigdzie Dodano po 31 Tak trudno się domyślić że to są setne sekundy, gratuluję
Włączyłeś przerwanie od "Timer Compare" (OCIE1A) które nie jest obsłużone.
To może mi ktoś łopatologicznie wytłumaczyć jak podłączyć ten przekaźnik, bo nigdy nie robiłem projektów, w których były przekaźniki. Mam zamiar zrobić na atmega8 timer, który na pół minuty będzie załączać przekaźnik aby załączac świetlówki a po 30 sekundach powinien wyłączyć.
........, a podpowiedzcie mi jak mogę obsłuzyc Rc5,serwo i pwm? Pozdraiwam Dla obsługi RC5 i kontroli serva użyłeś w sumie 2-ch timerów... ATMega8 posiada wbudowane 3 timery , zastosuj więc ten trzeci do 'produkcji' PWM''. Jeżeli ten ostatni (dotychczas wolny) jest Timer1, to ma on dwa kanały dla PWM, na których możesz generowac praktycznie dwie różne...
wykorzystaj wolny timer w uC , wprowadź zmienną licznikową i np. co określoną ilość przepełnień timer ,skok do prodprogramu ;)
W tym sklepie: 61183 ATMega8-16PU Układ sc. DIL-28, 8.65
Na razie masz impulsy o długości 920us co 2.46ms. A powinny być 1-2ms co 20ms. Poza tym te impulsy są niestabilne. Znierzone oscyloskopem- widzisz jakie długie mam sondy... A teraz masz 142us co 2.64ms. Dalej źle. No tak-oba timery ustawiają PORTB.0.
Timer 0 w atmedze8 nie ma pwm. Powinieneś użyć Timera 2, czyli rejestrów TCCR2 i OCR2.
Ok, SPL <> SPH... i podłącz AVcc, skoro uzywasz PORTC. Tak w ogóle to poczytaj notę katalogową (oczywiście nie staraj się zapamiętać wszystkiego, raczej gdzie co jest omówione), bez tego to jak bez mapy na nieznanej drodze...
Dzieki wielkie.
A jak masz ustawiony Timer? Może pokaż ten fragment kodu :P
To w końcu nie rozumiem po co Timer1 odpalać w trybie CTC? Pisałem o Timer0 w CTC dla nowszych procesorów i lub Timer2 w CT dla ATmega8... Timer z CTC ma mierzyć czas pomiędzy pomiarami, a Timer1 - okresy...
Witam, Musze zbudowac takie coś jak harmonogram zadan z ATMegi8 bedzie do niego podłączony przekaźnik, LCD i jakaś klawiaturka do wprowadzania Daty i Godziny Soft nie jest dla mnie problemem tylko mam problem z jakims zewnętrznym Timer-em z bateryjka zeby jak zgaśnie swiatło to zebym nie musiał ustawiać Daty i godziny i oto moje pytanie jaki ukłat podlączyc...
To nie są przerwania na PB1, 2, 3, a sprzętowe wyjścia timerów. NA ATmega8 masz trzy wyjścia PWM - dwa z T1 i jedno z T2. Nie wiem, ilu w końcu potrzebujesz. Jednego powinieneś użyć do generowania 36 kHz, kolejnego (a może dwóch) do sterowania silnikiem. Czemu mają służyć te zabawy z przerwaniem timera i programowym machaniem nogą uC?
Wg http://www.nongnu.org/avr-libc/user-manu... musisz zmienić nazwę wektora przerwań na TIM0_OVF_vect Porównaj sobie datasheet attiny13 z datasheetem atmegi8 żeby skonfigurować timery. Do skonfigurowania timera w attiny służą rejestry TCCR0A i TCCR0B, w atmedze8 jest tylko TCCR0 http://www.atmel.com/images/doc2535.pdf http://www.atmel.com/Images/Atmel-2486-8...
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.
64 takty to o połowę krócej. :) W każdym razie, rzeczywiście obsługa tego przerwania w asemblerze powinna się spokojnie zmieścić poniżej 2us. Ewentualnie można jeszcze dodać bramkę AND sterowaną z drugiego timera i załatwić to sprzętowo.
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ć...
Wynika to z zasady działania PWM i jest opisane w dokumentacji Atmega8. Timer używany do PWM jest w tym przypadku 8 bitowy, czyli 8 bitów to FFhex czyli 255 dziesiętnie. 255 dodać 255 daje 510. Nie wnikając w szczegóły poprostu tak zbudowany jest PWM i jak poczytasz PDF atmela lub książkę o budowie i działaniu timerów to tam jest wszystko wyjaśnione...
Jaki zakres ? Na pierwsze wejście PLL podajesz częstotliwość wzorcową, która jest jednocześnie rastrem syntezy. Na drugie wejście podajesz częstotliwość z VCO podzielona przez dzielnik do wartości z wejścia pierwszego. Filtr detektora fazy dobrany do częstotliwości rastru. Zmieniając wartość dzielnika, PLL tak steruje generatorem VCO aby te dwie częstotliwości...
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... ;)
Posiadam aparaturę zdalnego sterowania, w której podczas maksymalnych wychyleń drążka w lewo i prawo na nadajniku, na odbiorniku na wyjściu sygnałowym napięcia przykładowo 0.26-0.42V. Chciałbym podłączyć ten sygnał do wejścia uC. Czy można programowo odróżnić te wartości napięcia, aby w skrajnych przypadkach podawać napięcie na różne wyjścia uC? Można...
wywołanie funkcji odbywa się przez dodanie () do końca więc s7_init powinno być zapisane s7_init();
Nic sobie nie robi z naciskania guzika bo właśnie obsługuje przerwanie. Ja bym to zrobił w ten sposób. Przerwanie od czujki uruchamia jakiś timer i kończy się obsługa przerwania. Timer odmierza czas i po jego upłynięciu sprawdza jakąś zmienną i w zależności od niej uruchamia alarm bądź nie. I tak jeśli przed przyjściem przerwania z tego timera naciśnięty...
Oj, słownik i do tłumaczenia... Na Forum nie powinno się pisać rzeczy "oczywistych" i dostępnych w dokumentacji... A tam wszystko dokładnie jest opisane... A dlaczego tyle układów licznikowych? Bo można dowolnie wybrać zastosowanie: - potrzeba timer'a o ośmiu butach? jest timer0 i timer2 - rozdzielczość za mała? potrzeba dokładnego PWM? jest timer1...
ATMega8 ma 3 timery: 2x 8-bitowy(Timer0 i Timer2) i 1x16-bitowy(Timer1). Niestety, w obu podanych przez Ciebie przypadkach wykorzystany jest Timer1, więc będziesz musiał spróbować zmodyfikować któryś z programów tak, aby działał na 8-bitowym timerze. Tutaj masz co nieco napisane o tych wszystkich magicznych rejestrach i są także przykładowe kody: https://sites.google.com/site/qeewiki/bo...
Witam, Zapraszam na stronę: http://mikrokontrolery.blogspot.com/2011... Timer-PCB (pdf-y bez brd i sch) - pliki .brd .sch moge dodać później jesli ktoś chce. oraz wsad (nie skompilowany):
No chyba najprościej to zrobić na jakimś mikrokontrolerze, chocby Atmega8 - Timer który załączy triak(tylko tu się trzeba zastanowić nad odprowadzeniem ciepła) lub przekaźnik. Trzeba do tego jednak napisać prosty program w C. Jest też możliwość wykorzystania czegoś takiego : http://elportal.pl/pdf/2003/edw_2003_07_... No a jeśli nie masz większego...
Witam Szukam odpowiedzi i nie mogę znaleźć na pytanie jak w temacie. Bawię się od tygodnia z AVR dokładniej z Atmega8 i zrobiłem sobie do samochodu taki mini komputer pokładowy, który narazie podaje temp w 3 punktach na DS1820 i wyświetla to na wyświetlaczu LCD 2 * 16 (który używam do kontroli wyników) bo drugim wyświetlaczem jest HDLX1414, to 4 segmentowa...
Pomysł jest straszny. Poczytaj o timerach.
Hmm. Nie będziemy się teraz przekonywać do swoich racji, ale z doświadczenia wiem, że wszystkie przewodowe liczniki Sigmy (od 506, do 1606, nie wiem jak jest w DTSach i STSach), wszystkie ATECH, wszystkie wynalazki typu SHARK, przewodowe CATEYE mają kontaktrony. Co do sposobu pomiaru myślę, że najlepszy byłby pomiar czasu pomiędzy impulsami. Pytanie,...
A nie możesz wykorzystać zwykłego timera?
Co to za bełkot!? 1. Timer do odmierzania czasu skonfigurowany jako licznik impulsów z zewnątrz! 2. Podprogram obliczania czasu nigdy nie będzie wywołany z pętli głównej! 3. Wyświetlana ma być wartość licznika. Podaj kolego na koncówkę 11 impulsy z zewnątrz to je zacznie zliczać i wyświetlać. Bedziesz miał przynajmniej licznik impulsów. Program do zegara...
avr-gcc niezbyt lubi pliki ze spacjami. Przy 'Building target: Tester Wtryskiwaczy.elf' kompilator sam dodał spację, ale już przy: avr-gcc: error: Wtryskiwaczy.map: No such file or directory usunął pierwszy człon i zostało samo wtryskiwaczy. ;)
Musisz też załadować nową wartość do licznika timera.
Witam. Napisałem prosty programik. Działa on tak że po włączeniu układ generuje impulsy o częstotliwości regulowanej przez ADC2. Teraz nie mam pojęcia jak zrobić aby przycisk podpięty na PD.0 włączał i wyłączał mi ten generator na wyjściu atmegi. [syntax=Basic4GL]$regfile = "m8def.dat" $crystal = 8000000 Config Portd = &B00000000 Config Portb = &B11111111...
Zamiast delay wykorzystaj inny timer.
Znacznie lepiej (i zdecydowanie dokładniej) byłoby wykonywać to w przerwaniu timer-a pędzonego rezonatorem zegarkowym, lub cały uC z niego taktować. Skrócenie okresu możnaby chociażby, realizować ładując odpowiednią liczbę do timer-a po przepełnieniu. Pozdrawiam, GSM
integra timery xmega timery bascom timery
speakon speakon gniazdka angielskie piece ekogroszek ustawienia
Uszkodzenia tablicy wieloczynnościowej przy zbyt dużym napięciu Schemat modułu PC5.04.20.300 pralki Amica - gdzie znaleźć?