Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
Witam, nie znam Bascom i dość słabo Atmega. Podejrzewam jednak, że problemem jest realizowane w przerwaniu ładowanie timera nową wartością. Przyjęcie przerwania wymaga jakiegoś czasu, a timer cały czas "cyka". Kiedy ładujesz go obliczoną wartością (250) zdążył już coś naliczyć, w związku z tym Twój zegar się późni. W efekcie dobierasz eksperymentalnie...
. nie moge sobie poradzic z zegarem czasu rzeczywistego , zegar jest wyswielane ale nie idzie , jak mam go ruszyć , oto fragment programu Config Clock = Soft Config Timer0 = Timer , Prescale = 1024 Start Timer0 Do Home Lcd Time$ Loop Uzywam kwarc 4mhz . Pozdrawiam
No fabrycznie nowa Mega128 wychodzi z zegarem 1MHz. Jeśli masz taką nową to przy przestawianiu na 8MHz nie zapomnij wyłączyć JTAG i koniecznie wyłącz bit M103C bo to jest bit który ją "cofa w rozwoju" ahahaha czyli robi kompatybilną ze starszą Atmegą103 i tam jest kilka zmian w rejestrach i sprzęcie przez co program na pewno dobrze działać nie będzie...
https://obrazki.elektroda.pl/5445428700_... Cześć, Chciałem przedstawić Wam zegar widmowy, który niedawno wykonałem. To jest moja odskocznia od pracy i małe DIY po godzinach. Moje podstawowe założenia to możliwie najprostsza konstrukcja pod względem elektronicznym i mechanicznym oraz jakaś tam doza estetyki. Mózgiem zegara jest Atmega...
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...
Jeszcze raz poproszę o poprzedni kod dla AVR, który ci działa. Jeśli to kod dla "frameworka" arduino (pozwolę sobie zażartować, chociaż język C++ jest jednym z moich ulubieńców), to wystarczy skompilować go dla STM. Wówczas tylko w sekcji definicji pozmieniaj nazwy portów, które będą obsługiwały LCD i inne peryferia. "Zasugerujcie jakieś ramy programu"...
http://obrazki.elektroda.pl/4373549900_1... Witam wszystkich forumowiczów. Dziś Wam przedstawię zegar który wykonałem głównie z ciekawości, jest to projekt który został już opublikowany na elektrodzie przez użytkownika "Mariusz Wiśniewski" poniżej link do tematu. http://www.elektroda.pl/rtvforum/topic45... Prawdę mówiąc zegar...
Tym razem uwaga na temat taktowania timera B. Timer B ma bardzo zubożony dzielnik zegara gdyż may tylko opcję dzielenia przez 2 lub braku dzielenia. Alternatywą może być taktowanie zegarem zapożyczonym z Timera A, (sygnał pobierany zza dzielnika Timera). This peripheral uses the system's peripheral clock CLK_PER. The peripheral has its own local prescaler,...
Dzień dobry, chciałbym opisać zegar szachowy mej konstrukcji. http://obrazki.elektroda.pl/2838677600_1... http://obrazki.elektroda.pl/4442183300_1... http://obrazki.elektroda.pl/1402313500_1... Pomysł zbudowania takiego zegara zrodził się w mej głowie, kiedy w okresie zainteresowania mikrokontrolerami...
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...
http://obrazki.elektroda.pl/5579487800_1... Witam wszystkich. Chciałem podzielić się swoją modyfikacją programu, schematu oraz płytki pcb zegara, który cieszył się sporą popularnością na elektrodzie, dokładnie tutaj: http://www.elektroda.pl/rtvforum/topic44... Oto co zmieniłem: - dodałem obsługę jednego czujnika DS18B20 - wyeliminowałem...
Dzień dobry. Zlecę napisanie programu timera do urządzenia opartym na ATMEGA i rejestrze 74HC595. Urządzenie składa się z zegara czasu rzeczywistego i timera. Zegar ma pokazywać bieżący czas, możliwość ustawienia tegoż czasu na pierwszym wyświetlaczu LED cztero cyfrowym 7 segmentowym, oraz powinien mieć podtrzymanie tego czasu na kilka tygodni po odłączeniu...
Wygląda na to, ze to obecność drugiego czujnika DHT11 ( mimo, że na osobnym pinie ) powoduje zawieszanie układu, lub druga możliwość, zbyt częste wywoływanie odczytu - w dokumentacji jest że czas odpowiedzi to nawet 30 sekund. Odnośnie tego: Aaaa, obsługa karty SD na AVR-DOS - jak wiadomo do poprawnej pracy ten system wymaga (niestety) skonfigurowanego...
Witam, bardzo proszę o pomoc. Zrobiłem układ na Atmega32 z podłączonymi diodami do całego PortuA, oraz do PortuB Pin2 (PB2) dekoder podczerwieni TSOP31236 (testowałem też na TSOP31238). Wykorzystać chciałem bibliotekę IRMP https://obrazki.elektroda.pl/6945425800_... a w załączniku spakowany cały projekt z plikami biblioteki irmp.
Xmega niby jest super, ale jeżeli chcesz puścić dane przez port SPI (max. 8MHz, więc teoretycznie 200pxl), to nie masz bufora i pojawia się kwestia stabilizacji obrazu. Bufor ma tylko USART w trybie SPI, ale on pracuje z prędkością do 4MHz (100pxl/linię). Możesz użyć DMA do transferu danych na port, z którego uzyskasz kolory, ale... Prędkość DMA zależy...
Witam Mam problem z timerem w uc Atmega 8. Chciałem sobie napisać zegar,ale nie mogę tego zrobić przy użyciu timera,bo timer w ogóle nie generuje przerwania :| licznik chodzi i się przepełnia,bo wyświetliłem sobie jego wartość na lcd żeby sprawdzić co jest nie tak...załączam kod programu,bo już nie mam pomysłów co może być nie tak $crystal = 8000000...
dzieki za odpowiedz co do prezrwan to troche trudna sprawa bo jesli zrobie to na przerwaniach i bede dzielil zegar np 8 mega na 1 mega to co 8 cykli sie wywola przerwanie i bedzie bardzo absorbowac uC ktory ma troche inne zaganie niz podzial zegara(kod mam napisany w C to troche truno nawet przewidziec ile czasu sie bedzie wykonywal). Troche dokladniej...
Do odmierzania odcinków czasów wystarczy ci timer i kwarc 32kHz bo dokładność nie odgrywa tutaj dużej roli.Widziałem gdzieś w sieci podłączenie kamerki MCA-25 chyba ale jeśli jesteś początkujący odpuść sobie nie dasz rady.
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...
Błąd spowodowany zegarem 11,0592 (zakładając dobrze dobrane wartości przy timerze 16bitowym) będzie w granicach błędu samego kwarcu, więc dużo to nie zmieni. Zawsze możesz wybrać zegar np. 16MHz i prędkość 57.6 z błędem do przyjęcia (0,8%), albo najlepiej 76.8k (błąd 0,2%) lub nawet 250k (błąd 0%). Jak potrzebujesz wysokiej dokładności to jakiś dokładny...
Czyli gdzie jest znak = ma być , ? wszędzie? Zegar mam na 8MHz.Już zmieniłem. Bit 103 jest na zero, watchdog na jeden zrobiłem tak $regfile = "m128def.dat" $crystal = 8000000 Config Pina.0 = Output Config Timer 0 = Timer , Prescale = 256 On Timer0 Odmierz_1s Dim Licz_8ms As Byte Enable Interrupts Enable Timer 0 Load Timer0 = 250 Do Loop End Odmierz_1s:...
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) {...
Cześć. Zrobiłem prosty zegarek na LCD i atmega8 , kwarc wewnętrzny 8Mhz No i problem ,kod jest dość prymitywny : Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 Config Lcd = 16 * 2 Dim Sekunda As Byte Dim Minuta As Byte Dim Godzina As Byte Do Waitms 1000 Incr Sekunda If Sekunda = 59 Then...
PCF8583 ma własne zasilanie [akumulatorek] do podtrzymania pamięci , błędny odczyt następuje po zmianie wartości dni np; 19-07-2011 na 20-27-2011 .. 20-47-2011 . Co jest powodem nie wiem choć przeczytałem polskiego datasheta PCF-a. Przepisałem program ale z porównywaniem czasu to jest masakra i do tego jak na złość nie działa , czy można to zrobić prościej...
Cóż, a gdybym co sekundę synchronizował zegar w Atmedze (z danych GPS). W takowej odpaliłbym Timer i liczył np. od 0 do 15 milionów, - 15 milionów cykli to była by jedna sekunda, jednakże po ++ zmiennej dodałbym warunek przerywający cykl liczenia (w momencie otrzymania impulsu) i w ten sposób obliczył sobie część sekundy? Jeżeli licznik dobije do 15...
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...
Witam! Widziałem już na Elektrodzie kilka postów na temat zegara w AVR ale niestety mi nie pomogły. Napisałem taki kod w BASCOM: Config Lcd = 16 * 1a $crystal = 8000000 Config Clock = Soft Time$ = "22:08:00" Cls Do Home Lcd Time$ Loop End Po uruchomieniu programu zegar nie zlicza tylko cały czas wyświetla godzinę 22:08:00, Do procesora ma podłączony...
Ja wymyśliłem to tak, mam zmienną sector[512] i do tej zmiennej wpisuje sektor X z karty SD potem konfiguruje timery, Timer 1 jako PWM a Timer 2 wytwarza przerwania w częstotliwości 44000 Hz, co kolejne przerwanie wpisywana jest wartość ze zmiennej sector[pwmI] do OCR1A i zwiększane jest o 2 pwmI bo (bo próbka ma 16 bitów, mniej znaczący bajt omijam),...
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 nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Witam Mam problem z zegarem na lcd. Wyświetlacz mi działa. Działa nawet zegar, lecz jest on napisany bardzo łopatologicznie i używa, delaya, a to nie jest wg mnie najlepszym pomysłem. Chciałbym,żeby zegar wyliczał sekunde z zewn kwarca 32.768 kHz. Tak podobno najlepiej. Poniżej przedstawiam program, który aktualnie używam. Próbowałem wklejać proste...
Witam ponownie, znalazłem wcześniej na elektrodzie program zegarka na LCD 2x16, który niestety nie działał prawidłowo (migały niezrozumiałe znaki na lcd). W celach edukacyjnych postanowiłem przerobić procedury obsługi wyświetlacza, co dało efekt końcowy jaki teraz mam czyli działający program zegara na LCD, ale jest jeden problem. Zegar odmierza 1 sek...
Jak na załączonym obrazku, wskazówka i pozostałe elementy obrazu "migają", tak jakby nie zapalały się po każdym obrocie. http://youtu.be/SMU5YG3xl9k W czym tkwi problem? W kodzie prawie nic nie ma. Jeśli każę się zapalić wskazówce w przerwaniu to pięknie chodzi. PS: Wiem że zegar chodzi za szybko i w drugą stronę narazie tylko do testów :D. Przerwanie...
Witam Piszę program w Bascomie na Atmega32 do sterowania ogrzewaniem w warsztacie i mam problem. Jest zegar RTC, zewnętrzny Ram, Timer, Menu i to wszystko działa bez zarzutu - dokładnie tak jak bym chciał. Chciałem dołożyć czujnik temperatury i wykorzystać do tego celu wejście ADC. Problem pojawia się w momencie jak w podmenu "Start_webasto" dodaję...
Witam, Chciałbym dowiedzieć się jak mogę łatwo przeliczyć preskaler i czas przerwać, tak abym mógł odmierzać czas na ATMEGA_32 16Mh Timerem1 oraz Timerem0. Z góry dzięki za pomoc. ----------------------------------------... (PS. Jestem początkującym użytkownikiem tego forum mimo, że od roku czasu jestem na nim zarejestrowany....
Witam! Od niedawna męczę się z odebraniem kodu Rc5 w tle działania innego programu. W moim wypadku jest to zegar z budzikiem na LCD który działa bez problemu lecz jak tylko dorzucę do programu procedurę odbierania Ir to wtedy przestaje mi liczyć czas mój zegar. Niżej zamieszczam przykładowy program z odliczaniem 1 sekundy przez Timer0 i dodanym do tego...
Witam, mam problem z ustawieniem przerwania od timera0 na atmega8, jestem początkujący jeśli chodzi o assembler... Problem leży w tym że, uP jest taktowany z wewnętrznego zegara 1MHz, i jeśli mam ustawiony prescaler na 8 czyli rejestr TCCR0 na 2 to powinienem otrzymać obsługę przerwania co 8us a na oscyloskopie otrzymałem igiełkę co 2ms;/ nie wiem co...
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...
Witam kolegów, głowię się już ładnych parę dni nad taką kwestią w procku: zrobiłem na Atmedze8 zegarek. Zewnętrzny kwarc 4MHz. Timer1 zajmuje się odliczaniem równych sekund, Timer0 osługą wyświetlania itp. Na czym polega problem? Zegarek spóźnia się, wg moich obliczeń na symulatorze w AVR Studio, o 0,345s na dobę. Nie jest to szok ani porażka, raptem...
Zrobiłem sobie dziś bardzo prosty zegar na atmedze8 i wyśiwetlaczu alfanumerycznym. Zegar zrobiony jest na wewnętrznym kwarcu. Niestety zegar strasznie spóźnia(około 4s na minutę). Byłbym bardzo wdzięczny jeśli ktoś by mi powiedział co zrobiłem nie tak. Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.5...
wykonałem zegar na atmega8 lcg 1*16, z uzyciem timera1 dalem kwarc 8MHz, aby odliczać czas co 1s zrobilem tak Config Timer1=timer, prescale=256 następnie dałem counter1=counter1+34286 8MHz/256/(65536-34286)=1s - powinno mi dac dokładnie 1 sekundę a z pomiarów sekundnik zmienia sie mniej wiecej co 8 sekund, czy ma ktos moze pomysł dlaczeo tak sie dzieje?...
Proszę, niech mnie ktoś oświeci jak skonfigurować dowolny timer w XMEGA ale serii E5 ! - one mają timery typu 4/5 czyli inne niż pozostałych XMEGA-ch. Mam podłączony buzzer do pinu D0 i co bym nie robił dostaję na nim przebieg o częstotliwości 34kHz. F_CPU=2000000. Atmel Studio 7. http://obrazki.elektroda.pl/2870512400_1... W ogóle chciałbym...
Witam. Co prawda były już podobne tematy, ale nie znalazłem odpowiedzi na swoje pytania. Napisałem sobie prosty program zegarka w Bascomie który wyświetla stan na lcd (hd44780). Dołączyłem zewnętrzny kwarc 16MHz i ustawiłem fusebity aby z niego korzystał (SUT:10; CKOPT:0; CKSEL:1111). Zegar oczywiście się spóźnia. Początkowo ustawiłem prescale timera0...
Witam. temat pewnie laicki lecz jest to moj pierwszy kontakt z uC PIC. staram się wywalczyć coś z tego uC ale nic nie idzie. proszę o pomoc w sprawdzeniu ustrawień i samego kodu. uC wewnętrzny zegar na 4 MHz #include "D:\MOJE_PROGRAMY_PIC\moj2\moj2... int i; void migaj_led(int licz) { while(i<=licz){ OUTPUT_B(0xFF);...
Projekt to może nie jest, raczej element/część możliwości układu jakie staram się poznać. Na płytce Amtega32 Dwa wejścia/przyciski, uruchomiony Timer1 dla obydwu wyjść PWM. Sterowanie ( na razie LED ( chcę halogeny do tego podpiąć przez tranzystor NFET ), jeden przycisk/wejście - jedno wyjście ( tylko tak ciekawie, że na przemian, dłuższe przyciśnięcie...
Przesyłam fragment kodu dla "paluch_gda" jedną cewką zapłonową na dwa obroty wału (pełny cykl pracy) na jednej cewce generowane są 4 takie "odcinki czasu" (iskra przeskakuje po raz na każdej ze świec), więc na 1 obrót wału przypadają 2 "odcinki czasu". Dzielimy więc wartość Nr (liczba "odcinków czasu" w 1 minucie) przez dwa i otrzymujemy prędkość obrotową...
A oto działający kod dla bufora 128 bajtów (można zrobic mniejszy, 64 dziala ale tylko przy Clockrate = 4 , Spsr.0 = 1 i samplu do 16kHz) zależny od prędkości z jaką odczytujemy dane po Spi z karty, im wolniej tym bufor musi byc wiekszy, zależy też od częstotliwości próbkowania pliku dźwiękowego, im szybsze tym bufor większy. Wzorowałem sie na przykładzie...
Witam! Próbuje zbudować zegar na wyświetlaczu led 4x7 segmentów. Na wyświetlaczu widać dziwne wskazania tak jakby cyfry nakładały sie na siebie i w żaden sposób nie mogę tego zlikwidować :cry: . Widać ze na wyświetlaczu cos sie zmienia tylko nie wiadomo co. Oto kod z bascoma: $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Portb.0...
Witam. Napisałem prosty program wyświetlający zegar oraz 2 temperatury na wyświetlaczu w standardzie hd44780. Wszystko jest dobrze podłączone, kwarc 7.37. za każdym razem po uruchomieniu po pewnym czasie(czasem 5 minut a czasem nawet ponad godzinę) układ się wywala. Na wyświetlaczu zaczynają się pojawiać różne krzaczki. Zastanawiam się czy to wina uProcesora...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
co napisaliscie jako swoj pierwszy program na dany uC w danym jezyku (rozbudowy sie licza, byle by wciaz byla to ta sama baza) n. n. - literka, cyferke z przodu dodam sam. zachowujcie chronologie w swoich dokonaniach na roznych platformach jezykowych i sprzetowych, tak aby to mialo sens! ____________________ 0x1-a. Freddie Chopin - migacz diodkami o...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
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...
Każdy licznik ma własny preskaler, własne rejestry i własne przerwania - to 7segmentów starczy Ci 8 bitów i preskaler. Zreszta zerknij sobie na: http://www.et06.dk/atmega_timers/
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).
TCCR1B |= ((1 << CS10) | (1 << CS11) | (1 << CS12)); /* ustawia timer na pracę z zew. kwarcem */ Nie z zewnętrznym kwarcem, a z zewnętrznym źródłem sygnału. Timer1 o ogóle nie może pracować z rezonatorem kwarcowym. Gdzie w takim razie go w ogóle podłączyłeś (rezonator)?
Witam, próbuje wykonać prosty odtwarzacz midi w oparciu o mikrokontroler atmega8535. Bazując na przykładach z internetu udało mi się temat jakoś wstępnie ogarnąć. Niestety na atmedze nie uruchamia mi się zegar o który oparte mają być programy. Wszystko jakby "wisi". Dodam że programuję w C w środowisku Code Vision AVR. W celu zlokalizowania problemu...
www.mcselec.com
Witam, z niewyjaśnionych dla mnie przyczyn program napisany pot atmegę 8535 nie chce uruchamiać przerwań wywoływanych przez zegar. Posiadam taki następujący kod który powinien co przerwanie zmieniać stan portu B. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> void system_init() { TCCR0 = 0x00; // Wylaczenie Timera 0 TCNT0 = 0x00;...
2 serwa można zrobić całkowicie sprzętowo TCCR1A = _BV(WGM11); /* Fast PWM, ICR1 is top */ TCCR1B = _BV(WGM13) | _BV(WGM12) /* Fast PWM, ICR1 is top */ | _BV(CS11) /* div 8 clock prescaler */ ; OCR1A = 3000; // to jest chyba dla zegara 16 Mhz - to by odpowiadało impulsom 1.5 ms OCR1B = 3000; ICR1 = clockCyclesPerMicrosecond()*(...
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...
1. Volatile: http://mikrokontrolery.blogspot.com/2011... 2. Tryb asynchroniczny: 1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2. 2. Select clock source by setting AS2 as appropriate. 3. Write new values to TCNT2, OCR2, and TCCR2. 4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB...
TCCR0 = _BV(x<<CS00); Źle użyłeś makra _BV. _BV(x) jest równoznaczne z ( 1 << x ), czyli w Twoim przypadku próbujesz wykonać podwójnie przesunięcie bitowe. Jeżeli x = 3 (CS00=0): _BV(3<<CS00) = _BV(3) = (1<<3) = 0b00001000 czyli TCCR0 będzie równe 0b00001000 . Innymi słowy, próbujesz ustawić bit tylko do odczytu, zamiast...
Tak na szybkiego możesz sprawdzić to: Wstaw w odpowiednich miejscach w swoim programie. int second=0; SIGNAL (SIG_OVERFLOW2) { second++; } int main(void) { LCD_Initalize(); LCD_Clear(); while(1) { char t1[2]; itoa(second,t1,10); LCD_WriteText(t1); } }
Faktycznie, teraz wiem że w tym trybie praca PWM nie jest powtarzalna. Jest jak najbardziej powtarzalna i zgodna z dokumentacją. Ogólnie ATMegi stare mają tak zrealizowany PWM, że występuje szpilka o czasie trwania jednego taktu zegara taktującego timer. Jeśli przeszkadza, to należy zmienić tryb pracy timera. Natomiast w ramach trybu efekt ten jest...
zegar timer timer zegar timer atmega przerwanie
hulajnoga elektryczna ninebot miernik nierównomierność przepływomierz wysokie
kolumny zamknięte kabel uziemienia
Seat Cordoba błąd 0571, check engine, hamulec i światła działają – czujnik świateł stop Schemat instalacji elektrycznej Ford Transit MK8 2016