Ten programik miał tylko uruchomić zmianę stanu na porcie w przerwaniu. Pętla while u mnie jest nieskończona tak jak to zaobserwowałem w innych programach, jak na razie nic się w niej nie dzieje bo testuje same przerwania. Dziękuje ci za pomoc popołudniu wprowadzę poprawki i sprawdzę czy zadziała. Może masz jakiś przykład działającego programu który...
Witam szanownych użytkowników, ............. Dodam jeszcze moje spostrzeżenie. W dokumentacji mikrokontrolera ATmega32 było, że należy ustawić piny INT0, INT1, INT2 jako wyjścia. Proszę o rady. Prawdopdobnie nie zrozumiałeś DS, albo nie doczytałeś do końca paragrafu. Zdaje się że twoje referencje odnoszą się do fragmentu DS poniżej: " The External...
Przerwanie jest zgłaszane, gdy zostanie odebrany bajt. Wywal przynajmniej jedno z porównań z 13. Przecież jeśli jest równe 13 to nei ma sensu sprawdzać, czy jest różne od 13. Stare przysłowie pszczół, które cytuję to co 3 dni: żadnego oczekiwania w obsłudze przerwania. Wyrzuć Waitms 100 z obsługi przerwania! Nie możesz również nic nadawać w obsłudze...
Ja bym zrobił na timerach, no bo po co zajmować procesor zapętlonym zadaniem. Ideą wielozadaniowości jest taka konstrukcja programu, tak by nie pracował w bezsensownych pętlach, kiedy może tylko sprawdzić czy wystąpiło zdarzenie (event) i przejść do następnego zadania.
A co na to symulacja programu? Taki program wgraj: .nolist .include "m32def.inc" .list ; ## START ########################################... .cseg ;=======================================... ;= WEKTORY PRZERWAŃ = ;=======================================... .org 0x0000 rjmp reset_vector ; po...
Witam, Popełniłeś kilka błędów: - aby odblokować przerwania od przepełnienia timera 1 trzeba ustawić bit 2 a nie 5 w rejsestrze TIMSK - wektor przerwania od przepełniania timera 1 to nie 0x12 a 0x24 Dobrze jest przy pisaniu w C korzystać z funkcji dostarczanych wraz z kompilatorem "intrinsic function" takich jak __interrupt_enable, __interrupt_disable,...
Pin INT w PCF jest typu otwarty dren. Potrzebujesz więc rezystor podciągający.
Ustawienie kierunku wyjścia było tylko przy wyrzucania zbednych linijek usunąłem go ale już dopisałem, moze ktoś sprawdzić czy u niego działa taki prosty kod bo ja już zaczyna podejrzewać procek... . Jeżeli wrzucę LED_TOGGLE; w pętle while to na oscyloskopie widzę przebieg prostokątny więc pozostałe sprawy są OK nie wiem dlaczego nie działa to przewanie...
Przerwanie ADC zbędne i szkodliwe, a w deklaracji k brak atrybutu volatile.
Parę podstaw: - w Twoim przypadku procesor wychodzi z uśpienia poprzez przerwanie z ADC - przerwanie z ADC musisz zadeklarować: [syntax=c]ISR(ADC_vect) { ...jakiś kod }[/syntax]
Jak chcesz koniecznie mieć te zewnetrzne przerwanie do dodaj 7420 zamiast tych diod i będziesz miał przyzwoity sygnał przerwania.
Klawiszy (poza wyjątkowymi sytuacjami typu wybudzanie uC) nie robi się na przerwaniach INT. Delaye w przerwaniu to nieporozumienie. Twoje przerwanie realizuje się tylko po wciśnięciu przycisku, więc trudno by było, aby zwróciło informację o jego zwolnieniu. Zrób przerwanie zegarowe co 25-50ms i cyklicznie sprawdzaj stan klawiatury. Opanujesz w ten sposób...
Ale mieszasz. Ustawiłeś dwa cykliczne przerwania i dziwisz się, że coś nierówno miga. Tu w avr nie ma wielowątkowości sprzętowej i jedno przerwanie przeszkadza drugiemu. Przenieś i wyłącz to przerwanie to co masz w ISR(TIMER2...) do ISR(TIMER1...) . Idea programowego PWM i timerów jest właśnie w tym aby działało wszystko pod jednym wspólnym cyklicznym...
Moim zdaniem masz żłe napisaną obsługe przerwania. Procesor jak wejdzie w przerwanie to w niej wisim i wisi. Mogą być problemy ze stosem. Ja bym to napisał tak ze timerem bym wykonywał akcje a w przerwaniu ustawiał flage wciśniętych klawiszy. Otrzymujesz przerwanie i zapisujesz do zmiennej stan klawiatury. W przerwaniu z Timera sprawdzasz jaki stan...
Tutaj druga instrukcja anuluje pierwszą. Zrób to w jednej instrukcji lub w drugiej użyj operatora |= Poza tym nie ma bitow CS02 i CS00 w rejestrze TCCR1B. Wprawdzie są w rejestrze TCCR0 i mają takie same pozycje, więc kod ma szansę działać, ale jakoś źle się na to patrzy :) To jest zezwolenie na przerwanie od timer overflow. Zezwolenie na przerwanie...
SS musisz wykorzystać, bo tylko stan tego pinu gwarantuje przejście pozostałych linii interfejsu SPI w stan wysokiej impedancji. Przerwanie od SS nie jest potrzebne - niski poziom tego sygnału aktywuje interfejs i powoduje wysłanie SPDR. Po zakończeniu wysyłania bajtu danych możesz otrzymać przerwanie zakończenia transferu SPI w którym to przerwaniu...
A może wykorzystać Timer0 i ustawić odpowiednio rejestr SFIOR? Wtedy przerwanie od Timer0 compare wyzwala ADC. A pojawienie się flagi moźna sprawdzać w pętli głównej albo w przerwaniu od ADC.
kolega ma kompletnie skopane procedury obslugi przerwań, nie wiem czemu nikt dotychczas tobie nie napisał że obsługa przerwania to nie jest miejsce na stosowanie procedury delay(). To także nie jest miejsce na to aby wstawiać tam instrukcje case-select choć to jeszcze od biedy przejdzie. Przerwanie musi byc maksymalnie zwięzłe. Dla wyświetlacza musisz...
[syntax=asm] .device ATmega32 .include "m32def.inc" .def temp= r16 .def counter= r17 .org 0 RJMP start .org $016 ;wektor przerwania dla przepełnienia timera RJMP przerwanie start: ldi temp, high(RAMEND) out SPH, temp ldi temp, (1<<CS00) | (1<<CS02) ;konfiguracja preskalera i zegara out TCCR0, temp ;w rejestrze TCCR0 (ustawienia główne timera)...
Procedurę usunąłeś, a przerwanie odblokowane. Jak zostanie zgłoszone to procesor idzie w maliny. Posprawdzaj dobrze, czy masz jakieś włączone i nie obsługiwane przerwania. No i sprawdź, czy masz stos tam gdzie trzeba - to może być też np. błędne ustawienie typu procesora.
Jeżeli piszesz w C i używasz avr-libc, to przerwania "nieblokujące" (takie które mogą być przerwane przez inne przerwanie (lub nawet same przez siebie, trzeba uważać)) deklaruje się tak (przykład dla INT0): ISR(INT0_vect, ISR_NOBLOCK) { jakiś kod } Dzięki temu sei() zostanie wywołane prędzej, niż zrobiłbyś to wewnątrz procedury sam.
// ================= PROCEDURA OBSŁUGI PRZERWANIA COMPARE MATCH ISR(TIMER0_OVF_vect) Błąd. To jest przerwanie od przepełnienia licznika. Przerwanie od porównania to: TIMER0_COMP_vect . W nagrodę Pomógł od mniej spostrzegawczych użytkowników i moderatorów :) A co do tranzystorów, to oczywiście lepsze by były PNP, ale z NPN też będzie działać (trochę...
I teraz pierwsze pytanie: czy da się zliczać impulsy z zewnątrz używając Timer2? Wtedy bym podpiął do nóżki TOSC. The Oscillator is optimized for use with a 32.768 kHz watch crystal. Applying an external clock to the TOSC1 pin may result in incorrect Timer/Counter2 operation. Jak źle (lub dobrze) jest z tym w praktyce nie wiem. Tylko jeszcze zostaje...
No to trzeba je oprogramować tak, aby nie bruździło... czas obsługi przerwania ok. 1-2 µs (przez wstawkę asemblerową) chyba nie zrobi na transmisji 1Wire większego wrażenia ? Przy 8 MHz mamy do dyspozycji 8 cykli zegarowych w czasie 1 µs, a przy 16MHz - 16 cykli zegarowych. reti zajmuje 4 cykle, cbi / sbi po 2 cykle, ewentualne nop pomiędzy...
Witam, Pierwszy błąd, który wychwyciłem to brak zachowania i odtworzenia rejestru stanu procesora SREG we wszystkich obsługach przerwań. Należy również zadbać o zachowanie używanych rejestrów (R0-R31). Zobacz ci się stanie np. w takim przypadku: CPI R16,10 ; tutaj przychodi przerwanie które zmienia stan SREG (znaczniki Z,C ...) BRNE xxx LDI...
W kodzie jest sporo błędów. Nie do końca jestem pewien, czy rozumiem, o co chodzi, ale jeśli przerwanie INT0 jest od przycisku, to nie ma prawa działać poprawnie, a przyczyna efektu, który obserwujesz, leży w operacjach na zmiennej b. Takie przerwanie po wystąpieniu musiałoby być blokowane przy pomocy timera na jakieś 30 ms, co jest znacznie bardziej...
W zasadzie program działa, ale... to wszystko. Można to zrobić o wiele lepiej. podobno nie powinno stosować się funkcji delay w celu realizacji opóźnienia. Tak. O wiele lepiej jest to zrobić na przerwaniu timera. Poza tym, lepiej jest zadeklarować tablicę z której będziemy wczytywać wartości portów, a w funkcji obsługującej to wszystko tylko przesuwać...
#include<avr/io.h> #include <avr/interrupt.h> #define F_CPU 1000000 int main(void) { TCCR0 = 0x05; //(1 << CS02) | (1 << CS00); prescaler na 1024 TIFR |= (1 << TOV0); TIMSK |= (1 << TOIE0); // aktywne przerwanie overflow // timer_enable_int(_BV(TOIE1)&...
Pierwsze, to nie możesz kuglować włączaniem i wyłączaniem przerwań. Silnik musisz zatrzymywać w inny sposób. z stepCounter zrób tablicę stepCounter[4]; Przerwanie zmodyfikuj mniej więcej tak [syntax=c] ISR(TIMER0_COMP_vect) //funkcja obsługi przerwania { for(char l=0; l<4; x++) { // lepiej for(char l=0; l<LSILNIKOW; x++) // i zrobić #define LSILNIKOW...
Mnie wychodzi, że to nie jest tryb CTC tylko normalny. Po drugie na przerwanie compare trzeba zezwolić w rejestrze TIMSK - bit OCIE0 - masz < zamiast << stąd problem. Jak masz jakieś wątpliwości co do konfiguracji, to użyj symulatora AVR Studio. Można sobie w nim też ustawić tryb pracy i odczytać wartości rejestrów kontrolnych dla niego i potem...
Zadajesz pytania na tak wysokim poziomie abstrakcji, że nie gniewaj się ale na prawdę, jak już ktoś wcześniej wspomniał - na takie problemy to tylko szklana kula i wróżka z certyfikatem państwowym może pomóc. 1. co to znaczy zbyt mała pamięć ? Np w ATtiny2313 w porównaniu do twojego procka ATmega32 to ty masz tej pamięci 2 hektary z hakiem - a jednak...
Ta wstawka asm nie jest prawidłowo napisana, działa tylko dlatego, że kompilator nie wykorzystał jak dotychczas rejestrów R14 i R15. Jeśli program rozrośnie się na tyle, że kompilator będzie wykorzystywał te rejestry to program przestanie działać. Jak wspomniałeś poza eterem, masz możliwość skorzystania z ATmega32 i podpięcia wszystkich sygnałów do...
Kod łatwiej byłoby analizować gdybyś dał komentarze. Bez tego trzeba szukać w nocie jaki preskaler ustawiłeś. Kod nie zadział z każdym serwomechanizmem. Okres powtarzania impulsów ma ok 4ms a powinien być ok 20ms. Na timerze 8 bit będzie jeszcze gorzej. Gdy ustawisz 16ms (więcej się nie da) to rozdzielczość wyniesie 64us. Zakres regulacji to od 512us...
OCR0=0x20; /// podobno mozna zjechac do 0 i otrzymac fck/2 Zjechać może i można, ale chyba tylko do sprzętowego przełączania pinu. bo obsługa przerwania w 1 cyklu jest niemożliwa. void timer0_comp_isr(void) { PORTC ^= BIT(0); } Wrzuć co kompilator wyrzuca do assemblera do kompilacji. W sumie na obsługe jest 32 takty razem...
Ponieważ pokazałeś fragmenty kodu więc może nie do końca prawidłowo go przeanalizuję. Problem polega na tym, że odczytany w przerwaniu pomiar zapisujesz do tablicy w pętli for kilka razy zanim nastąpi ponowne przerwanie z ADC. //pomiar********************************... for(int x=2; x<157; x++) { bufor[x]=adc;...
Na nie możesz policzyć? Chyba że nie wiesz jak :D Masz 8MHz. A przerwanie przychodzi z częstotliwością 125Hz (dlatego trzeba 125 razy odliczyć aby wyszła 1 sekunda). Preskaler Timera 256. 8000000/256/125 = 250. I dlatego jest Load Timer0 = 250 Teraz chcesz kwarca 7372800. Więc musisz tak kombinować aby uzyskać jakąś sensowną liczbę przerwań i sensowny...
for(;;) return 0; Zbytnio poprawna ta pętla nieskończona nie jest: w pierwszej iteracji nastąpi wyjście z funkcji main. Jeśli dobrze pamiętam, to po wyjściu z main następuje automatyczne zablokowanie przerwań oraz wejście do pętli nieskończonej. Żeby nie być gołosłownym, fragment jakiegoś kodu po skompilowaniu: 000000b2 <.do_clear_bss_start>:...
Oj, przejrzałem pobieżnie kod - uwierz mi - skasuj go. W C jest coś takiego jak funkcje - wykorzystaj to, kod, który masz jest kompletnie nieczytelny. Każdy normalny promotor by to coś uwalił chociażby za to. Co do szybkości działania - pokaż kod funkcji odpowiedzialnych za komunikację z czujnikami. Z kodu, który masz: - funkcjie piszące do LCD są zapewne...
Twój problem prawdopodobnie polega na tym, że stosujesz instrukcje: [syntax=c]ISR(ADC_vect) // Obsługa przerwania po zakończeniu konwersji ADC { if(wsk_kan==1) { ... wsk_kan=2; } if(wsk_kan==2) { ... wsk_kan=3; } if(wsk_kan==3) { ... wsk_kan=1; } } [/syntax] Przeanalizuj krok po kroku powyższy uproszczony Twój kod, gdy na początku wsk_kan = 1 i wykona...
Witam Mam problem Wszystko działało na portach PA PC i PD4-7 ale jak podpiąłem cały PD PB do drugiej części matrycy diodowej to przestało działać chyba przez przerwania. Zmieniłem rodzaj przerwania na czasomierz z uwagi ze chyba piny INT0 zmieniały stany. Wszystkie porty mam jako wyjścia a w części matrycy mam błędy zawsze w tym samym miejscu. Jaki...
Kol. Autor pozwoli że doradzę coś ze swojego podwórka bo w swoim czasie borykałem się z wielopoziomowym menu. W moim przypadku zrobiłem to tak(po drodze założenia): załóżmy że menu ma 3 poziomy z czego ten najniższy kończy się wykonaniem konkretnej procedury a dwa poziomy po drodze to nic innego jak prompt-y których działanie sprowadza się kolejnych...
Do tego potrzebne są też timery, pod [url=http://www.avrfreaks.net/index.php?... linkiem masz to wyjaśnione krok po kroku, jak to napisać. I nigdy nic nie może wykonywać się jednocześnie (pomijam wielordzeniowe procesory we współczesnych komputerach ;)), normalnie w AVR kiedy jedno przerwanie jest wykonywane,...
Atmega 32, program obsługujący klawiaturę - 4 przyciski, odczytywane co 20 ms ( co któreś przerwanie timera 1), przyciski podpięte pod PC), PC0,PC1,PC2,PC3. jeżeli w programie wykorzystuję PC0 i PC1 to jest ok , ale jeśli w pętli obsługi przerwania odczytującego klawiaturę sprawdzam stan przycisków PC2 i PC3 to zgłoszenia przerwania są w każdym odczycie...
Qurcze, walczę z softem, gdzie muszę korzystać z komparatora (obsługuje go na przerwaniu) i dwóch przerwań zewnętrznych INT0 i INT1. Niestety coś tu mi nie działa i program się sam resetuje wracając do początku funkcji "main" :cry: int main() { //wlaczenie przerwan zewnetrznych INT0 i INT1 GICR |= (1<<INT0); // INT0 GICR |=...
Witam! Mam mały problem. Od kilku godzin próbuję ustalić przyczynę braku możliwości obsługi przerwania w moim zestawie EVB 5.1 z ATMega 32. Mianowicie, próbowałem wszystkich możliwych opcji uruchomienia przerwania poprzez naciśnięcie przycisku i niestety nie wychodzi. Po naciśnięciu przycisku 3 diody mają zostać wyłączane/włączane zależnie od poprzedniego...
Cześć. Napotkałem ostatnio na pewien problem, mianowicie w momencie gdy wywołuję przerwanie w swoim układzie, to po jego obsłudze główny blok programu nie jest kontynuowany, tylko wszystko zaczyna się od początku (albo resetuje procek). W załączniku schemat urządzenia. Załącznik usunąłem. http://obrazki.elektroda.net/63_12624652... Przerwanie...
Okazało się, że jest kilka wersji ATMEGA32 i akurat włączenie przerwanie licznika TIM0 było w innym miejscu rejestru.
Co tutaj przekombinowałem? Atmega32. Tryb Licznika. Celem było zapalenie i gaszenie diod co sekundę. Preskaler = 256. Przerwanie tak wyliczone aby wykonywało się co sekundę. Timer 16bitowy [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> ISR (TIMER1_OVF_vect) { PORTC ^= ~0xFF; //zmiana stanu portu C...
Witam Chciałbym się dowiedzieć, gdzie jest problem w programie poniżej. [syntax=c] #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include "encoder.h" #define F_CPU 16000000L #define BAUD 57600 #define MYUBRR F_CPU/BAUD/16-1 #define SET_LED PORTD |= (1<<PD7)...
Witam wszystkich, mam problem z przerwaniem od przepelnienia, timer1. Siedze nad ta prosta rzecza któryś dzień z kolei i nie moge sobię poradzić. Prosiłbym o sprawdzenie kodu. [syntax=jezyk_C] #include<avr/io.h> #include <avr/interrupt.h> #define F_CPU 1000000 // czestotliwosc zegara 1MHz #include<util/delay.h> int main() { DDRA =...
Witam. Buduje urządzenie w którym wykorzystałem Atmege32 w obudowie tqfp z wylutu. Problem jest tego typu że po wlutowaniu w urządzenie nie mogę jej zaprogramować. W oryginalnej płytce atmega pracowała z zewnętrznym kwarcem 8Mhz a w układzie docelowym będzie pracować na wewnętrznym rezonatorze. Oczywiście na czas przeprogramowania fuse bitów dolutowałem...
Hmmm... Nie wiem co działa a co nie działa. Wiem, że pierwsze co mi się rzuca w oczy to to, że rejestr UBRRL jest 8 bitowy, zatem wpisanie do niego wartości większej niż 255 nie daje zamierzonego efektu (wpisze się bowiem młodszy bajt).
Witam Potrzebuje pomocy w obsłudze przerwań. Muszę zrobić projekt skrzyżowania na zajęcia z sieci automatyki, i napotkałem problem z przerwaniami. Próbowałem na wiele sposobów coś napisać, ale bez skutku. Potrzebuje jakiś testowy kod, który np: będzie mi zapalać i gasić diodę podpiętą do jakiegoś portu. Oto kod poprany z jakiejś strony, lecz też mi...
Korzystam z atmegi 32. Problem polega na tym że chcę zapisywać wartości do eeprom-u. Zapis robię co przerwanie timera2 od przepełnienia. I za każdym razem jak dochodzi do zapisywania do eeprom-u to mikrokontroler się resetuje. Czytałem coś o fuse bitach coś zmieniłem, ale nie pomogło. Trzeba oddzielnie eeprom i flash programować? Zestaw ewaluacyjny...
Cześć Ten kod mi nie działa.Czy moglibyście rzucić na niego okiem. Ten kod poprostu ma za zadanie nadawać w standardzie space.Ladnie pokazuje adres ale nie działa komenda pokazuje same zera. [syntax=c_mac] //Załączanie plików nagłówkowych #include<avr/io.h> #include<util/delay.h> //Czasy dla nagłówka #define first_header 9460 #define second_header...
Witam, Mam pewien problem i nie bardzo pomysł na jego rozwiązanie. Mam program zegara i czujnikami dallas18b20 i wszystko fajnie działa. Potrzebowałem uruchomić dodatkowo przetwornik adc i zaczęły się schody. Gdy skonfigurowałem przetwornik program po dojściu do momentu inicjalizacji przetworika się wiesza, a dokładniej wygląda, jakby procek się resetował...
Napisałem programik w celu testowania czasu w przerwaniu ADC. #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> int main(void) { sei(); DDRB=255; DDRC=255; ADMUX = _BV(REFS0)|_BV(REFS1); ADCSRA = _BV(ADEN)|_BV(ADIE)|_BV&...
Witam wszystkich! Mój problem polega na tym, że przerwania nie chcą działać. Kod: [syntax=c] #include<avr/io.h> #include <avr/interrupt.h> int main(void) { DDRA = 0xFF; PORTA = 0xFF; DDRD = 0; //ustawiam jako wyjście PORTD = 0xFF; //ustawiam stan wysoki MCUCR |= (1<<ISC01); //przerwanie dla zbocza malejącego GICR |=(1<<INT0);...
Witam, W programie przedstawionym poniżej nie zostaje wywołana obsługa przerwania. Próbowałem na innych timerach tez bez skutku. AvrStudio 6, Atmega8a, optymalizacja O2. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include "utils.h" #include "display.h" int main(void) { LEDInit( ); Display(0); //Init Timer 0 TCNT0 = 6; TCCR0...
Witam, Mój program działa w dwóch trybach: pomiar częstotliwości i pomiar 4 napięć 0-10V. Zmiana trybu odbywa się poprzez przycisk podpięty pod PINC2. W trybie pomiaru napięć stosuje fragment kodu, który porównuje aktualne pomiary z poprzednimi i pomija je jeśli zmiana była zbyt mała, tak aby na wyświetlaczu nie było widać nieustannych zmian. [syntax=c]...
Tutaj znajdziesz przykład komunikacji w dwie strony z wykorzystaniem przerwań: http://mikrokontrolery.blogspot.com/2011...
https://obrazki.elektroda.pl/4204981500_... Witam serdecznie. Chciałbym przedstawić maszynę typu Pick&Place własnej konstrukcji i wykonania. Podstawowym założeniem ww. maszyny była możliwość wykonania 'mechaniki' w tzw. domowych warunkach oraz niski koszt podzespołów. Oczywiście jest to konstrukcja bez sprzężenia w postaci enkoderów,...
http://obrazki.elektroda.pl/4938044000_1... Witam. Przedstawiam Wam, drodzy koledzy koleżanki moje najnowsze dzieło - zestaw do ćwiczeń na sterowniku przemysłowym Siemens Simatic S7-1200. Jest to zestaw najprostszy, składający się tylko ze sterownika, bez panelu operatorskiego i modułów dodatkowych, mimo to pozwalający na przeprowadzenie...
Nie wiem czy odbierasz tam jakieś komendy. Wywal te Wait`y. Tutaj po zmianie stanu do zmiennej Blokada zostanie wpisana wartość do odliczenia w dół. Jeśli nastąpi następne przerwanie to w zależności od tego czy minął już czas blokady, to albo zostanie przedłużony jej czas bo ktoś trzyma przycisk dłużej albo.. :D [syntax=basic4gl]Dim Blokada As Word...
W trakcie obsługi przerwania przychodzi następne i czeka w kolejce. I czekać będzie nie ważne jak bardzo zostanie "przeciągnięte" przerwanie.
Moze chodzilo Ci o PORTD|=(1<<6); lub PORTD&=~(1<<6); ? ;]
Zacznij używać TAB-ulatora w kodzie bo analiza Twojego kodu to katorga. Popraw i załącz ponownie. Mamy się domyślać w których liniach występują warningi? Dla Ciebie Warning = Błąd: : http://mikrokontrolery.blogspot.com/2011...
atmega32 przerwanie atmega32 przycisk przerwanie serialin przerwanie
dodge światła klasa alternator pompa kipra
diagbox lexia świeca płomieniowa
Pękające naczynka w dłoniach - diagnostyka i przyczyny Traktorek Realy RE155107rb 2008 - Słabe kręcenie rozrusznika