Tego nie widziałem. Znalazłem za to informację że dotyczy to rezonatora pracującego jako generator wytwarzający główny sygnał zegarowy: http://obrazki.elektroda.net/9_123515576... A po drugie, akurat w ATMega8 jest błąd w krzemie i te wewnętrzne kondensatory nie działają (tzn. FuseBit ich nie włącza). Użycie rezonatora jako źródła sygnału dla...
Uzupełniając to co napisał kol. niveasoft dodam, że zastosowanie kwarcu 32,769kHz ma sens w wielu przypadkach, jednakże nie jest lekiem na całe zło :) Można bowiem do taktowania mikrokontrolera zastosować kwarce, których podstawą (jak w przypadku kwarcu 32,768kHz) jest liczba dwa np. 1,8432MHz, 3,2768MHz ... 8,192MHz, ... 16,384MHz itd. Wtedy nie ma...
Zacznij od pokazania całego kodu. Jeśli korzystasz z przerwań, to najprawdopodobniej mikrokontroler nie wyrabia i powoduje opóźnienia. Policz sobie (BTW, przy OCR2 = 4, dostajesz 100kHz, popatrz na wzór, należy do OCR2 dodać jeden przed dzieleniem), przy częstotliwości 100kHz, procesor ma 10 taktów na obsłużenie przerwania, co na pewno trwa dłużej,...
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...
Witam serdecznie zrobiłem zegar na w/w procesorze i wyświetlaczach 7 segmentowych led. Sekundę odmierzam z wykorzystaniem Timera 2 w trybie asynchronicznym z dodatkowym kwarcem 32,768Khz. Multipleksowanie wyświetlaczy realizowane jest za pomocą timera0. Do tej pory wszystko działa świetnie, Chciałbym jednak dodać jeszcze zliczanie setnych sekundy i...
Witam serdecznie. Zazwyczaj większość problemów udaje mi się rozwiązać bez pisania na forum, jednak ten doprowadza mnie już do szewskiej pasji. Chcę zrobić zegarek na Atmega8A taktowanym wewnętrznym oscylatorem, z podłączonym kwarcem zegarkowym do wejść TOSC1/TOSC2 -bez powodzenia. Zawsze program staje na pętli http://obrazki.elektroda.pl/2670817700_1...
Sprawdzałem Twój kod inicjalizacji timera + przerwanie -> wszystko jest ok. Musisz mieć błąd w zliczaniu sekund lub w wyświetlaniu. Tak na marginesie to po co ustawiasz bit OCF2 w TIFR? Nie korzystasz z porównania (compare match), więc nie potrzebnie robisz to ustawienie. Wystarczy TIFR=(1 << TOV2);
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
Jeśli nie potrafisz to zrób to prościej. Podłącz zewnętrzny kwarc 32,768kHz (zegarkowy); Config Clock = Soft Procedura zegara używa specjalnych zmiennych: _day , _month, _year , _sec, _hour, _min Wszystkie są typu Byte. Można je modyfikować bezpośrednio: _sec = 1 Sprawdź, o ile się spieszy (opóźnia). Różnicę koryguj warunkiem któregoś dnia np o północy.
Czemu korzystasz z timer2 jako counter ? Zrób to na CTC na timer 2 a kwarc podłączyć jako zwykły. W takim układzie Wszystko działa na wewnętrznym oscylatorze a do zegara dochodza impulsy z kwarcu zegarkowego. Pozbadz się instrukcji Config timer2 = counter a kwarc podłącz pod xtal Pozdrawiam
wyłączanie zegara i konfigurowanie go w przerwaniu - to nie wygląda za dobrze...Szczególnie jeśli chodzi o rejestry MCUCR
Niech sie wypowie ktoś, kto dobrze zna Atmega. Odpowiedź została już udzielona w postach moim i niveasoft. Aby rozwinąć temat kwarcu zegarkowego na pinach TOSCx dla Timer2: http://mikrokontrolery.blogspot.com/2011... http://mikrokontrolery.blogspot.com/2011...
Timer2 nie ma 'edge detektora', więc na którym zboczu miałby zlicza impulsy? Timery działają, dlaczego miałyby nie działać? Widocznie jakoś producent zrealizował tę możliwość. Rzecz w tym że w tym trybie, wejście dostosowane jest do typowego oscylatora 32,768Hz, więc pozostałe parametry są niezbyt istotne, i mogą się dziać różne rzeczy. ;) Zrobiłem...
No i jeszcze trzeba ustawić Fusebity na kwarc zegarkowy. No akurat nie :D
Kolejny problem z moim zegarkiem ;) Układ pracuje na wewnętrznym oscylatorze 1MHz, a pod piny TOSC1 i TOSC2 podpięty kwarc zegarkowy 32.768kHz. Do jednego z nóżek kwarca podpięty kondensator 100nF. (jak go nie dam ma problemy ze startem, muszę go poruszać) Przerwanie wpisujące do zmiennej tick jedynkę jest uruchamiane przez Timer2 pracujący w trybie...
Myślę o czymś innym: Timer2 dekrementuje do zera stan jakiegoś licznika, aby odmierzać 180s, potem znowu wpisuje pierwotną wartosc i tak w koło. Timer1, taktowany 100Hz sieci, po przepełnieniu zeruje wartość licznika timera2 i wpisuje wartośc pierwotną, skracając lub wydłużając cykl timera2, jak nie ma 100Hz, nie ma synchronizacji, ale timer2 działa.
Nawet prosty projekt przynosi dużo satysfakcji :) Drobna uwaga: ATmega8 wykorzystuje wewnętrzny oscylator RC pracujący na częstotliwości ok. 8 MHz. Wiadomo, że oscylator RC nie nadaje się do bycia wzorcem czasu. W projekcie wzorcem jest kwarc 32 kHz podłączony do układu RTC DS1307. Układ ten zapewnia również ciągłe odmierzanie czasu w przypadku utraty...
(...) timer1 wykorzystałem do multipleksowania wyświetlaczy, timer2 odpowiedzialny jest za odliczanie czasu asynchronicznie a timer0 służy do odbioru komend w RC5. Gdyby użyć jakiś zewnętrzny zegar RTC to by zwolnił ci sie jeden timer2. Zaś jako czujnik oświetlenia można by było użyć którejś z diod LED, wykorzystująć ją jako FOTODIODĘ. Pozdrawiam
Potrzebuje zmierzyć częstotliwość w zakresie do 200kHz(w tym przypadku 3,2MHz) procek: to ATmega8 Kombinuje jak koń pod górę, na czym polega mój błąd ? Timer 2 odmierza czas 1s. Timer 1 w założeniu ma zliczać impulsy z zewnatrz. (wartość 0xFF w OCR1A,-impulsy dochodzą z T1,-po zrównaniu TCNT1H/L zerują się-i cykl się powtarza.) Oróż Timer2 wchodzi w...
Co do tego kwarcu to jest pewne zamieszanie, bo w tym projekcie procesor pracuje z wewnętrznego generatora RC o częstotliwości 1MHz, ale timer2 procesora użyty do odmierzania czasu pracuje asynchronicznie, i jest taktowany z zewnętrznego kwarcu 32.768kHz podłączonego do wyprowadzeń TOSC1 i TOSC2. Zauważcie że w mega8 nogi TOSC1 i TOSC2 to te same nogi...
Kod w tagach umieszczaj, bo to nie jest czytelne. Ten kod nie ma obsługi termometru oraz daty. Nie sprawdzałem na poprawność kodu. Jeżeli ma to być na Atmega8 lepiej wykorzystać Timer2 na kwarc 32,768kHz jako wzorzec czasu. Data powinna mieć dzień tygodnia w formie całonazwowej oraz wykrywanie 30/31 dnia miesiąca oraz rok przestępny
Przytoczę tu słowa z książki Marcina Wiązania. W uC atmega8 jest możliwe taktowanie licznika timer2 w trybie asynchronicznym z zewnętrznym rezonatorem kwarcowym tylko wtedy, gdy sam mikrokontroler jest taktowany sygnałem wewnętrznym oscylatora RC. W takim przypadku precyzja odmierzania czasu przez timer2 zależy od oscylatora kwarcowego 32768 Hz, a nie...
Wgrałem taki kod, trochę poprawiony, bo tamten miał drobne błędy i nie dało się skompilować. Zegar działa, ale nadal tak szybko odmierza czas. [syntax=basic4gl]'licznik Timer2 pracujący jako Timer asynchroniczny. $regfile = "m8adef.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 =...
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);...
Według niej w trybie idle zatrzymany zostaje zegar CPU, zegar Timerów działa nie przerwanie. Zatem nie będą występowały ŻADNE problemy z stabilnością zegara RTC, gdy: -w pętli głównej procesor będzie wprowadzany do trybu IDLE --w przerwaniu od TIMERA co 4ms odświeżane są wyświetlacze LED - Jest zgłaszane co przerwanie od licznika TIMER2 pracującego...
Witam. Stworzyłem na mikrokontrolerze ATMEGA8 zegar RTC. Do procesora został podpięty kwarc zegarkowy - timer2 pracuje w trybie asynchronicznym. Program powstał z wykorzystaniem instrukcji BASCOMOWEJ Config Clock = soft: Kod: "Jeśli w programie użyto instrukcji CONFIG CLOCK, kompilator automatycznie generuje specjalne zmienne nazwane: _sec , _min ,...
Witam! Chciałbym uzyskać przebieg o wypełnieniu 50% i f~33kHz w trybie CTC na pinie PB3 Atmega 8L (OC2). Podpiąłem wyjście OC2 na oscyloskop i ciągle stan wysoki. Pierwszy raz i na szybko potrzebuję wygenerować taki przebieg. Proszę o pomoc. Późno już i coś mnie chyba przyćmiło. Namieszałem coś z ustawieniami portów czy jakiś rejestr nie jest ustawiony?...
Witam, Mam następujący problem, buduje sterownik do akwarium i potrzbny jest mi do tego czas. Na początku stworzyłem procedurę przerwania na kwarcu wew taktowanym na 1mhz i t2, oczywście okazało się, że czas jest baaardzo nieprecyzyjny, pomyslałem że przy 16 bitowym t1 będzie to mozna dokładniej ustawić i przepisałem procedurę - efekt taki sam. Więc...
Witam Mam banalny program, po włączaniu zasilania startuje licznik czasu, program prawie działa nie do końca dobrze. Atmega8 steruje wyświetlaczem LED (segmenty) z portu D, poszczególne cyfry od najbardziej znaczącej W4,W3,W2,W1 sterowane z portu B, z portu B jest też sterowanie jasnością wyświetlaczy (PWM) i buzerem. Ogólnie licznik liczy ale buzer...
Poczytałem trochę bo właściwie nie wiedziałem nic, na temat timerów i napisałem ich subrutyny. Podczas liczenia prędkości zmienne czas_s/czas_ch będę mnożył przez 0.004 i dzielił przez podaną drogę. Co ty na to? KOD: '***********PROGRAM POMIAR PREDKOSCI************ '*************** Konfiguracja uC *************** $regfile = "m8def.dat" $crystal...
No to temat troszke ruszam, korzystam oczywiscie z kawalkow gotowych kodów co by nie klepac od nowa. W zwiazku z tym iz czekam dopiero na plytki w ktorych bedzie i RTC i podtrzymanie zasilania bawie sie na tym co mam , czyli atmega8 i zegar obsluguje na nim. '8 MHz/256/31250 = 1 s $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.3 = Input...
Zegarek oprócz funkcji wyświetlania czasu ma pokazywać temperaturę i mieć możliwość sterowania z pilota (RC5). Normalnie (by default) Bascom używa Timer0 dla RC5. Jeżeli Timer0 masz zajęty do inego celu, więc potrzebujesz skonfigurować Timer2 dla RC5. e marcus
Specyfika tego mikrokontrolera, zmusza Ciebie do zastosowania Timera2 w trybie asynchronicznym, a mikrokontroler powinien być taktowany wewnętrznym generatorem RC, czyli tak jak radzi kol. wyżej. Przy takim rozwiązaniu korzystać możesz ze specjalnego trybu oszczędzania energii: POWER SAVE. Niestety nie da się w tym mikrokontrolerze taktować kwarcem...
procek jedzie na 1MHz wew. zegarze. Rzecz w tym, że nie jest to sobie takie równe 1MHz, tym bardziej bez kalibracji. Jak chcesz dokładniej, to użyj Timer2 w trybie asynchronicznym z dodatkowym rezonatorem kwarcowym 32768Hz. Przejrzyj noty aplikacyjne AVR134 i AVR055.
Dla kwarcu 4MHz jest to prescaler 64 i początkowa wartość licznika: 193 Dla kwarcu 8MHz prescaler to: 64 i początkowa wartość licznika: 131 To pokazuje kalkulator. Chciałoby się zakrzyknąć : a nie mówiłem :-P Aby wpisać do Timer2 początkową wartość, to używamy poleceń: TCNT2=początkowa_wartosc Timer2= początkowa_wartosc Counter2=początkowa_wartosc...
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
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...
zastosowalem driver na bc557 układ ożył ;] jednak nie odmierza czasu :/ ustawiam zegar stoi w miejscu..... jak wchodzę do menu P1, P2 itp to po 5 sekundach powinien powrócić ale nic sie nei dzieje... sprawdziłem podłączenie kwarcu jest OK wymieniłem kwarce na inny i albo bardzo mi się wydawało albo zegar przeskoczył i 1 min z 12:43 na 12:44 i znów stoi......
Kondensator tantalowy pasuje jak najbardziej i jest znacznie mniejszy. Soldermaska lepiej zabezpiecza; lakier uniemożliwi serwis zegarka STK200 i tak trzeba zasilać; programujesz bez baterii Wybudzanie poprzez SW1 to głównie jak jest napisany program. Po cynowane ścieżki - utlenia się cyna - powinna być soldetmaska 2k2 to zbyt duża wartość, to ok 600uA...
Wykorzystaj Timer2 w trybie asynchronicznym z kwarcem 32,768kHz.
Jako wzorzec dla zegara rezonator 32.768kHz (TIMER2), a mikrokontroler taktowany RC. Lub jako wzorzec zegara DS1307 + 32.768kHz lub PCF8583 + 32.768kHz, lub inne tego typu układy, które magistralą komunikują się z AT8a
Witam Potrzebuję zrobić zegar na ATMEGA8535 i nie mogę uruchomić pracy asynchronicznej. Kwarc zegarkowy podłączony do XTAL1/2. Program wstępny poniżej. Analogiczny program (ze zmianą ASSR.5 = 1) dla ATMEGA88 działa poprawnie. Proszę o pomoc. Pozdrawiam Jacek Program napisany w "BASCOM AVR" [syntax=basic4gl][/syntax] $regfile = "m8535.dat" $crystal =...
Dzieki za podpowiedzi , zabieram sie za lekture i dokańczam zegarek :) Dodano po 1 ahh... poprawiłem kod tak jak podaliście , dodałem volatile do zmiennych globalnych,ustawiłem tryb asynchroniczny według punktów z noty katalogowej i tylko jedna rzecz sie zmieniła ,program przestał dochodzić do pętli głownej , zatrzymuje sie na kodzie [syntax=c]while(ASSR...
Ja to sobie wykonałem w taki sposób ale zredukuj tutaj timer 0 bo jest on zbędny, możesz wykonać go w pętli timera2. [syntax=c] #define P1 (!(PINB & 0x02)) volatile unsigned char push =0; volatile unsigned char time_push =0; void TimerInit(void) { TCCR2 |= (1<<WGM21); //tryb pracy CTC TCCR2 |= (1<<CS22) | (1<<CS21) | (1<<CS20);//prescaler...
W takim razie jak wektor przerwań powinien wyglądać ? tak ? ISR(TIMER2_COMP_vect, ISR_NOBLOCK) {...} Licznik liczy do wartości wpisanej w TCNT2 ?, jeżeli tak to wartość 0-255 wiele mi chyba nie da jak ja potrzebuje tak duże opóźnienia, ale mogę się mylić. znalazłem wzór na wartość tego rejestru Potrzebna ilość cykli = (1 / częstotliwość...
Wszystko (no prawie wszystko) jest opisane w datasheet'ie. Założenia jak rozumiem są takie: - procesor ATmega88 taktowany kwarcem zegarkowym 32kHz Tutaj masz datasheet do tego procesora: [url=http://www.google.pl/url?sa=t&rct=j...
Dodałbym, że Bascom odpowiedzialny jest jeszcze za koklusz i gradobicie. 1. M8 musi być ustawiony na pracę z kwarcu zegarkowego - FUSY. Powoduje to napędzanie M8 z generatora wewnętrznego RC 2. Trzeba skonfigurować Timer2, który jest zdolny do asynchronicznego taktowania z kwarcu 32768Hz - polecam helpa Config Timer2. 3. W przerwaniu od timera2 należy...
Witam, Mam drobny problem z wyrabianiem się w czasie na Atmedze8 z wewnętrznym zegarem 8MHz (zewnętrzny kwarc niestety nie wchodzi w grę ze względu na ograniczenie miejsca na PCB). Ogółem piszę w C, ale procedury dla których czas wykonania jest ważny napisałem w asmie. Problem jest taki, że nie wiem jak użyć ich jako przerwań, poza rozwiązaniem polegającym...
Poniższy kod reguluje jasność podświetlenia LCD, więc dla potrzeb silnika musisz go przyspieszyć. timer0 w trybie PWM (do sterowania prędkością silnika): [syntax=c] //Konfiguracja TIMER0 w trybie PWM TCCR0 |= (1<<WGM01) | (1<<WGM00);// TRYB FAST PWM TCCR0 |= (1<<COM01) ; // Clear OC0 on compare match, set OC0 at BOTTOM,(non-inverting...
Fusebity jeżeli to ma działać na zewnętrznym kwarcu to jednak trzeba zmienić... Dziwne, przecież ATmega8 fabrycznie ustawiona jest na wewnętrzny oscylator 1 MHz. Chyba, że automatycznie wykrywa podłączony kwarc, ale nic mi na ten temat nie wiadomo. Atmega nie jest taktowana tym kwarcem dlatego nie zmieniamy fusebitów. Tylko timer wykorzystuje ten kwarc....
Udało mi się odpalić mege8 na 32k ale niestety nie działa RTC. Podstawa Timera asynchronicznego Timer2 ("RTC") działa na innym podłączeniu niż układ zegara systemowego na kwarcu zegarkowym. http://www.elektroda.pl/rtvforum/viewtop...
Witam Chciałem uzyskać pracę asynchroniczną (licznik sterowany kwarcem zegarkowym, procesor generatorem wewnętrzym). Napisałem prosty program (miganie diody LED co 1s): $regfile = "m48def.dat" ' plik danego mikrokontrolera $crystal = 8000000 'częstotliwość generatora wewnętrznego Config Portb.0 = 1 'wyjście dla LED Portb.0 = 1 Enable Interrupts 'odblokowanie...
http://obrazki.elektroda.pl/2074472200_1... Inspiracją dla tego projektu był Funkcje * zegar czasu rzeczywistego z podtrzymaniem bateryjnym * buzzer * ustawianie czasu za pomocą przycisków lub UART * złącze rozszerzeń (UART, IRQ, GPIO, +5V) * fotorezystor do oceny natężenia oświetlenia * opcjonalna synchronizacja DCF77 Konstrukcja Konstrukcja...
hmm... ok, chyba zaskoczyłem .... ze 117 strony dokumentacji ATMega8: Kiedy AS2 jest nie jest ustawiony (0), to Timer/Counter 2 is taktowany z I/O zegara. Kiedy AS2 jest ustawiony (1), to Timer/Counter 2 is taktowany z kwarcu połączonego do pinów TOSC. Tak czy inaczej, chce mieć możliwość precyzyjnego odliczania czasu - pojedyncze mikrosekundy - czyli...
Witam, może Wy mi pomożecie. Mam mały problem odnośnie sterowania prędkością silnika DC przez PWM. Mikrokontroler to atmega8 podłączony przez mostek H do silnika DC. Chcę w prosty sposób zmienić mu prędkość przez wpisanie mu do rejestru OCR2 odpowiednich wartości co się równa z odpowiednim wypełnieniem sygnału. Silnik po podłączeniu zasilania i nadania...
Stwierdzenie dotyczące RTC wynika z tego, że timer2 może pracować asynchronicznie z zewnętrznym kwarcem zegarowym. Można mu podać 32768Hz, t2 będzie takim zegarem (lub wynikającym z działania prescalera) taktowany - to jak wykorzystasz timer zależy od ciebie: możesz np ustawić go w trybie CTC przy prescalerze /128, wtedy będzie się przepełniał równo...
Zliczanie sekund odbywa się w przerwaniu (z preskalerem równym 1024). 16 000 000 / 1024 = 15625 65535 to maksymalna wartość timera, ale przerwanie następuje dopiero gdy timer się "przekręci" więc doliczamy jeszcze jeden. 65535 + 1 - 15625 = 49 911 ( wychodzi 49 911 - w praktyce działa dokładniej przy wartości 49 910 i taką też mam aktualnie wgraną...
no i ponieważ ma to być czasomie rz jak to zresztą napisali potrzebuje jak tak wiedzieć ile ma ten przebieg zegarowy (czyli jego częstotliwość) abym potem mógł sobie to przeliczyć na sekundy minuty itp albo podajcie inny sposób na zmie rz enie pewnego odcinka czasu Na jakiej dokładności tobie zależy ? Jeżeli to miałby być dokładniejszy zegarek, to...
... - rysuj schematy bez używania bus w ten sposób: ... Można owszem było dać etykiety, ale (na przyszłość) dlaczego nie korzystać z bus? ... - trochę wstyd eliminować drgania styków kondensatorami, skoro wolnej mocy obliczeniowej jest na oko z 95% :) Wiem, wiem. Ale to był jeden z pierwszych projektów w C i nie ma tu polecenia "DEBOUNCE" jak w Bascomie...
Napisałem, sprawdziłem oscyloskopem. [syntax=c] //zegar 8Mhz, takt co 0.125us #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define PWM0 35 #define PWM1 65 volatile uint16_t pwm0=PWM0; volatile uint16_t pwm1=PWM1; volatile uint16_t pwm2=40; volatile uint16_t pwm3=40; volatile uint16_t pwm4=40; volatile uint16_t...
Może być po $crystal. Dodano po 4 Jak chcesz jeszcze zaprogramować te "zablokowane" procesory to wpisz tutaj: http://obrazki.elektroda.net/20_12357589... Jakąś wielgachną liczbę. Np. 10000. PS. Ale zdajesz sobie sprawę z tego że ten program z kwarcem 32kHz nie będzie demonem prędkości? Dodano po 3 Ja na Twoim miejscu uruchomił bym to na wewnętrznym...
Czy i który timer wykorzystuje 1wire. Chce wyorzystać jeden timer do cyklicznych przerwań, ale jak wykorzystam timer 0 lub timer 1 wysiada transmisja 1wire. ATmega32 nie ma wbudowanego interface 1wire, wiec nie rozumiem problemu, a wróżyc tylko mogę, że o bascom się rozchodzi... Stawiałbym na niezbyt szczęśliwą obsługe przerwań przez Bascom (zapisuje/odczytuje...
Nie zmieści mi się zewnętrzny kwarc, dlatego pytanie dotyczy tego, co oferuje na pokładzie procek. Czyli pytanie brzmi: jakie kombinacje wewnętrznego zegara i preskalerów dadzą mi ( i jakie) najbliższe częstotliwości tej wymaganej tj. 38kHz. L Ale to się bardzo prosto wylicza ;) np ustawiasz sobie taktowanie wen. oscylatorem 8MHz (bo moim zdaniem dodawanie...
[syntax=c]volatile uint8_t num[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; volatile uint8_t time[6] = {0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F}; volatile uint8_t d = 0; volatile uint8_t counter = 0; volatile struct tm* t = 0; volatile uint8_t hour, min, sec, day, month, year;[/syntax] Atmega8, chcę zrobić w głównej pętli obsługę przycisków,...
Aby korzystac z rtc musisz podlaczyc kwarc 32,768 kHz do pinow PORTC 6 i 7. Ustawiasz timer2 na prace asynchroniczna i dobierajac prescaler na podzial przez 128 otrzymujesz przerwania co 1 s bez koniecznosci ladowania timera przy kazdym przerwaniu. Ponizej przedstawiam fragment kodu dla at90s8535 . Atmega8535 tez powinno dzialac. Sprawdz tylko czy nie...
http://obrazki.elektroda.pl/7208083000_1... Witam Od dawna przymierzałem się do zbudowania zegara nixie na sześciu lampach. W internecie jest sporo takich projektów, jednak większość z nich nie odpowiadała moim założeniom. Postanowiłem więc zaprojektować i wykonać zegar od podstaw wykorzystując podzespoły, które miałem pod ręką. Założenia...
Witam Mam problem z programem zliczającym przepełnienia timer2. Do lini TOSC1/2 podłączony mam kwarc zegarkowy 32,768kHz, chciałbym wykorzystać przerwanie od przepełnienia tego licznika do odliczania równej sekundy oraz wyświetlić wynik na ekranie LCD. Oto kod programu: long int licz=0; void init_timer(void) //Inicjalizacja timera { TIMSK...
Np. tak: Ustawiasz zegar na 1Mhz W main() ustawiasz: Zezwolenie na obsługę przerwań Zezwolenie na obsługę przerwań od Timer0 (albo Timer2) Prescaler na 1 Sprawdzenie jakiejś flagi A w obsłudze przerwania ovf od Timer0 (albo 2): Do rejestru Timer0 (albo 2) wpisujesz 156. Wtedy przerwanie występuje co 0.1ms i ustawi jakąś flagę. Wtedy w main() decydujesz...
więc tak, schemat i fotka: http://obrazki.elektroda.pl/2310798200_1... http://obrazki.elektroda.pl/4708784000_1... wszystko działa, tylko tak jak pisałem z jakiegoś powodu procesor co jakiś czas wraca do początku maina. wszystkie zmienne zostają zresetowane, wpomniany MCUCSR nie rejestruje resetu. i dodam jeszcze kod...
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...
Spróbuj tak (nie testowane:)): [syntax=basic4gl]Config Portb.3 = Output ' OC0A Config Portb.4 = Output ' OC0B Config Timer0 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Pwm0a = 0 Pwm0b = 0 Config Portd.5 = Output ' OC1A Config Portd.4 = Output ' OC1B Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm...
r"]W... Potrzebował bym by uC generował częstotliwość 250Hz z wypełnieniem 50%... Załóżmy, że uC taktowany jest zegarem 1MHz, a "prostokąt" będzie generowany na wyjściu OC2. 1)PB3 ustawiamy jako wyjście 2)Timer ustawiamy w tryb CTC. 3)Wyjście OC2 ustawiamy w tryb TOGGLE. 4)Do OCR2 wpisujemy wartość 249. 5)Uruchamiamy Timer2 z preskalerem równym 8....
http://obrazki.elektroda.pl/1033615600_1... Witam wszystkich forumowiczów. Chciałbym przedstawić wam moją pierwszą konstrukcję opublikowaną na forum. Jest to prosty zegarek z budzikiem oparty na microkontrolerze atmega8. Pomysł narodził się gdy dostałem do ręki wyświetlacz poczwórny 7-segmentowy (30x15mm). Układ w całości zrobiony z...
Witam! dymbol1992 : Dzięki za życzenia. Mogę sprzedać Ci cały zegar lub tylko sam zaprogramowany uC. Pisz na PW aby nie zaśmiecać tematu. kiler88 : Jakbyś dokładnie obejrzał film prezentujący zegar to byś wiedział. W pierwszym rzędzie masz godziny, 2 rząd minuty, 3 rząd sekundy. korrus666 : Zgadzam się z tobą w 100%. Tylko jak bym mógł to bym tak zrobił,...
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...
Witam:D Zbudowałem prosty układ z Atmegą8 który mierzy napięcia przez 3 wejścia ADC oraz dokonuje obliczeń i wyświetla je na wyświetlaczu. Układ zasilany jest z baterii i taktowany wewnętrznym zegarem 1Mhz. Jakich funkcje zastosować aby zmniejszyć pobór prądu przez uC? Czytałem o Power Management and Sleep Modes w dokumentacji ale nie wszystko kapuje...
Witam, Robiłem to kilkanaście razy na innych procesorach, a nie mogę zrobić na ATmega88PA. link do DSa: http://www.atmel.com/images/Atmel-8271-8... opis rejestrów TIMER0 na stronie 105 Timer1 i Timer2 mam ustawione w trybie PWM i działają bez zarzutu. Walczę już...
Witam Chciałbym zrealizować programowy tryb CTC dla licznika T0. Program testowy zwiększa wartość rejestru OCR2 o jeden co sekundę (licznik T1). Taktowanie zegara 16 MHz. Licznik T0 i T2 mają ustawiony preskaler /1024. [syntax=c] volatile uint16_t licznik = 0; volatile uint16_t licznik1 = 0; volatile uint16_t licznik2 = 0; volatile uint16_t licznik3...
Witam, ostatnio zabrałęm się za projekt prostego zegara. Układ wyświetla godzinę na 4 cyfrach wyświetlacza LED wspólna anoda. Oto wyniki mojej pracy: schemat: http://obrazki.elektroda.pl/9370666700_1... Do mikrokontrolera Atmega8A podłączony jest kwarc 8MHz. A to program [syntax=c]/* * zegar.c *F_CPU 8000000UL zewnetrzny kwarc częstotliwość...
Witam, jestem tu nowy i to mój pierwszy post, jako że czasem korzystam z tego co ludzie tu wrzucają też się czymś podziele: programowe sterowanie serwem w #include<avr/io.h> #include<util/delay.h> #include <avr/interrupt.h> /*void wyslijznak(char znak1) { while(!(UCSRA&(1<<... UDR=znak1;...
Witam Planuje zrobić sobie miernik częstotliwości różnych kształtów napięcia: sinus, prostokąt, trójkąt. Zamianę sinusa i trójkąta na prostokąt mam już zaplanowaną. Zostało mi tylko zmierzenie częstotliwości sygnału prostokątnego o amplitudzie 5V i przedziale częstotliwości od około 10 kHz do 500 kHz. Chciałbym to zrobić na mikrokontrolerze ATmega8...
Witam Mam oto taki problem jak ww w temacie. Napisałem program na odmierzanie czasu przerwanie co 1 sekundę i ogólnie po wgraniu programu wszystko działa czas leci i jest wszystko OK. Lecz po chwili a Nie ma potrzeby az tak komplikowac tak wyjatkowo proste zadanje jak odmierzene czasu 1 sek. Po pierwsze: system ci sie blokuje juz po kilku sekundach...
Wielkie dzięki pubus! Przerwania ruszyły. Przegryzłem się bardzo dokładnie przez dokumentację i Twój program jako przykład dał mi dobre wskazówki gdzie i czego szukać. Teraz chciałbym posunąć się krok naprzód. Aktualnie umiem ustawić i uruchomić TIMER0 i TIMER2 oraz obsłużyć przerwania pochodzące od przepełnienia tych timerów. Chciałbym pozostawić...
Widzę że nie ja jeden mam problem z odbiorem danych z ds-ów a wszyscy je polecają hm w zamian można dać jakieś np. Lm35 tylko nie wszystkie mają ujemną temperaturę i są droższe. Będę miał jutro czas to posiedzę jeszcze nad tym programem mam nadzieje że dam rade, w razie czego tu jeszcze napisze. Mam książkę M.Wiązania bardzo fajna właśnie fragmenty...
Chwila. Timer bez preskalera, częstotliwość procesora nieznana, załóżmy, że 1 MHz (nieistotne). Timer zgłasza przerwanie co 21 cykli zegara, czyli ATmega zajmuje się na okrągło obsługą przerwań timera, nie mając szans obsłużyć żadnych przerwań o niższym priorytecie (ADC). Tak, timer był ustawiony na 1 MHz (było to wpisane w komentarzu prescalera dla...
Witam, mam pytanie czy atmega8 w wersji niskonapięciowej bierze mniej prądu niz wersja 5V? W manualu prądy sa podane tylko dla wersji niskoprądowej (która jak wiadomo jest droższa i niedostępna w wersji temperaturowej -40...+85 - taka muszę zastosować) active 3,6mA; idle 1mA. atmega8-8PI | ||| | ||temp I=-40...+85, C=0...+70 | |wersja obudowy P=dip...
Dokładnie tak. Pytanie z jakiego uP korzystasz? Np.: tiny2313 ma 4 wyjścia OC: OC0A i OC0B dla Timer0 oraz OC1A i OC1B dla Timer1. Dla mega8 masz trzy wyjścia OC: OC1A i OC1B dla Timer1 oraz jedno dla Timer2 (OC2) Co do wejść oznaczonych TOSC1 i TOSC2 - w kontrolerach ATmega służą do podłączenia kwarcu zegarkowego (32kHz). Przy wykorzystaniu licznika...
Nie, po prostu pomijasz detekcję przejścia przez zero :) Albo inaczej - w przerwaniu przejścia przez zero olewasz przesunięcie fazowe, a liczysz po prostu okresy/półokresy. W efekcie np. na każe 100 zliczonych przejść ustawiasz włączenie triaka na zadaną liczbę detekcji - np. 50% to będzie 50 przejść przez zero z włączeniem triaka i kolejne 50 bez...
Proponuję użyć dowolnego uC z dwoma licznikami, ale niekoniecznie atmega8 ;) Pierwszy pracuje w trybie pomiaru częstotliwości lub pomiaru czasu (Input Capture). Drugi pracuje jako generator przebiegu wyjściowego, pędzony np. z zegara systemowego. Wartość zmierzona przez pierwszy licznik jest argumentem funkcji modyfikującej częstotliwość i/lub wypełnienie...
Witam! Buduję (na razie wersja teoretyczna) system sterowania 2 silnikami DC z programową regulacją PID. W systemie jest uC ATMega8535. Musze zliczac impulsy z 2 fotokomorek i problem polega na tym, iż Timer1 uzywam do 2-kanalowego PWM, Timer2 jako zegar do odmierzania okresu dyskretyzacji dla PID (0.01s). Pozostał Timer0, który niestety ma tylko jedno...
http://obrazki.elektroda.pl/2212581700_1... Witam, Moze rzeźba to za dużo powiedziane, sami oceńcie. Dwa miesiące, pełno rezystorów, kondensatorów, układów scalonych itp. później http://obrazki.elektroda.pl/3475354500_1... http://obrazki.elektroda.pl/7661925100_1... http://obrazki.elektroda.pl/5777556700_1...
prosze oto kod mam problem z ogarnięciem dlaczego nie zlicza mi sygnałów z int0 #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h> // funkcje sei(), cli() #include <avr/signal.h> // definicje SIGNAL, INTERRUPT #include <util/delay.h> #include <stdlib.h> #include <stdio.h> #include...
Witam! Siedzę już drugi dzień nad multipleksem w budziku i tracę już cierpliwość. Podejrzewam, że problem leży w zmiennych. Jednak trudno mi go zlokalizować, bo za długo siedzę nad tym samym. Przydałoby się świeże spojrzenie na ten kod. Pokrótce opiszę problem. Po wstawieniu wartości odpowiadającej za wyświetlenie "--:--" do tablicy "toDisplay" nie...
. Deklarując zmienną "dowpisania" jako bajt nic się nie zmienia. W czasie jednej pełnej pętli głównej licznik zwiększa się o 3, więc dla najwyższej możliwej częstotliwości pętla wykona się 16 razy zanim dojdzie do przerwania, nawet zostawiając w głównej pętli wysyłanie ocr2 przez uart, gdyby wywalić tę linijkę, pewnie trwałoby to jeszcze krócej. Nie...
http://obrazki.elektroda.pl/7355213900_1... Witam, Przedstawiam kolejną wersję zegarka naściennego. Zegarek wyświetla czas w formacie GG.MM, oraz temperaturę w zakresie -9...99°C. Użyte zostały wyświetlacze 7-segmentowe Led o wysokości znaku 56mm. Takie dość duże żeby było z daleka widać która godzina ;) Wyświetlacze mają regulowaną...
Nie wiedziałem, czy lepiej stworzyć nowy temat, czy odpowiedzieć tutaj - w razie czego proszę o wydzielenie postu. Właśnie skończyłem pierwszy mini-projekt na ATmegę8 - prosty minutnik 3-minutowy z brzęczykiem. Zasada działania: lewy przycisk włącza odliczanie, prawy je zatrzymuje lub - jeśli odliczanie się skończyło - wyłącza brzęczyk. Trzy zielone...
Poprawiłem program. Multipleksowanie próbowałem zrobić na tablicy, ale jakoś mi to nie działało, poza tym tablica okazała się zbędna (zauważcie że mam niewygodnie podłączone segmenty wyświetlaczy jak i katody do 2 portów mikroprocka). Aktualnie zakres pomiaru poprawił się do około 60kHz, po tej wartości licznik jakby zataczał koło i liczył od nowa (np....
Jest jeszce asynchroniczna praca licznika TIMER2. Kwarc zegarkowy do nóżek OS1 i OS2 no i fuse bity na wewnętrzny generator.
Lepiej użyj zewnętrznego kwarcu "zegarkowego" 32.768kHz podłączonego pod TOSC1 i TOSC2. Impulsy zliczasz w TIMER2 który jest specjalnie do tego przystosowany. A zyskasz dużą dokładność zegarka.
Timer zawsze odmierza do końca swojego zakresu. Timer0 oraz Timer2 są 8-bitowe, czyli liczą do 256, natomiast Timer1 jest 16-bitowy i liczy do 65536. Czyli jak takiemu Timerowi1 ustawisz wartość początkową 5536, to on policzy 60 000 taktów (do 65536) i potem wygeneruje przerwanie, czyli skoczy do odpowiedniego fragmentu kodu który mu zadasz (kod obsługi...
timer2 atmega8 atmega8 timer2 atmega8 zegar
ssące wydechowe ne555 generator połowa matrycy działa
kupię komputer analizator widma
Parowanie pod maską samochodu - przyczyny i diagnostyka Zamarzanie produktów w szufladach lodówki - przyczyny i rozwiązania