No jest kretyński :) TIMSK = _BV(TOIE1); // wlacz obsluge przerwan T/C1 TIMSK = _BV(TOIE0); //jw dla T/C2 TIMSK = _BV(TOIE1) ; // wlacz obsluge przerwan T/C1 TIMSK |= _BV(TOIE0); //jw dla T/C2 albo TIMSK = _BV(TOIE1) | _BV(TOIE0) ; ;)
Aż musiałem wyciągnąć płytkę - co prawda c 168PB - przerwania chodzą aż miło :). Przy okazji jak chcesz się męczyć AVR-ami to proponuje kupic płytke z debuggerem typu xpained mini - będzie łatwiej [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t cnt; int main(void) { TCCR1B |= (1 << WGM12); TIMSK1 |= (1 <<...
Jak mnie pamięć nie myli to powinno być "on timer1 czas" a nie on timer1 goto czas . Tak przynajmniej było w poprzednich wersjach tego kompilatora sprawdź w helpie poza tym dlaczego po zezwoleniu na przerwania dajesz komendę stop timer1? Zatrzymany zegar przerwania nie wyzwoli ...
Jezeli w programie pozniej nic nie zmieniasz to twoj licnzik pracuje w trybie normal;) Zeby byl w trybie CTC musialbys uwstawic bit WGM12!! bit OCIE wlacza tylko przerwania dla trybu CTC!! Ustaw TCCR1B TCCR1B=0xC; [/code]
Przerwanie ma być co 800ms. Timer0 prawidłowo generuje to przerwanie: 1/8000000=0,000000125 => 0,000000125*256=0,000032 => 0,000032*250=0,008s => 0,008*100=0,8s i tyle jest odliczane. Dla timera1 rachunek jest analogiczny, ale niestety nie generuje przerwania po tym czasie, tylko kilkakrotnie później. Timery ładowane są początkową wartością w programie...
Dzięki wielkie. Fakt - zgubiłem to w trakcie. Tylko, nadal przerabiam temat i ustawienia, żeby otrzymać 1s. Bo nadal wyprzedza LED :P Ale naprzykład; Zmieniłem fusebity na 1MHz (zegar wewn), przerobiłem kod (prescaler) i o dziwo, mam 1 sekundę na LED (przez minutę żadnej różnicy), więc co jest nie tak przy 8Mhz? zmieniony kod; Dodano po 48 Osobiście...
Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...
A nie powinieneś czasem użyć bitu OCF1 i przerwania "0x006 TIMER1 COMPA Timer/Counter1 Compare Match A"?
Moja uwzględnia czas, który upłynął od przerwania do załadowania timera. Może to mieć wpływ gdy wystąpi w tym samym czasie obsługa innego przerwania.
symulator bascoma jest bardzo dokładny i liczy co do taktu. jeżeli program opiera sie na przerwaniach timera to należy włączyć okienko "Slim Timers" , wtedy symulacja trwa trochę dłużej ale bierze pod uwagę przerwania timera. co do compare1a to jest to rejestr poruwnawczy timera1. co takt zegara jest on poruwnywany z zawartościa timera (czyli licznika)...
[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...
Po pierwsze jakie czasy chcesz obliczać i jakie przerwania po co ??? To jest bascom nie assembler, deklarujesz na wstępie programu prędkość kwarcu a kompilator troszczy się o resztę tj. dajesz deklarację $regfile = "m8def.dat" $crystal = 12000000 Po drugie, procedura obsługi wyświetlaczy LCD (mowa tu o alfanumerycznych HD44780) jest w BASCOM zaimplementowana...
Jak jest z dokładnością zegarka RTC w Atmega8? Słyszałem plotki, że nie chodzi to zbyt idealnie. Potrzebuję zrobić zegar do zliczania tylko dni i zastanawiam się czy jest sens stosować zewnętrzny układ RTC. Układ musi mieć podtrzymanie zegara z baterii/kondensatora w przypadku zaniku zasilania. Śmiało możesz użyć np. Timer1 w trybie CTC jako generatora...
Niestety schemat mi nie pomógł. Ależ pomógł, bo nie znalazłeś w nim żadnych zależności dot. kasowania timera przy jego wyłączaniu poprzez ustawienie preskalera zero. Jest to logiczne, ponieważ gdyby licznik timera był automatycznie kasowany, to zmniejszałoby jego możliwości, bo nie można byłoby go "puścić dalej" Schemat preskalera pokazuje natomiast,...
http://obrazki.elektroda.pl/8267947700_1... Ponad 20 lat temu jako amator hobbysta budowałem proste układy elektroniczne. Studia i styczność z informatyką spowodowały, że porzuciłem hobby pod nazwą "składanie elektroniki" na rzecz "składanie programów komputerowych". W bieżącym roku (2011) dzięki uprzejmości kolegi Jacka.M, który okazał...
Tutorial do avr taki znalazłem: http://avr.elektroda.eu/?q=node/8 Jak byś czegoś w sieci szukał, to raczej unikaj tutoriala z patron.net, uczy złych nawyków i jest nieco nie na czasie. Pomiar częstotliwośći na AVR realizuje się w miarę łatwo, przy wykorzystaniu timerów, jeden timer pracuje jako licznik impulsów z zewnątrz, a drugi odmierza czas, mozna...
Witam, mam taki problem. Procek -Atmega8, chwilowo taktowana wewnetrzym 8mGHz. bascom Ogólnie program działa nastepująca: Korzystam z INT0 ustawiam go na zbocze opadjaące. konfiuguruje timer0 z parametrem Compare A = disconnect ustawiam flage na 0 do loop przerwanie int0: czesc1: sprawdza flage jak 0 to uruchamia tajmer , zmienia sie na zbocze rosnące...
Witam serdecznie forumowiczów. Od dłuższego czasu nie miałem do czynienia z AVR. Ostatnio zaszła potrzeba wykonania pewnego urządzenia. Do tego celu zaprzęgnąłem Timer1 ustawiony w tryb CTC. W efekcie miało być przerwanie generowane co 1s. Niestety generuje się o wiele rzadziej. Co robię nie tak? OCR1A = 0x7A11; TCCR1A |= (1<< WGM12);...
Zadaniem programu ma być odmierzenie 1 sekundy (zmiana stanu na wy). Przerwanie od timera 2 przychodzi co 1ms. Kwarc zewnętrzny ~11MHz. Czy ktoś mógłby napisać dlaczego program nie działa? #include<avr/io.h> #include <avr/interrupt.h> int i=0; int main(void) { DDRC = 0b00001000; TCCR2=_BV(CS22); TIMSK = _BV(TOIE2);...
Witam Zacząłem sprawdzać przerwanie TIMER1 w trybie przepełnienia. Na symulatorze program normalnie działa jednak w rzeczywistości inaczej. .include "m8def.inc" .equ przyciski = portc .equ in_przyciski = ddrc .equ wyjscie1 = portb .equ out_wyjscie1 = ddrb .equ wyjscie2 = portd .equ out_wyjscie2 = ddrd .equ wys0 = portd0 .equ wys1 = portd1...
Mam problem z przerwaniem od timer1, wywołuje się ok. 64x wolniej niż wynika z obliczeń. Przykładowy prosty program: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Dim 1ms As Word 1ms = 0 Dim A As Byte A = 0 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5...
Witam, pisze program w którym wykorzystuję 16 bitowy Timer1 z Atmegi 328. Najpierw konfiguruję go tak: [syntax=vbnet]Config Timer1 = Timer , Prescale = 64 'Kwarc 18.43MHz, 1/18430000 * 64 = 3.473us Enable Timer1 On Timer1 Impulsuj 'ISR[/syntax] a potem mam procedurę przerwania której zadaniem testowym jest wygenerować przebieg prostokątny: [syntax=vbnet]'---------------------ISR....
Witam. Koledzy trochę skomplikowałem sobie życie. Zaprojektowałem i wykonałem już płytkę i teraz widzę że mam problem. Otóż potrzebuję na wyjściu OC1A generować sygnał pwm ale TIMER1(16-bit) jest mi potrzebny do generowania przerwania co 1s. Czy dało by radę generować sygnał pwm z timera0 ale na wyjściu OC1A? Port PD.4 mam zajęty. A może nie komplikować...
Witam, Mam problem z obsluga przerwan od przepelnienia licznikow. W projekcie wykorzystuje 3 liczniki w atmega8, timer2 wykorzystuje do generacji sygnalu 40kHz natomiast pozostale dwa maja zliczac czas od nadania sygnalu do otrzymania echa. Narazie napisalem osobną obsluge kazdego z timerow i dzialalo. Po wrzuceniu wszystkiego do jednego projektu dziala...
Prosze o pomoc co moze byc zlego w tym "prostym" kodzie na zegarek nie wiem ale nie chce dzialac na mojej Atmedze 8. mam Atmege ktora chodiz na zegarze wewnetrznym Dim G As Byte Dim M As Byte Dim S As Byte Dim X As Byte Dim W As Word Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.4 , Db6 = Porta.5 , Db7 = Porta.6 , E = Porta.2...
Witam, potrzebuje pomocy z timerem1 w atmega328p. mam taki kod: [syntax=c] // Ustawienie timera 1 TIMSK1 |= (1<<TOIE1); // umozliwenie przerwan od timera1 TCCR1B |= (1<<CS00) | (1<<CS02); // prescaler na 1024 TCNT1 = 60000; // wartość rejestru w którym odbywa się liczenie na 60000 sei(); // przerwanie od timera1 ISR(TIMER1_OVF_vect)...
Witam, Atmega 8, Timer1. Prosty generator: przerwanie od timera1 ze skróconym cyklem, pętla główna pusta, w przerwaniu zmieniam stan portu. Niby proste... Oto kod: http://obrazki.elektroda.pl/8467182600_1... Są to regularne skrócenia cyklu z 1.085ms na 0.6355ms. Proszę o wyjaśnienie co to jest i jak sie tego pozbyć?
Witam. Nie mogę dobrać parametrów timera tak by osiągnąć zadaną częstotliwość. Potrzebuje teraz osiągnąć by timer1 się przepełniał 10 razy na sekundę czyli co 100ms. Oto mój kod (jego kluczowe fragmenty): https://obrazki.elektroda.pl/3526196900_... Czyli mamy częstotliwość CPU 16MHZ. Dzielimy ją przez prescaler 64 i wychodzi 250kHz....
Problemik z PWM i Przerwaniem Timera. Czy możliwe jest żeby PWM sobie działał, a Timer generował normalne przerwanie? Z tego za zauważyłem to nie bardzo. TCCR1A = (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0); //8bit PWM, phase correct TCCR1B = (1<<CS12) | (1<<WGM12); TCNT1H = 0x57; TCNT1L...
Witam Próbuję ustawić Timer0 oraz Timer1 aby zmniejszały zmienną co 1 sekundę. Rezonator 4Mhz. Czy możecie sprawdzić czy wszystko mam ustawione poprawnie ? // Inicjalizacja T0 TCCR0=0x03; TCNT0=0x0F; // Inicjalizacja T1 TCCR1A=0x00; TCCR1B=0x04; TCNT1H=0xC2; TCNT1L=0xF7; interrupt [TIM1_OVF] void timer1_ovf_isr(void) { TCNT1H=0xC2;...
http://obrazki.elektroda.pl/7995180000_1... Witam! Jakiś czas temu rozpocząłem naukę pisania programów na mikrokontrolery AVR w języku C++. Przeczytałem wiele tutoriali, poradników, itp., aż w końcu doszedłem do pisania własnych, prostych programów. Po kilku takich „pseudoprogramach” zdecydowałem, że teraz czas napisać coś...
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...
twój program doskonale miga diodą zgodnie z zamierzeniem ale musisz poczekać nie sekundę a kilka minut bo z powodu niezerowania licznika count kolejne mrugnięcie zachodzi dopiero po przekręceniu inta :) (btw. w tej sytuacji volatile jest niepotrzebne)
A co jeśli do pierwotnego kodu dodasz: [syntax=c]ISR(TIMER1_COMPB_vect) { }[/syntax]
W twoim programie wg BASCOM-AVR są błędy: Error : 42 Line : 31 Numeric parameter expected Error : 42 Line : 32 Numeric parameter expected Error : 124 Line : 32 LOOP expected Popraw program. Przepraszam za wcześniejsze błędy. Poniżej prezentuję poprawiony kod: [syntax=text] $regfile = "m8def.dat" $crystal = 16000000 $hwstack = 32 $swstack...
Sorry że tak późno, ale komuś może się przyda. [syntax=csharp]#include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> #include "hd44780.h" volatile char dziesiatka = 0; volatile int sekunda = 0; volatile int flaga = 0; char tekst[10] = "Gotowy"; int main (void) { TCCR1A = ((0 << WGM11) | (0 << WGM10)); // ustawienie...
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...
Potrzebuję pomocy w konfiguracji Timer1 (ten mam wolny) ewentulanie modyfikacja obecnej konfiguracji Timer0. Obecna konfiguracja jest dla odliczania odpowiedniego czasu dla ramek RC5 odbieranych przez odbiornik TSOP322 przy taktowaniu procesora z F_CPU=8MHz, w celu oszczędności energii chcę zrobić odbieranie przy częstotliwości 1MHz. Jak widać z obsługi...
Ok, to już działa. Teraz uruchomiłem CTC na Timer1 i znowu mam problem. Dioda powinna migać co 100ms, ale ona zaświeci się na 100ms, zgaśnie i już więcej nie chce się zaświecić. Co może być źle z tym kodem? [syntax=cpp] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define LED_PIN (1<<PB0) #define LED_TOG...
Teraz mam taki kod dotyczący ustawień TIMER1 ISR(TIMER1_COMPA_vect) { flag_timer_1 = 1; } // interrupt TCCR1A |= (1 << CS10); //ustaw timer1 z preskalerem 1 TCCR1A |= (1 << WGM12); //ustaw timer1 w tryb CTC OCR1A = 10000; TIMSK |= (1 << OCIE1A); //zezwolenie na przerwania dla CTC SREG |= _BV(7);...
Ja bym uzyl duzego kwarcu np 20MHz. Zrobilbym przerwanie co 10us, a w przerwaniu dalbym 2 liczniki i 2ify sterujace 2 ma wyjsciami. Potem calosc zestroilbym dodajac nopy i ewentualnie korygujac minimalnie timer . A switche podlaczylbym na przerwania Int aby nie falszowaly mi czestotliwosci.
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...
A tak sobie siadłem i napisałem migacz. Kod na ATMega8 taktowana 8MHz http://obrazki.elektroda.pl/9449768600_1...
Ale przenieś choć część swoich Sub do przerwania Timer2, lub 1 i zobacz jaka jest różnica w działaniu programu. A różnica jest i to spora, program przyśpiesza znacznie, wczoraj przerobiłem cały program na timer1, skończyły się problemy z komendą wait. Więc jeżeli timer1 jest wolny to będę go bardzo chętnie używał.
1. Ten kod da się zoptymalizować do Fast PWM bez obsługi przerwania od Timer1 CTC. 2. Te wartości grX to co to jest ? Częstotliwość razy 10 ?
Napisałem program, ale zastanawiam się jakie są szanse na jakiś sprzętowy błąd w atmedze8. Mam dwa przerwania TIMER i UART. Timer uruchamia się co ~8000 cykli na 1000 cykli. UART uruchamia się maksymalnie co 2000 cykli na zaledwie 100, bo tam w sumie wszystko usunąłem na próbę. UART niczego modyfikuje tylko jedną zmienną, ale to zwykła zmienna globalna...
Widzę, że coraz bardziej zbliżamy się do assemblera. W bascomie da się wyłączyć generowanie odkładania i pobierania ze stosu rejestrów w czasie ubsługi przerwania: On timer1 nazwa_suba NOSAVE Ale wtedy to asm w obsłudze przerwania obowiązkowy (bo kto odkryje, które rejestry zmienia Bascom). Ewentualnie można zdekompilować prog sprawdzić i potem dopisać.
Udało mi się uruchomić tryb asynchroniczny, a zrobiłem to tak: #include <avr/io.h> #include <avr/interrupt.h> int main (void) { ASSR |= (1 << AS2); // tryb asynchroniczny TCCR2 |= (1 << CS22) | (1 << CS20); // preskalery TIMSK |= (1 << TOIE2); // odblokowanie przerwań z...
w tym momencie wykorzystuje do multipleksowania timer1 czyli B (chyba), a mam wykorzystać pierwszy, czyli timer0 czyli A. W obsłudze tego przerwania nic ma nie być?
Podałem wyraźnie, że oprogramowanie napisałem w WinAVR ;) Nie uznaję czegoś takiego jak bascom (wystarczyło mi raz w życiu się na nim przejechać...). Przedstawię "odchudzone" kody źródłowe - aby były całkowicie funkcjonalne należy troszkę dopisać. Ogólna idea jest przedstawiona. Sam main w programie jest niewielki. Dla przykładu pokażę jak zrealizowałem...
Symulator ten działa dla większości osób więc i u mnie teoretycznie powinno być dobrze. A na mikrokontrolerze i wyświetlaczu będę mógł zrobić dopiero jak opanuję eagle. [syntax=cpp]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int znak[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8...
Koledzy a czy ktos moglby przeltumaczyc ten kod na BASCOMA?? Ccialbym podobny uklad jednak na BASCOMie. Z gory dziekuje Może nie ten kod ale przykładowy program do generowania kodu PWM w Bascomie. Miłej zabawy i pozdrawiam. '************** '* - PWM - * '************** Dim A As Byte 'Zlicza lolejne przerwania Timer1 Dim D As Byte 'Określa % wypelnienia...
Witam Próbuję zrealizować multipleksowanie wyświetlaczy 7-seg.(dwóch) na atmega8, piszę w C, korzystam z WinAVR, mam wyświetlacze ze wspólną anodą, wykorzystałem tranzystory PNP. Z częstotliwością zegara nic nie kombinowałem więc mega pracuje na 1MHz. Napisałem taki kod: #include <avr/io.h> #include <avr/interrupt.h> /* cyfry na wyświetlaczu...
Minął rok, jak mogę zając się od nowa uC. Problem mam następujący: Kawałek kodu: [syntax=cpp] //Prog.c ATmega8 #include <avr/io.h> #include <avr/sfr_defs.h> #include <avr/interrupt.h> #include "config.h" #include "bool.h" #include "LCD.h" #include <util/delay.h> #define F_CPU 8000000UL unsigned int w_ocr1a=OCR1A_DEFAULT; // =400...
[syntax=c]int main(void) { // ustawienie końcówki OC1A (PB1) sprzętowy PWM jako WYJŚCIE DDRB |= (1<<PB1) ; // ustawienia TIMER1 OCR1A = 499; //500 TCCR1A = (1<<COM1A0);//toggle TCCR1B = (1<<WGM12) | (1<<CS10); // tryb CTC + zegar 1MHz while(1); } [/syntax] Nie musisz uruchamiać przerwania bo licznik sam będzie machać nogą z częstotliwością...
Dzięki za informację. Udało mi się zrobić multipleksowanie w ten sposób: Timer 1 w tryb CTC, tryb porównania W main dodałem TCCR1B |= (1 << WGM12); // Ustawia timer1 w tryb CTC OCR1A = 10000; // Ustawia wartość pożądaną na 100Hz dla preskalera 1 TCCR1B |= (1 << CS10); // Ustawia timer z preskalerem Fcpu/1 //TCCR1B |= (1...
Problem dla mnie pojawił się ze zrozumieniem wektorów przerwań które obsługują timer1. W dokumentacji jest tabela na stronie 46 W czym problem? Jak korzystasz z przerwania np. Timer/Counter1 Compare Match A czyli przerwanie w momencie gdy zawartość licznika (TCNT1) zgadza się z tym co wpisałeś do OCR1A to jeśli wcześniej w TIMSK ustawisz odpowiedzialny...
Witam zrobiłem sobie prosty odmierzacz czasu na atmedze8 i wyświetlaczu hd44780 i wszystko jest prawie ok, tylko że jak sekundy są mniejsze niż 10 to wtedy wyświetlać np. 0:58:09 to wyświetla 0:58:90, nie mam pojęcia jak to naprawić, ma ktoś jakiś pomysł? [syntax=cpp] #include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h>...
Siemanko. Uczę się programowania mikroprocków w języku C. Aktualnie jestem na lekcji przerwań i pojawił się dziwny błąd, którego nie potrafię rozgryźć, może bardziej zaawansowani koledzy potrafili by powiedzieć co źle robię bo nie mam już pomysłów. Otóż cały program ma działać tak że diodka jest wyłączona, po naciśnięciu przycisku ma zamrugać kilkukrotnie....
Witam ! Tworzę projekt stacji pogodowej za pomocą ATMEGI16 + LCD 2x16. Tworzę licznik impulsów który zliczałby mi czas pomiędzy zboczami impulsów (prędkość obrotowa wiatru) Znalazłem w sieci program który działa na Atmega8 + 16MHZ kwarc. [url=http://mikrokontrolery.blogspot.com... Chciałbym go przerobić na Atmega16 na...
Witam. Potrzebuję W tym liczniku obrotów: [syntax=c]#include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include "HD44780.h" //tutaj ustaw własne zasady pomiaru #define POMIAR_ILOSC_IMPULSOW_NA_OBROT 4 //ilość inpulsów na jeden obrót #define POMIAR_ILOSC_OBROTOW 10 //ile obrotów ma trwać...
Jeżeli w swoim kodzie , wykorzystujesz tylko procedury przerwania INT0 i TIMER1 i RC5_init() ,to wystarczy obliczyć i zmienić , wartości ładowane do TCNT1H,TCNT1L. Piotrek
Witam, Witam, poprawiłem Ci ten kod - działa ok. Przeczytaj komentarze. o dziwo dioda nie miga coś musisz chyba źle robić, u mnie miga. Co prawda sprawdzałem na AT328P, bo taki akurat miałem pod ręką, ale jeśli chodzi o Timer1 to praktycznie identyczne uC. Pozdrawiam, QuadMan.
.. Czy moje założenia są poprawne? Przerwania nie będą potrzebne jeżeli: a)serwo masz podłączone do wyjścia OC1A i nie korzystasz z przechwytywania - tryb Fast PWM(Mode 14) b)serwo możesz podłączyć do wyjścia OC1B - tryb Fast PWM(Mode 15)
timer1 przerwania atmega8 timer1 timer1 atmega8
sterowniki klawiszy funkcyjnych samsung antena zewnętrzna radia ustawienia atheros ar5007
domofony cyfrowe reason instrukcja
Audi A1 S-Line 2014 – stalowa czy aluminiowa karoseria? Modulator dźwięku Federal Signal, Whelen, Elfir – lokalizacja w karetce, montaż, parametry