A po co ten nawias? 16MHz czyli 1 cykl trwa 1/16000000 = 62,5ns. 200*8*62,5ns = 100us
Tak się nie robi. Myślę że ten timer się parę razy przepełni zanim obsłuży LCD. Ustaw timer tak aby wywoływał przerwanie przy danej wartości i w tym przerwaniu dodawaj jakąś zmienną o 1 i czyść licznik.
\ 1. Rozumiem, że ustawienie odpowiedniej częstotliwości da mi czas, który jest mi potrzebny? Tak, program z tego postu demonstruje rejestry i bity których odpowiednie ustawienie spowoduje daną częstotliwość przerwać timerów, a w konsekwencji odpowiednią częstotliwość wysyłania tekstu / migania diodą, jednak obecny ustawiony czas jest przykładowy, nawet...
W bascomnie ciężko zrobić LED + Ds18b20 wszytko psuje Waitms 750. Zwiększ do 8 a jak możesz do 16MHz kwarc. A od kiedy to musimy czekać 750ms nie robiąc nic innego? Od czego mamy timery? Przepraszam najmocniej Kolegę, ale jeśli Kolega tego zrobić nie potrafi to: 1. Nie oznacza że się tego zrobić nie da - ja nie potrafię zbudować komputera klasy PC...
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...
Konstruuję częstościomierz o zakresie 1Hz-20Mhz. Częstościomierz ma mieć zastosowanie w generatorze funkcyjnym, więc musi mierzyć częstotliwość z przebiegów na jego wyjściu t.j. sinus, prostokąt i trójkąt. A nie wystarczy mierzyć prostokąt? Witam ! Częstościomierz zbuduję na liczniku binarnym 74LS293, dzielącym częstotliwość przez 4, przez co mierząc...
Miałem w końcu chwilę czasu, poskładałem "maszynę która robi ping" i zamieszczam efekty. Użyty procek MSP430F2274 ( miałem wlutowany w płytkę uniwersalną więc wygrał konkurs ) Użyłem TimerA i TimerB ( ten drugi ma możliwość synchronicznej aktualizacji rejestrów ) Kompilowane mspgcc, stąd nieco inny wygląd. Procesor chodzi na 16MHz - zależało mi żeby...
Miałem chwilę więc chciałem napisać szybko program na Aduino Mega2560, ale potem sobie przypomniałem, że tam mikroskopijny kwarc a błąd przy 16MHz dla 115200 jest za duży. Wziąłem więc Mega128 bo była wolna i pod ręką. Napisałem program w którym przez Charmatch odbieram string "1234567890" po odebraniu Entera. Żeby było uczciwie to jeszcze odpaliłem...
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
a jesli powiem ze tak tez próbowałem tylko ze odczyt z kodów z rc5 trwa z przerwą 600ms która musi byc pomiedzy odczytem a konwersją temperatury z ds1820 :( Jakoś nie widzę problemu. Przecież Int0 ma wyższy priorytet niż DS. Jerśli istnieją jakieś konflikty to należy zablokować przerwanie Int0 na czas inicjacji DS'a i odczytu temperatury. W trakcie...
nie wiem czy o to chodziło bo nie mam na czym uruchomić tego programu (tzn. mam Bascom ale nie mam zestawu '51), ale wg mnie dopiero ten program zadziała: $crystal = 16000000 '$default Xram $large Dim Cyfra(12) As Byte Dim Jedn_sekund As Byte Dim Tempo As Byte Config Timer0 = Timer , Gate = Internal , Mode = 1 Th0 = &Hd8 ' Tl0 = &Hd7 ' =10025 cykli...
Witam, mam nastepujacy problem - napisalem timer(uzywajac timera 0) do kontroli czasu w programie(glownie serw). Ustawilem prescaler na 64, co przy kwarcu 16MHz daje 250kHz, czyli jeden takt timera odlicza 1/250000 s. czyli 0,000004s. Potem "timer pomocniczny" sumuje wszystkie przepelnienia do 1 sekundy (czyli tysiac razy). // Ustawienie licznika 0...
http://obrazki.elektroda.pl/7329866000_1... Miernik częstotliwości o całkiem niezłych parametrach, bo potrafiący mierzyć częstotliwości od 1Hz do 10MHz (9,999,999Hz) z rozdzielczością 1Hz w całym zakresie. Idealny do generatorów funkcyjnych lub jako zwykły miernik. Do tego tani i prosty w wykonaniu, z ogólnodostępnych części, a małe wymiary...
https://obrazki.elektroda.pl/3563451200_... Intro Zawsze fascynowała mnie możliwość konwersji sygnału czasowego na dane w dziedzinie częstotliwości. Pamiętam jak w wieku około 16 lat dopytywałem mojego ówczesnego nauczyciela matematyki, jak działa transformata Fouriera. Dowiedziałem się wtedy tylko że jest to całka, niestety nic więcej...
https://obrazki.elektroda.pl/3753373600_... Mikrokontrolery, zwłaszcza ośmiobitowe, wydają się być generalnie łatwymi w użyciu układami. Mamy bowiem do dyspozycji prosty komputer i garść zwykle mało skomplikowanych peryferiów. Wystarczy napisać odpowiedni program i tyle. Ale nawet te proste z natury układy mają funkcje i możliwości,...
https://obrazki.elektroda.pl/2040620700_... Przedstawię tu spontaniczny projekt który został zrobiony w jeden dzień - dwukanałowy ściemniacz pasków LED oparty na PIC12F1612, zbudowany przy wykorzystaniu części z elektrośmieci. Oprócz PICa mój ściemniacz będzie korzystał z pamięci EEPROM do zapisu stanów jasności - jest to niezbędne,...
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...
http://obrazki.elektroda.pl/8244095700_1... Chciałem przedstawić bardzo prosty akustyczny odstraszacz kun do samochodu zbudowany w oparciu o Arduino Pro Mini (ATMega 328P) oraz moduł przetwornicy step-down na układzie MP1584. Inspiracją do konstrukcji był używany dotychczas analogowy odstraszacz akustyczny zbudowany w oparciu o układ...
https://obrazki.elektroda.pl/5690923100_... Jest to prosty grupowy regulator mocy z odmierzaniem czasu, wykonany na prezent do kontrolowania piekarnika elektrycznego. Osobiście wolę proste w konstrukcji prostokątne piekarniki z wbudowaną mechaniczną regulacją czasu i temperatury, jednak każdy ma swoje przyzwyczajenia i niektórzy wolą...
..nie ma to aż tak dużego związku ze sprawą i fajnie że udało się ją rozwiązać, ale ktoś czytający ten watek później mógłby pomyśleć że na ośmiobitowym timerze przy 16MHz zegarze minimalna częstotliwość to 61Hz więc tylko wtrącę że wybierając tryb "Phase correct" otrzymujemy 30Hz bo timer przy TOP się tylko zawija :D
Oto kod, gdyby ktoś chciał pobawić się podobnym systemem. long Htime; //integer for storing high time long Ltime; //integer for storing low time long Ttime; //integer for storing total time of a cycle long frequency; //storing frequency ISR(TIMER1_OVF_vect) // interrupt service routine { TCNT1 = 3035; // Interrupt runs once a second (at)...
Napisz program w Bascom dla Atmega8, który będzie liczył pojedyncze impulsy w ciągu 24 godzin z zapamiętaniem najkrótszego odstępu między tymi impulsami, wynik wyświetlał na wyświetlaczu 2x16 opartym na HD44780. Oczywiście, chętnie pomogę Ci napisać ten program. Poniżej znajduje się kod, który powinien zrealizować to, co opisujesz. Wprowadziłem kilka...
A skąd wiadomo, że działa akurat na 8kHz? A widzisz sie pomyliłem bo Atmega8A myślałem że on działa na 8MHz a standard to 16MHz wiec w rejestrze (1 << CS10) Timer ustawia 1:1 wiec sygnał może być 16kHZ jak atmega ma 16MHz..
Zerknij na ten kod, zrobiony na rejestrach,... prosto tłumaczy co i jak a przy okazji ma tez DutyCycle. Jak niepotrzebne to ustaw 50%. https://www.elektroda.pl/rtvforum/viewto... Dodano po 8 Może inaczej... uC prosto ze sklepu z podzielnikiem CKDIV8 czyli kręci sie 1MHz Ty chcesz 2kHz=2000Hz 1000_000Hz/2000Hz = 500 Wystarczy...
Witam, próbuję wygenerować atmegą sygnał PWM sterujący serwomechanizmem. Mam jednak problem z prawidłową konfiguracją timera. Sygnał powinien mieć okres 20ms i w tym czasie należy zmieniać szerokość jedynki. Problem w tym że atmegę taktuje 16MHz i nie mogę uzyskać dokładnie 20ms. Z tego co rozumiem częstotliwość PWM mogę dobrać jedynie poprzez dobór...
1. Nie mam pojęcia co to sa fusbity w dokumentacji też nie mogę znaleźć 2. Z tego co wyczytałem w instrukcji to prescaler można ustawić na różny od jeden gdy chcemy obniżyć pobór prądu strzelam że gdy go sami nie ustawiamy pozostaje domyślnie 1. ale znalazłem również coś takiego i po tym wnioskuję że domyślnie jest na timer 1 16MHz [url=http://www.arduino.cc/cgi-bin/yabb2...
16MHz
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
Zrobiłem to co podałeś trochę poprawiłem efekt ten sam. Poszedłem też na skróty i wyliczałem tylko okres resetując timer też ten sam błąd.. Zastanawiam się czy aby na pewno attiny ma 16MHz bo są źródła które podają 16,5MHz korzystam z Digispark Attiny85 i ze względu na USB jest tak taktowany, zastanawiam się o ile to prawda ze 16,5MHz jak uciąć te 0,5Mhz...
http://obrazki.elektroda.pl/6207231800_1... Na zawodach WAS w Matkach w sierpniu 2014 , organizator (Pawel) podrzucil pomysl skonstruowania urzadzenia do pomiaru czasu dla konkurencji Fast Draw. Strzela sie slepakami, samym prochem i przybitka bez pocisku(kuli) , sam podmuch gazow prochowych powoduje pekniecie balonika. Jako, ze wpadly...
W kodzie poniżej , jak się przedstawia dokładność 50 % ,czy jest lepsza jak w kodzie z 2x asm("nop"); , z postu #13. Czy zmiana z 128 sekund na 128000000 us poprawi dokładność. Jak zmienić 128 sekund na 128000000 us. [syntax=c]#include <avr/io.h> // kwarc 16MHz main () { unsigned char Sekundy = 0; // Nasza zmienna ustawiona na 0 DDRB = 255; PORTB...
Nie za wiele swojego programu pokazałeś, więc trudno powiedzieć gdzie masz błąd. Masz przykład jak powinno wyglądać przerwanie.[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Interrupts Enable Timer0 Start Timer0 On Timer0 Timer_przerwanie Do ........ Loop Timer_przerwanie: ............ Return [/syntax]
Nie wiem co tam chcesz optymalizować bo nie wiemy na co się program uskarża :D Najczęstszym spowalniaczem nie jest ADC tylko zbyt częste odświeżanie/mielenie po wyświetlaczu. Jeśli nie wykorzystujesz pinu WR wyświetlacza to jest on obsługiwany stałymi opóźnieniami czasowymi. Wtedy warto po nim pisać tylko jeśli coś co ma być widoczne się zmieniło. Np....
Witam mam taki problem gdy uruchomię ten program to żarówka bardzo miga. Zliczyłem ilość wywoływanych przerwań i wyszło że na 400 detekcji zera jest 100 przerwań od timera w czasie 4 sekund. Więc detekcja zera działa prawidłowo. Używam Atmega168, kwarc 16Mhz. F_CPU ustawiłem w kompilatorze i działa napewno 16Mhz http://obrazki.elektroda.pl/4656291300_1...
Szkoda czasu na przeładowanie Timera jeśli może on pracować w trybie CTC. Ustawiasz raz i zapominasz. Poniżej przykładowy kod dla 50Hz ze stałym wypełnieniem (zakomentowane) lub regulowanym. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 Config Portb.1 = Output Led Alias Portb.1 Config Portc.5 = Output Freq Alias Portc.5 '### Ustawienia...
1. assembler 2. timer 0x41 0x56 0x45!!
No tak jak to napisałem to faktycznie wygląda dziwnie... Zapomniałem napisać dość istotnej rzeczy... Zegar systemowy to po podziale 16MHz natomiast sam timer tak na prawdę ma zegar 64MHz... Sygnał pochodzi z wewnętrznej PLL...
Witajcie, Potrzebuję konfiguracji timera 1 dla atmega8 aby wykonywał funkcję z częstotliwością ~244Hz (zegar 16MHz i preskaler 2^16) . Chciałbym uniknąć używania dodatkowych bibliotek. Będę wdzięczny za przykładowy kod :) jakąś Przy okazji; jeśli użyję do tego celu timera 1, mogę równocześnie używać wyjść OC1A oraz OC1B jako zwykłe wyjścia I/O? Timer1...
Pokaż, jak w przerwaniu przeładowujesz timer wartością początkową. Pozdrawiam Mariusz
Timery działają z dowolnymi preskalerami i okresami. Zupełnie nie rozumiem, do czego jest Ci potrzebny timer odmierzający 1 us. Czasy specyfikowane w protokole transmisji dla DHT są znacznie większe. Mierz te czasy timerem i na tej podstawie dekoduj dane.
Dlatego lepiej było zastosować układ pracujący na 24 V mniejsze straty , musiał bym zastosować np 3 panele 12V połączone szeregowo. Nie wiem jak to na nie wpłynie czy łączenie różnych ogniw szeregowo powiedzmy różnych mocach nie zabuży układu mppt? Panele łączone szeregowo powinny być takie same, w przeciwnym wypadku uzyskasz wydajność taką jak z najsłabszego,...
Jeśli jest to prosty program korzystający ze sprzętowej generacji PWM, a timer się tylko tym zajmuje, to być może łatwiej będzie zostawić kwarc 16mhz a w hexie odnaleźć miejsce gdzie jest konfigurowany timer i zmienić parametry jego konfiguracji. Swoją drogą co Ci daje zmiana częstotliwości PWM z 2kHz na 1,4kHz?
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 'timer '16MHz 16000000(16MHz)/256(Prescaler)=62500 i odejmij jeden Config Timer1 = Timer , Prescale = 256 , Compare_a = Disconnect , Compare_b = Disconnect , Clear Timer = 1 Enable Compare1a : On Compare1a Timer1_isr : Compare1a = 62499 '1s (at)16MHz...
Jeśli potrzebujesz sekundę to prócz kwarcu 16MHz podłącz kwarc zegarkowy 32768Hz i puść Timer2 asynchronicznie. Timer0 się zwolni. [syntax=basic4gl]Config Timer2 = Timer , Async = 1 , Prescale = 128[/syntax]
główny plik wygląda tak #include<avr/io.h> #include<ścieżka do rc5.h> int main() { DDRD=0x00;;//Porty D jako wejścia DDRB=0xFF;//PORTYB jako wyjścia PORTB=0xFF;//portb w stan wysoki rc5_init(); sei(); while(1) { if(rc5data) { PORTB=0x00; } } } Dodano po 13 włożyłem wszystko...
Używam Timera1 z Atmega164P w trybie CTC, Atmega ma kwarc 16MHz, interesujący kawałek programu wygląda tak: Konfiguracja Timera: void Timer1_Init(void) { DDRD |= (1<<PD7); // PD7 wyjście PORTD |= (1<<PD7); // PD7 <= 1 TCCR1B = (1<<WGM12)|(1<<C...
Witam. Pracujesz na wewnętrznym oscylatorze z PLL co daje 32MHz ale . Timer już nie jest taktowany zegarem 32MHz ale 16MHZ FOSC/2 = TCY . Kolejna rzecz to to że chcesz aby przerwanie występowało co 125ns co przy tej częstotliwości taktowania timera jest nie realne. Przecież obsługa przerwania też trwa ileś tam cykli . Po testuj w symulatorze a w szczególności...
Witam. Fajny pomysł, trzymaj tak dalej! Nic tak nie daje satysfakcji konstruktorowi jak działające urządzenie będące jego własnym pomysłem. Nie wiem czy będziesz rozwijał projekt, ale pewnie tak bo "zawsze można coś poprawić i ulepszyć". Jeśli tak będzie to dobrze by było dodać na płytce złącze programatora aby programować mikrokontroler bezpośrednio...
Nie piszesz jaki AVR i jaka częstotliwość zegara więc odpowiedź masz tak samo precyzyjną jak precyzyjny w zadawaniu pytań jesteś Ty. Weź Timer z CTC i ustaw sobie częstotliwość 76000 Przykładowo dla timera ośmiobitowego przy 8MHz i preskaler 1 ustaw wartość 104 Dla 16MHz ustaw 209. Częstotliwość powinna wyjść 38kHz ;) Taki Timer ma możliwość Togglowania...
Masz rację, z zegara taktującego peryferia masz tylko preskaler 8 i potem 16. Ale nic nie stoi na przeszkodzie, aby jeden timer taktować z zegara CLKPER, ustawić na nim zliczanie do 16 i wyjście z tego timera podłączyć pod event system z którego będziesz taktował inne timery. W takim układzie będą one taktowane z 32MHz/16, czy przez dowolną liczbę z...
atmega16 16mhz usbasp 16mhz bootloader 16mhz
nawigacja wince sterowanie renault nośna moment
boardview toshiba fujitsu futro
Start Button Disabled During S11 Firmware Update Sky HA-ME32DLED20 Firmware Update Guide