atmega volatile funkcja

Znaleziono około 493 wyników dla: atmega volatile funkcja
  • [AVR] Atmega gubi przerwania USART - jak rozwiązać problem z odbiorem danych?

    A może masz gdzieś funkcję obsługi tego przerwania? Dodano po 4 Dodam, że korzystam z programowego bufora cyklicznego, który w przerwaniach odbiera dane od UDR. Jedyne co mi przychodzi na myśl to to, że przerwanie tak szybko się wykona (odebranie danych do bufora i skasowanie flagi RXC), że część programu: while ( !(UCSRA & (1<<RXC)) ); nawet...

    Mikrokontrolery   13 Lip 2011 00:58 Odpowiedzi: 21    Wyświetleń: 5711
  • REKLAMA
  • [Atmega 8] [Atmega 8][GCC][VMLab] - Timer w symulatorze działa za szybko, jak to naprawić?

    OK. Jestem teraz prawie pewien gdzie leży problem. Otóż ten program VMLAB jest kiepskim symulatorem i nie za bardzo łapie operator volatile. Program zawiesza się na pętli while() w funkcji licz(), ignorując zupełnie przerwania. Jest to moim zdaniem wina tego symulatora. Układ fizyczny powinien działać. W wolnej chwili odpalę na symulatorze AS6. Edit:...

    Mikrokontrolery AVR   19 Sty 2014 09:10 Odpowiedzi: 14    Wyświetleń: 2010
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • [Atmega168][C] Odliczanie dokładnie jednej sekundy

    Najprościej to chyba tak: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define TIMERSTART 6 volatile uint8_t FLAGA_50 = 0; volatile uint8_t FLAGA_1000 = 0; // funkcja obslugi przerwania TIMER0_OVF 8MHz / 64 * 250 wychodzi co 2ms // dla innego taktowania nalezy ustawic inny preskaler i/lub inne liczniki stawiania flag ISR(TIMER0_OVF_vect)...

    Mikrokontrolery AVR   16 Maj 2012 10:20 Odpowiedzi: 2    Wyświetleń: 1345
  • REKLAMA
  • Programowanie mikrokontrolera Atmega 328P dla wielokanałowego termometru C.O.

    Dzieje się tak, ponieważ po wyjściu z ostatniej pętli czyścisz ekran, zmieniasz wartość zmiennej "a" i kończysz program - wracasz z funkcji main(). Zapomniałeś dodać pętlę nieskończoną, while(1). Rozpoczyna się ją za wstępną inicjalizacją. W twoim przypadku, będzie to za ekranem powitalnym. Skoro zaczynasz przygodę z programowaniem, to napiszę jeszcze...

    Programowanie Początkujący   18 Sie 2021 21:27 Odpowiedzi: 9    Wyświetleń: 603
  • [C] [C][Atmega128] - Jak wysyłać SMS co 2 minuty przez UART?

    Funkcja czekająca na odpowiedz powinna być odporna na brak jakiekolwiek odpowiedzi. W przypadku braku odpowiedzi z modemu Twój kod się "zapetli". Jak wygląda kod usr0_getc()? Nie widzę związku między ISR a tą funkcją. Zakładam również, ze flagi (flagGotLine i pozostałe) zadeklarowales jako volatile. Postaraj się zaimplementować pkt. 4 z mojej poprzedniej...

    Mikrokontrolery AVR   05 Sie 2012 15:57 Odpowiedzi: 9    Wyświetleń: 2605
  • Dekodowanie sygnału DCF77 na ATmega - synchronizacja czasu bez GPS

    U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...

    Mikrokontrolery AVR   09 Mar 2023 17:01 Odpowiedzi: 27    Wyświetleń: 10104
  • Atmega128: Jak mierzyć częstotliwość impulsów na T1 i wyświetlać na LCD?

    ...przy 10000HZ na LCD wyświetla 0666... No to prawie jak liczba szatana :) if(licznik==4) { T1=TCNT1; utoa( T1, bufor1, 10 ); lcd_gotoxy(3,0); lcd_puts(bufor1); TCNT1=0; } Widzę, że dodałeś pozycjonowanie kursora, żeby wynik za każdym razem był wyświetlany w tym samym miejscu wyświetlacza. Trzeba by jeszcze...

    Mikrokontrolery AVR   07 Lip 2010 16:54 Odpowiedzi: 16    Wyświetleń: 3265
  • REKLAMA
  • [Atmega328p] [C] lcd[RC1602B5-LLH-JWV]wyświetla tylko kwadraty pomocy potrzebuje.

    #include <util/delay.h> #include <avr/io.h> void TWI_start(void); void TWI_repeated_start(void); void TWI_init_master(void); void TWI_write_address(unsigned char); void TWI_read_address(unsigned char); void TWI_write_data(uint8_t); void TWI_read_data(void); void TWI_stop(void);...

    Mikrokontrolery AVR   31 Gru 2024 19:17 Odpowiedzi: 22    Wyświetleń: 849
  • Wstawka asemblerowa do języka c [atmega2560][C+asm]

    Dzień dobry, witam wszystkich. Mam problem z wstawką asemblerową do języka C. Programuję procesor atmega2560. Nie rozumiem dlaczego nie działa funkcja "asm volatile ("mov r21,MCUSR");". Chcę dzięki niej przenieść wartość rejestru mcusr do rejestru r21. Lista błędów w załączniku. Wiem, że one wprost mogą nie wskazywać na to, że ich źródłem jest ta linijka...

    Mikrokontrolery AVR   17 Lut 2022 17:07 Odpowiedzi: 7    Wyświetleń: 540
  • Atmega 32 - kiedy stosować specyfikator volatile w kodzie C?

    Cześć Załóżmy że mam pewną funkcje w której zwiększam zmienną a o jeden. W funkcji main wywołuje funkcje i wynik przypisuje do zmiennej b. Załóżmy też że mam przerwanie które też zwiększa a o jeden. W celu optymalizacji operacje na zmiennej a będą wykonywane w wolnym rejestrze i przy wyjściu z funkcji wynik rejestru zapiszemy do zmiennej załóżmy że...

    Programowanie Początkujący   20 Kwi 2015 12:29 Odpowiedzi: 7    Wyświetleń: 1098
  • [ATmega32][C/LabView] - Obsługa dwukierunkowa RS232

    O coś takiego mi chodziło. Teraz jest wywoływane przerwanie i procesor tylko je wykonuje ustawia flagę i ucieka do obsługi całego kodu. rxFlag i txFlag - musi być tylu volatile (int/char itp.) by była możliwość zmieniania ich wartości w przerwaniu. Masz tak ?? Sprawdzałeś w symulatorze jak program skacze po funkcjach ?? Zrób tak. skopiuj to wszystko...

    Mikrokontrolery Początkujący   12 Wrz 2012 18:36 Odpowiedzi: 53    Wyświetleń: 8448
  • [ATmega16][C/AVRStudio] Układ nadążny za słońcem+LCD+MENU

    A co ma wielopoziomowe menu do przerwań? Pewnie że zrobisz bez nich zobacz u mnie jak jest zrobione też z wyborem funkcji i zmaną parametrów a bez przerwań i na impulsatorze. Co do zmiennych globalnych to raczej nie wskazane jest ich stosowanie. To coś jak z goto czasem ciężko wykryć błąd nawet jak ją zadeklarujesz jako volatile. Lepiej rób to normalnie...

    Mikrokontrolery AVR   10 Lis 2010 22:21 Odpowiedzi: 104    Wyświetleń: 14544
  • REKLAMA
  • Atmega88PA i RS485 - błędy w komunikacji przy echosondzie

    (at)szelus Oczywiście DE i RE są połączone razem (zworka). Inaczej nie miałbym transmisji zwrotnej albo trzeba by podłączyć do dwóch różnych pinów ATMEGI. Zwłoki po przełączeniu się z nadawania na odbiór (20ms) i odwrotnie wydają się być i tak przydługie - jakby były przeznaczone dla starej elektroniki analogowej... ;-) Testowałem też różne odstępy...

    Mikrokontrolery   15 Lip 2010 16:09 Odpowiedzi: 31    Wyświetleń: 6663
  • [AtMega16] [AtMega16][C] - Implementacja multitaskingu dla odczytu ds18b20 i sterowania GPIO

    Powrócę jeszcze do tematu. Timery programowe to objaśnił Mirekk36 w swojej książce oraz artykułach i wideo poradnikach, bardzo dobrze je się stosuje. Jest to proste, wystarczy ustawić jakiś timer w tryb CTC i wywoływać przerwanie co jakiś zamierzony czas (stosuje około 10ms). F_CPU/Prescaler/100 Zaokrągloną wartość wpisujemy do rejestru OCRx. W przerwaniu...

    Mikrokontrolery AVR   13 Kwi 2013 20:38 Odpowiedzi: 24    Wyświetleń: 2646
  • C - Arduino Atmega2560 pomiar czasu między impulsami w C

    Nie mam jak określić dokladnie częstotliwości, ale mniej więcej z przełożenia czujnika w skrzyni myślę że od 0 do 4000 impulsów na sekundę ( tak orientacyjnie), szerokość impulsu to 1/16 obrotu czujnika. Znalazlem dziś jedyny projekt, z którego mógłbym wziąć podstawę, ponieważ jest to obrotomierz czyli też zliczanie impulsów i podobno działa na takiej...

    Arduino   25 Lip 2013 09:47 Odpowiedzi: 3    Wyświetleń: 4758
  • Napisanie biblioteki dla modułu nrf24 przy użyciu atmega328P: Odczyt wartości z rejestru

    Może i działa, ale parę bzdur masz w tym kodzie. volatile w deklaracji argumentu funkcji jest bez sensu. Nikt tego argumentu nie ma szans zmienić. ATmega pracuje z zegarem max. 20 MHz, czyli okres 50 ns. Co ma niby robić ten delay ze ZMIENNOPOZYCYJNYM argumentem? Wykonanie jednej instrukcji przez ATmegę zajmie więcej czasu niż ma wynosić to opóźnienie....

    Mikrokontrolery AVR   03 Gru 2020 09:49 Odpowiedzi: 11    Wyświetleń: 660
  • Brak stabilnych wskazań po konwersji A/D w ATMega 8

    U mnie ta funkcja tyle że na unsigned long działa dobrze. Kompilowana pod IAR na MSP430. Dlaczego zmienna temp jest typu volatile? to chyba trochę bez sensu.

    Mikrokontrolery   19 Wrz 2008 00:56 Odpowiedzi: 22    Wyświetleń: 2868
  • Atmega8: Zmienna volatile i przerwania - problem z opóźnieniem w pętli while

    Powód jest bardzo prosty: zmniejszenie zmiennej w pamięci nie jest operacją atomową. Co prawda za każdym razem następuje odczytanie zmiennej, zmniejszenie jej a następnie zapis, to jeśli przerwanie wystąpi pomiędzy odczytem a zapisem, to utracisz zmianę dokonaną w przerwaniu. W przypadku gdy przerwanie i funkcja main konkurują o jeden zasób, musisz...

    Mikrokontrolery AVR   25 Kwi 2010 12:42 Odpowiedzi: 2    Wyświetleń: 1353
  • Całkowanie sygnału sinusoidalnego na Atmega 128 metodą prostokątów - ADC i LCD

    Witam ponownie mam pytanie do kolegów a mianowicie nie działa mi funkcja dekodująca liczbę na kod BCD Mam funkcje void DZIES_BCD(int a) { volatile signed char i; volatile char buffer[6]; for(i=0,buffer[5]=0; a; a/=10,i++) { buffer[i]= a%10 + '0'; pozycja=i; } for(; i<=6; i++) { buffer[i] = ' '; } i teraz jak wywołam funkcje i za "a" podam liczbę...

    Mikrokontrolery AVR   31 Sty 2011 09:34 Odpowiedzi: 43    Wyświetleń: 5861
  • [ATMEGA32U4] [ATMEGA32U4][C] Sterowanie diodami: Pompka1, Pompka2, Napowietrzacz - błędy w kodzie

    Mam problem z przełączaniem bitów Założenia programu są następujące Program przez określony czas ma włączyć 2 diody oznaczone Pompka1 i Pompka2 oraz wyłączyć Napowietrzacz po upływie czasu ma przełączyć tz: wyłączyć Pompka1 i Pompka2 oraz włączyć Napowietrzacz po upływie drugiego czasu znowu ma przełączyć. Niestety program nie działa dobrze Diody działają...

    Mikrokontrolery AVR   09 Lip 2010 17:37 Odpowiedzi: 6    Wyświetleń: 1535
  • Jak zintegrować ADC z TIMER2 w ATmega32 do próbkowania 8kHz w AVR Studio 4?

    Ale ty nigdzi emasz nie czekać na koniec konwersji, ani w przerwaniu (zgroza), ani poza nim. W przerwaniu zapisujesz do B wynik z ADC i startujesz kolejny pomiar. W kolejnym przerwnaiu znowu odczytujesz ADC i startujesz kolejny. Jeśli odstęp pomiędzy przerwaniami jest dłuższy niż czas konwersji to masz gwarancję, że ADC będzie gotowy i na nic czekać...

    Mikrokontrolery AVR   13 Lis 2011 15:02 Odpowiedzi: 21    Wyświetleń: 3387
  • Atmega, zapis liczby 16bit procesor 8bit i przerwanie - konflikt

    1. idealnie to analizujesz, dokładnie tak zapis 16bit może być podzielony przez przerwanie 2. leczy się to przez rzeczywiście wyłączenie przerwań ORAZ jako baza zadeklarowanie zmiennej jako volatile (wielu wierzy tylko magiczna moc volatile - błąd). Przywrócenie przerwań jest IMHO ładniejsze, jak ma charakter "push stan przerwań / disable / algorytm...

    Mikrokontrolery AVR   24 Paź 2017 14:40 Odpowiedzi: 1    Wyświetleń: 801
  • Za duży rozmiar programu w Atmega 8 pisanego w języku C

    Nie wydaje mi sie aby byla taka koniecznosc.Ja sam jesli nie potrzebuje wiekszej rozdzielczosci uzywam do indeksowania unsigneg char coby zaoszczedzic na stosie.Byc moze znalazles jakiegos bug-a.Jedyne co mi przychodzi do glowy to porobic te zmienne typu volatile bo byc moze optymalizator sie wlacza do gry.Przeslij mi calego lss-a i podaj mi funkcje...

    Mikrokontrolery   09 Lip 2005 01:28 Odpowiedzi: 30    Wyświetleń: 4190
  • Atmega2560 - zmienna i4 nie inkrementuje się cyklicznie, UART wysyła tylko raz

    ... Funkcja uart_putc działa z buforem cyklicznym. Takie coś: W/w testy a końcowa aplikacja to zupełnie inny poziom złożoności, że chodzi w przychylnych warunkach a we współbieżności nawala ,,, bosch to wiele rzeczy może się dziać. Tu null-terminated, tam nie, tam czas a tu nie itd... Twoje zeznania - bo na nich się opieram - silnie się kojarzą właśnie...

    Mikrokontrolery AVR   25 Lip 2017 09:11 Odpowiedzi: 15    Wyświetleń: 1422
  • [atmega8][c] funkcja oczekiwania na naciśnięcie przycisków

    teraz masz: while((PIND&(1<<0)) && (PIND&(1<<1))) zwroc jednak uwage na to, ze DOKLADNIE to samo osiagniesz piszac: while(!( (~PIND) & ((1<<0) | (1<<1)) )) poniewasz wszystkie porty (wszystkie rejestry peryferyjne) zadeklarowane sa jako volatile, to w twoim kodzie MUSZA byc dwa odczyty, 2x AND, polaczenie...

    Mikrokontrolery AVR   11 Lut 2009 23:17 Odpowiedzi: 27    Wyświetleń: 2120
  • Błędy kompilacji w funkcjach lcd_write i lcd_write_nibble dla Atmega16

    witam. Pisze program do obsługi wyświetlacza LCD podłączonego do atmega16. Korzytsam z ksiażki A. Witkowski - Mikrokontrolery AVR - programowanie w j ęzyku C. przykłady zastosowań. i mam problem z plikiem który zawiera dwie funkcje lcd_write i lcd_write_nibble. wiem ze w tej książce są błędy i właśnie przy kompilowaniu wyskoakują mi dwa błędy "../lcd_write.c:62:...

    Mikrokontrolery AVR   04 Lut 2010 18:21 Odpowiedzi: 1    Wyświetleń: 860
  • [Atmega8] Jak zmierzyć czas stanu wejścia z dokładnością 100ms na Atmega8 w C?

    Jak ustawiasz wartości początkowe jak np. wyjścia portu w rejestrze DDR to nie musisz robić |=, wystarczy =. Dobry zwyczaj to także robienie tabulacji (Tab) w funkcjach, czyli: [syntax=c]if(...) { for(...;...;...) { ... } }[/syntax] Jest kod bardziej czytelny, ale to takie spostrzeżenia :wink: A Twój problem to wpisanie przerwania do głównej funkcji...

    Mikrokontrolery AVR   06 Sie 2011 18:22 Odpowiedzi: 53    Wyświetleń: 7537
  • Przepisanie programu z Atmega8 na Atmega328P z wykorzystaniem USART

    Witam, próbuję przepisać program z Atmega8 na Atmega328P, z powodu małej pamięci Atmegi8, w programie wykorzystuje komunikacje USART. Program dla atmegi8: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #ifndef F_CPU #define F_CPU 1000000 #endif //set desired baud rate #define BAUDRATE 9600 //calculate...

    Mikrokontrolery AVR   23 Wrz 2015 15:23 Odpowiedzi: 2    Wyświetleń: 981
  • ATmega32 - Licznik impulsów Timer0 i Timer1 ustawienie

    Witam, mam problem z uruchomieniem programu do zliczania impulsów na T1 przez 1 sekundę. Wyświetla mi ciągle zero. Co źle ustawiłem z Timerami ?? Atmega 32 [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <hd44780.h> volatile unsigned char licznik = 0; //liczba...

    Mikrokontrolery Początkujący   29 Mar 2013 22:18 Odpowiedzi: 15    Wyświetleń: 5724
  • Atmega8 i avr-gcc: brak obsługi przerwań zewnętrznych w AVRStudio 4

    Na pewno nie. :wink: ... jeśli używasz jednej zmiennej w naróżniejszych funkcjach to NIGDY podkreślam NIGDY nie trzeba specyfikatora VOLATILE. Trzeba trzeba. Jeśli prowadzisz dwa wątki równolegle czyli w multitaskingu. ;) jeszcze raz ci powiem - jeśli w tym multitaskingu (bo nie wiem co masz na myśli gdyż na procesorach 8-bitowych takich jak AVR nie...

    Mikrokontrolery   30 Wrz 2012 17:31 Odpowiedzi: 19    Wyświetleń: 3300
  • ATMEGA 8 + LCD - Zawieszanie programu przy użyciu sei() i przerwań

    Chyba trochę mały ten bufor na napis, w dodatku na stosie (pozostałe bufory tak samo). Zajeżdżasz sobie stos, więc nie dziw się, że się "cuda" dzieją.

    Mikrokontrolery AVR   25 Maj 2013 12:53 Odpowiedzi: 6    Wyświetleń: 1989
  • [ATMEGA32] Jak napisać początek programu na ATMEGA32 z funkcjami i obsługą LCD?

    No niekoniecznie wyjaśniłeś to o co pytałem ale powtórzyłeś to co pisałeś wyżej :) Czyli skoro funkcja 2 i 3 muszą być wykonywane z określoną częstotliwością to funkcja 1 i 4 raczej też skoro się uzupełniają nawzajem. To teraz, o ile Cię dobrze zrozumiałem postaram się pomóc. Nie wiem jakie masz wymagania, czyli z jaką częstotliwością te funkcje się...

    Mikrokontrolery AVR   14 Wrz 2011 12:44 Odpowiedzi: 18    Wyświetleń: 1675
  • AVR - ATMega644PA: Przerwanie UART nie przerywa pętli w funkcji

    Mam problem z odpowiednim obsłużeniem przerwania UARTa w ATMega644PA. Główny program wywołuje pewną funkcję, która robi jakieś operacje w pętli (załóżmy kilkadziesiąt razy). W przerwaniu UARTA: [syntax=c]static volatile bool FLAGA; ISR (UART0_RECEIVE_INTERRUPT) { /* .... */ //sprawdzenie czy został przesłany znak o kodzie ASCII = 3 if(UDR0 == 3) FLAGA...

    Mikrokontrolery   07 Gru 2015 21:45 Odpowiedzi: 11    Wyświetleń: 1020
  • [ATmega] [ATmega][C] Zmienna globalna zwraca 0 przy wywołaniu funkcji w main()

    Witam , otóż mam ostatnimi czasy dziwny problem z wywoływaniem funkcji , dołączanych plików źródłowych . Otóż przedstawię może problem w ten sposób : istnieje zmienna globalna używana w pliku xxx.C , zdefiniowana w tym pliku , której używają do obliczeń funkcje z pliku xxx.C . Dopóki wszystko się dzieje w obrębie pliku to jest o.k ( w sensie np , funkcja...

    Mikrokontrolery AVR   28 Lip 2009 14:05 Odpowiedzi: 8    Wyświetleń: 1491
  • [ATMEGA 128] ATMEGA 128: Jak wysłać unsigned int po RS232 w C? Funkcja itoa i radix

    Potrzebuję wysyłać po RS232 wartości : volatile unsigned int narastanie,opadanie,które są tymczasowymi wartościami rejestru ICR1. Są to czasy pojawienia się odpowiednio zbocza narastającego i opadającego w trybie input capture,ktory próbuję od jakiegoś czasu uruchomić,ale beż efektów.W tym trybie chcę mierzyć czas trwania impulsów,jakie pojawiają się...

    Mikrokontrolery AVR   26 Lis 2008 18:21 Odpowiedzi: 4    Wyświetleń: 2674
  • Atmega644pa - Timer1 nie odmierza równo 1 sekundy w trybie CTC

    Racja Fredy, poza warunkiem nie powinno być flagi. Ustawienie volatile nie pomogło. Zamieszczam cały poprawiony kod: http://obrazki.elektroda.pl/6991735000_1... Brak mi pomysłów. Na terminal raczej bym nie stawiał. Funkcja printf jest standardowa i nie używa delay_ms. Teraz wygląda na to że timer nie dochodzi do 1 sekundy :( mumin_80

    Mikrokontrolery AVR   18 Wrz 2013 14:49 Odpowiedzi: 15    Wyświetleń: 2949
  • Atmega 32 - PWM 8bit na 8MHz - problem z kodem, nie działa poprawnie

    Cześć Mam taki kod ale niewiem w czym lezy problem czy możecie mi pomóc [syntax=c] //Dołączenie plików bibliotecznych #include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> //Deklaracja funkcji void initialization(void); //Powołanie zmiennych globalnych wykorzystywanych w przerwaniu volatile uint8_t licznik_1; volatile...

    Mikrokontrolery AVR   16 Maj 2015 13:13 Odpowiedzi: 10    Wyświetleń: 936
  • ATmega128 wew1MHz WINAVR [C] + lcd PG12864 złe wyświetlanie

    Witam ! Tracąc dziesiątki godzin szukania w Internecie i dwa tygodnie prób i błędów z w/w LCD proszę o pomoc (i pokazanie błędu) Dołączam kod w http://obrazki.elektroda.pl/7865128700_1... [syntax=c][/syntax] // --------- sterownik LCD -> chyba NT7108/NT7107 (podobny do KS0108 ) --------------- // ATmega 128 + POWERTIP -> LCD PG12864...

    Mikrokontrolery Początkujący   21 Lut 2015 16:44 Odpowiedzi: 5    Wyświetleń: 996
  • [ATmega328p + ADXL345, C] - Pomiar pochylenia, niepełny zakres

    Witam, stworzyłem projekt pomiaru pochylenia z wykorzystaniem akcelerometru ADXL345, ATmegi328p, wyświetlacz LCD. Co do schematu: Zasilanie atmegi filtrowane, akcelerometr podpięty do zasilania 3,3V(stabilizator LF33CV) zasilanie również filtrowane. ADXL (VCC i CS do 3,3V, SDA i SCL podłączone do rezystorów podciągających (7,5k), oraz do ATmegi PC4(SDA),...

    Mikrokontrolery Początkujący   15 Wrz 2016 18:58 Odpowiedzi: 2    Wyświetleń: 1200
  • [atmega328p][C] odczyt danych z uart z przerwania w pętli głównej

    Witam, Mam potencjalnie banalny problem z odczytem stringa z przerwania UART w pętli głównej programu. Kiedy przesyłam przez UART ciąg znaków są one odbierane, jednak przy próbie wyświetlenia ich na wyświetlaczu którego obsługa znajduje się w pętli głównej programu zamiast przesłanego stringu widzę losowe śmieci z pamięci (np. fragmenty danych poprzednio...

    Mikrokontrolery AVR   16 Wrz 2019 19:59 Odpowiedzi: 5    Wyświetleń: 720
  • Poprawa kodu dla 5-bajtowej ramki USART na ATMEGA8L - CRC i odbiór danych

    Witam! Mam prośbę o pomoc w poprawieniu kodu. Otóż mam zadeklarowane globalnie następujące zmienne: [syntax=c] volatile uint8_t x; volatile uint8_t recaive_complete; volatile uint8_t block_recaiver; volatile unsigned char bufferin[5]; [/syntax] W programie głównym mam 2 funkcje w pętli while. [syntax=c] while(1) { ReadKeypad(); ComRdFrame(); }[/syntax]...

    Mikrokontrolery AVR   11 Paź 2012 18:07 Odpowiedzi: 5    Wyświetleń: 1087
  • Funkcja w C do migania diodą LED na Atmega 8L z pinami PB5 i PB6

    Jak ma wyglądać funkcja która będzie włączać pewien proces migania diody led poprzez zetkniecie dwóch określonych pinów (np.PB5 i PB6) Chcę dodać że posiadam procesor Atmega 8L i program WinAVR. Funkcja migania diody LED wygląda tak: #include <avr/io.h> /***************************************... Definicje stałych ****************************************...

    Mikrokontrolery   19 Kwi 2005 18:57 Odpowiedzi: 1    Wyświetleń: 1101
  • Zliczanie impulsów w przerwaniach - Arduino, błędne wartości impulsów

    Kłania się pojęcie funkcji w języku C. setup() i loop() to też są funkcje. Do testowania stanu styków potrzeba tylko jednego przerwania timera, nic więcej. Po co mnożyć przerwania, czy to od zmiany stanu linii, czy to od dodatkowych timerów? Przy jednopoziomowym systemie przerwań, takim, jaki ma ATmega, o ile programista nie udziwnia nic na siłę, zmienna...

    Arduino   22 Paź 2017 20:28 Odpowiedzi: 21    Wyświetleń: 2709
  • ATmega reset i utrata EEPROM silne zakłócenia EMI

    Witam ponownie, próbowałem ogarnąć na początek funkcję eeprom_write_block. Oto fragment kodu: [syntax=c] typedef struct { // tu są chary, inty, tablice } TEngine; // zmienna w RAM volatile TEngine Engine; // Kopia będzie w EEPROM TEngine EEMEM eeEngine; // i gdzieś w kodzie dalej eeprom_write_block( &Engine, &eeEngine, sizeof(Engine) ); [/syntax] Przy...

    Mikrokontrolery AVR   08 Sty 2020 21:50 Odpowiedzi: 7    Wyświetleń: 996
  • Dlaczego przycisk na ATMEGA 16 nie zmienia stanu diody? Język C

    Podlaczone: PA0 z przyciskiem z jednej strony PA1 z przyciskiem z drugiej strony Dlaczego tak dziwnie? void poczekaj(int ms) { volatile long unsigned int i; for(i=0;i<(ms*(F_CPU)... } Proponuję #include <util/delay.h> i zapoznanie się z funkcjami tam dostępnymi. if (bit_is_clear(PINA,PA0))...

    Mikrokontrolery AVR   08 Paź 2008 20:57 Odpowiedzi: 3    Wyświetleń: 1229
  • atmega8535 - ADC w trybie ciągłym, przerwania działają tylko raz po starcie

    No i znowu natknąłem się na jakiś dziwaczny problem. No i niestety zmienna dane nie zmienia swojej wartości podczas zmian napięcia na wejściu przetwornika ADC. Pokaż cały program, a w szczególności jak definiujesz zmienną dana . Użyłeś magicznego słowa volatile ?: http://mikrokontrolery.blogspot.com/2011... Funkcja wykonuje...

    Mikrokontrolery AVR   07 Lis 2013 14:52 Odpowiedzi: 8    Wyświetleń: 1623
  • RS-485 na Atmega328P - błędne ustawianie stanu pinu w kodzie C

    Witak wszystkich. Mam dziwny problem. Piszę obsługę RS-485 na Atmega328P. Testowo program jest bardzo prosty: #include "MPCM_Port_D.h" #include "USART.h" #include <util/delay.h> #ifndef F_CPU #define F_CPU 16000000UL #endif #include <avr/io.h> int main(void) { char a[]="abcde"; uart_master_init();...

    Mikrokontrolery AVR   31 Paź 2017 22:29 Odpowiedzi: 17    Wyświetleń: 864
  • ATMega 32 nie wykrywa szybkiego impulsu z czujnika szczelinowego przy 120m/s

    To jest na avr tak dla pewności. Korzystam z biblioteki do HD44780 Radosława Kwiecienia. W funkcji [syntax=c] void LCD_WriteText(char * text) { while(*text) LCD_WriteData(*text++); }[/syntax] Potrzebuje dać char* i nie wiem jak do tego przekonwertować w najprostszy i najszybszy sposób. Jeszcze raz przypomne, chce by zmienna [syntax=c]volatile uint8_t[/syntax]...

    Mikrokontrolery AVR   07 Paź 2017 14:55 Odpowiedzi: 32    Wyświetleń: 3708
  • [AtMega644] AtMega644 GCC - Konfiguracja przerwań PWM i INT0, reset układu

    oprócz zmiennej temp reszta czyli aż int0_flag jest volatile większa cześć kodu jest z słynnej ostatnio książki na forum. jeszcze nie zdążyłem za dużo pozmieniać [syntax=cpp] /* * main.c * * Created on: 2012-02-14 * Author: Jacek */ #include <avr/io.h> #include <stdlib.h> #include <avr/pgmspace.h> #include <avr/interrupt.h> #include...

    Mikrokontrolery AVR   15 Lut 2012 21:12 Odpowiedzi: 9    Wyświetleń: 1915
  • [ATMEGA328p-pu] - Nieprawidłowy pomiar ADC w programie BLDC_mega328p

    Dobra. Kod prezentuje się następująco: to jest program w którym wszystko działa jak potrzeba: [syntax=cpp]//Data utworzenie: 20-09-2014 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <avr/pgmspace.h> #include "MYUART/myuart.h" #include "MK_TERMINAL/mk_term.h" #define REF_256 (1<<REFS1)|(1<<REFS0)...

    Mikrokontrolery AVR   23 Lis 2014 17:44 Odpowiedzi: 17    Wyświetleń: 1995
  • Atmega 32 8MHz - kod do obsługi wyświetlacza LED nie działa, prośba o sprawdzenie

    Cześć Coś mi kod do obsługi wyświetlacza LED niedziała. Czy moglibyście rzucić na to okiem. [syntax=c] #ifndef DISPLAY_LED_H_ #define DISPLAY_LED_H_ //Załączenie plików bibliotecznych #include<avr/io.h> #include<avr/pgmspace.h> #include<avr/interrupt.h> //Deklaracja zmiennych na których wykonywane są operacje w przerwaniu extern volatile...

    Mikrokontrolery AVR   10 Maj 2015 11:43 Odpowiedzi: 5    Wyświetleń: 822
  • Atmega8 - Atmega8 + AVR Studio => program w C błędnie działa (zmienne glogaln

    Bo zapomniałeś o volatile. Dodano po 1 BTW, nie pokrywaj wektora BADISR_vect, szczególnie w taki sposób, że funkcja nic nie robi. Jak będziesz miał błąd w programie polegajacy na odblokowaniu przerwań do których nie masz handlerów to tego nigdy nie wykryjesz.

    Mikrokontrolery AVR   05 Lis 2012 23:17 Odpowiedzi: 4    Wyświetleń: 2274
  • Błędne wyświetlanie sekund na LCD w projekcie zegara cyfrowego z Atmega8A

    W pierwszej kolejności zadeklaruj zmienne seconds , minutes oraz hours jako volatile . Modyfikujesz ich wartość w przerwaniu i odczytujesz w programie głównym (w tym czasie może wystąpić przerwanie). secondsBuffer , minutesBuffer oraz hoursBuffer musi być co najmniej 3. Funkcja itoa() dodaje znak końca łańcucha tekstowego.

    Mikrokontrolery Początkujący   29 Gru 2020 23:08 Odpowiedzi: 4    Wyświetleń: 444
  • [ATmega 644p][C] Analizator - problem z przerwaniem

    gaskoin - bzdura, poczytaj co robi volatile, bo już drugi raz wprowadzasz kogoś w błąd. Fir3man - najpierw kosmetyka - funkcja main jeśli nie masz OS, nie może się kończyć, stąd return 0 jest bez sensu. Poczytaj o atrybucie os_main. Ogólnie cały twój program jest do przeróbki. W procedurze obsługi ADC powinieneś odczytywać tylko wartość konwersji, wyświetlanie,...

    Mikrokontrolery AVR   01 Wrz 2010 14:56 Odpowiedzi: 14    Wyświetleń: 3452
  • [Atmega 2560] Atmega 2560: Skoki w debugowaniu AVR Studio, pomijanie instrukcji w pętli for

    SIGNAL(SIG_OVERFLOW0){ straznik = 0; cli(); } #1 Skoro 'straznik' przyjmuje tylko wartości 0 lub 1, to po co 16-bitowy typ 'int'. Wystarczy w zupełności 'uint8_t'. Ta sama uwaga dotyczy również zmiennych 'i' oraz 'j' w pętli 'for'. #2 Jeżeli używasz zmiennej 'straznik' zarówno wewnątrz procedury obsługi przerwania i w programie...

    Mikrokontrolery AVR   05 Gru 2010 22:49 Odpowiedzi: 7    Wyświetleń: 1404
  • ATmega 32 - UART na 9600 i na 8 bitach danych i 1 stopu nie działa

    Tak jak w temacie coś mi kod nie działa proszę o pomoc gdzie leży błąd Ps wyświetla A ale B to nie wyświetla korzystam z 8Mhz [syntax=objc] #ifndef UART_H_ #define UART_H_ //Załączenie bibliotek systemowych #include<avr/io.h> #include<avr/interrupt.h> #include<util/delay.h> //Zadeklarowanie używania lub nie RS485 #define RS_485 0 #if...

    Mikrokontrolery Początkujący   08 Cze 2015 17:59 Odpowiedzi: 3    Wyświetleń: 846
  • [Atmega128] Jak ustawić PWM na Atmega128 do sterowania 3 silnikami?

    Ustawiasz bit TOIE1 w rejestrze TIMSK, żeby włączyć przerwania przepełnienia, deklarujesz funkcję obsługi przerwania w sposób: volatile uint16_t pwm; //zmienna globalna do wartości pwm SIGNAL(TIMER2_OVF_vect) //funkcja wykona się po przepełnieniu timera 1. { OCR1A = pwm; } W swoim programie wpisujesz do zmiennej globalnej pwm wartość...

    Mikrokontrolery AVR   16 Lut 2011 11:50 Odpowiedzi: 11    Wyświetleń: 5094
  • Atmega/Arduino - różne czasy iteracji pętli, dlaczego?

    dokladnie jak to rozwinal przedmowca, gdzies masz bledy w kodzie. Kod zamieszczony w poście 3 jest poprawny. Oprócz generowania przerwań co 1 ms, jak już wspomniał kolega (at)ex-or , funkcja digitilWrite() każdorazowo blokuje i odblokowuje przerwania, co łącznie może skutkować tym, że kolejne iteracje loop() będą wykonywane w nieco różnym czasie. [syntax=c]void...

    Mikrokontrolery Początkujący   03 Gru 2019 11:08 Odpowiedzi: 10    Wyświetleń: 756
  • [Atmega328] [Atmega328][C][PWM] - Jak poprawić jakość dźwięku .wav z karty SD?

    Udało mi się odtworzyć .wav 22050Hz. Jest bardzo fajnie, muzyczka gra w bardzo fajnej jakości, ALE... słyszę cały czas szum(pierdzenie), który jest jakby nałożony dodatkowo w muzyczce, taki odrębny szum. Jak go wyeliminować? Aktualnie kod odpowiedzialny za odtwarzanie przedstawia się tak: [syntax=c] // Konifguracja muzyczki void Music_Init() { DDRB...

    Mikrokontrolery   12 Wrz 2013 19:47 Odpowiedzi: 13    Wyświetleń: 3366
  • [ATmega32] Jak działa funkcja millis() w Arduino i konfiguracja Timer2 w ATmega32?

    W tym trybie timer po prostu zlicza impulsy zegarowe do niego doprowadzone, jeśli przekroczy zakres to zgłasza przerwanie overflow (nadmiaru) i rozpoczyna zliczanie od nowa. Funkcja obsługi tego przerwania zlicza je zwiększając liczniki f - przechowujący czas z rozdzielczością <1ms i m przechowujący liczbę milisekund. W programie należy korzystać...

    Mikrokontrolery AVR   16 Paź 2012 10:38 Odpowiedzi: 7    Wyświetleń: 2349
  • Kod dla Atmega8A + HC-05 (Bluetooth): jak podłączyć terminal?

    wytłumacz mi kod bardziej szczegółowo. Oczywiście, chętnie to zrobię. Zacznijmy od początku: 1. `#define F_CPU 8000000UL` - To jest definicja częstotliwości taktowania mikrokontrolera. W tym przypadku wynosi ona 8 MHz. 2. `#include <avr/io.h>, #include <avr/interrupt.h>, #include <util/delay.h>` - To są biblioteki, które zawierają...

    Mikrokontrolery Początkujący   11 Wrz 2023 11:57 Odpowiedzi: 66    Wyświetleń: 1572
  • [ATmega8] Jak poprawnie podłączyć i zaprogramować system kontroli temp. na ATmega8 i LM35?

    Witam w NOWYM ROKU! Układ złożony ale mam kolejny problem. Przerwanie od ADC Chcę w przerwaniu od ADC umieścić funkcję pomiar() jednak tam nie działa i nie wiem dlaczego. Jeśli funkcja pomiar() jest w main nie ma problemu, ale wtedy ADC nie jest właczony w trybie free running ani nie mam obsługi przerwania od ADC. Dla przypomnienia ATMEGA 8 + LM35 W...

    Mikrokontrolery AVR   01 Sty 2010 18:10 Odpowiedzi: 10    Wyświetleń: 6511
  • Atmega8 - jak kontynuować działanie silnika po przerwaniu z krańcówki?

    Wydaje mi się że po prostu użyj jakieś flagi i zmiennej globalnej która zapamięta wartość PORTC w momencie wejścia do przerwania. Aby rzeczywiste wartość ta była zachowane użyj zmiennej volatile char to znaczy wchodząc do przerwania funkcja będzie wykonywana na tej zmiennej a nie na jej kopii.

    Mikrokontrolery AVR   10 Sty 2010 08:12 Odpowiedzi: 14    Wyświetleń: 1983
  • [atmega128] [atmega128]/[C] - Reset programu przy nawigacji w menu powyżej 100 pozycji

    Witam Po wielodniowym pisaniu oprogramowania mini sterownika do akwarium napotkałem dziwny problem, mianowicie. Utworzone menu zawierało 94 pozycje razem z podmenu zdefiniowane strukturze. Przechodzenie pomiędzy stanami realizowane jest enkoderem obsługiwanym w pętli głównej programi i ładnie działa. Problem pojawił się w chwili gdy postanowiłem dodać...

    Mikrokontrolery AVR   28 Gru 2013 22:45 Odpowiedzi: 7    Wyświetleń: 1560
  • [ATMEGA 32][C] - Pomiar napięcia zmiennego przez ADC - program

    Witam. Napisałem program do pomiaru napięcia i pradu zmiennego, sygnaly doprowadzone na nozki ADC6 i ADC7, następnie chcęje spróbkować w przerwaniach z timera w trybie CTC (po64 próbki każdy), zatrzymaćna chwile przerwania, dokonać obliczeń, wyświetlić na lcd i "od nowa". Napisałem program, lecz nic nie oblicza prosiłbym o pomoc. Przepraszam z góry...

    Mikrokontrolery AVR   19 Gru 2013 15:59 Odpowiedzi: 10    Wyświetleń: 3420
  • ATmega128: Start z sekcji bootloadera, ustawienia fusebit i obsługa LCD/RS232C

    Witam. Nie mogę zmusić ATmegi128 do startowania z sekcji bootloadera. Mam ustawiony fusebit BOOTRST, do tego zaznaczone 'boot blocks 4096 words' (programator AVRprog z AVRstudio), czyli przeznaczam na sekcje bootloadera 8192 bajtow, czyli ta sekcja zaczyna się od 0x1E00. Chciałbym zaznaczyć, że ten bootloader, który chcę zrobić ma obsługiwać (samodzielnie)...

    Mikrokontrolery   19 Lis 2009 13:46 Odpowiedzi: 11    Wyświetleń: 5230
  • Atmega 328p - UART odbieranie stringów z Matlaba - niepełne dane

    Okej, ogólnie to działa, wielkie dzięki za tamto. Mam jednak dalszy problem troszkę. Ogólnie chcę osiągnąć coś takiego, że wysyłam najpierw z Matlaba liczbę - jakąś flagę, po której uC wejdzie do odpowiedniej pętli. Po wejściu do tej pętli dopiero w niej ma odbierać wysłaną z Matlaba wartość. Czyli np. najpierw wysyłam liczbę równą 2 z Matlaba do uC....

    Mikrokontrolery AVR   03 Sty 2017 15:14 Odpowiedzi: 18    Wyświetleń: 1545
  • [C] Termostat "wielozadaniowość" DS18b20, Atmega168 C

    Witam. Otóż mam taki problem ;) Dwa czujniki DS18b20 podłączone są do osobnych pinów Atmegi168, PINB0, PINB1. Chciałem to zrobić w ten sposób aby w przerwaniu ustawiana była flaga (co sekundę) która realizowana była w pętli głównej while(1), w ten sposób, aby co sekundę na zmianę wykonywany został convert oraz odczyt. Wydaje mi się, że wszystko zrobiłem...

    Programowanie Początkujący   16 Lip 2012 19:48 Odpowiedzi: 2    Wyświetleń: 1360
  • Atmega168 Bascom - Przerwanie co 5us i odczyt 8 bitów

    Mam kolejne pytanie. Mając to że odczytuje PINB i PIND w przerwaniu (wstawka asemblerowa od michalko12) czy mogę wysłać dane powiedzmy od TAB1[0] do TAB1[10] przez TWI (i2c) do drugiego AVR ?? Czy nie będzie jakiegoś konfliktu z tą wstawką ASM?? TWI też wykorzystuje przerwania ?? Ewentualnie jak wysłać to do drugiego AVR (oprócz SPI i UART) bo mam do...

    Mikrokontrolery Początkujący   18 Lis 2014 09:04 Odpowiedzi: 65    Wyświetleń: 4749
  • Błędny odczyt czasu z DS1302 i temperatury z DS18B20 na atmega328

    No właśnie cały czas wyświetlacz wyświetla mi 0. Wcześniej miałem 1000 ms opóźnienia ale to niczego nie zmieniało Dodano po 51 Podokładem trochę tych delay, ale wyniku na wyświetlaczu to nie zmieniło [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include...

    Początkujący Elektronicy   11 Wrz 2018 18:45 Odpowiedzi: 15    Wyświetleń: 744
  • ATmega32/Atmel Studio 6 - Wysyłanie danych przez UART

    Ile trwają procedury Measurement_DS18B20() oraz Measurement_SHT11()? Najlepiej pokaż też je. Takie coś się może dziać się w momencie, jeśli przerwanie od timera przychodzi w momencie działania funkcji dtostrf, jeśli uart działa z większą prękością to prawdopodobnie rzadziej trafia w tą funkcję. Najszybciej poprawić to można poprzez wprowadzenie jakiejś...

    Mikrokontrolery   05 Gru 2012 11:24 Odpowiedzi: 13    Wyświetleń: 4368
  • [Atmega128] - Jak usunąć warning przy odczycie EEPROM w C?

    Cześć Temat wraca jak bumerang, chociaż mój problem polega raczej na brakach w C. Ale do rzeczy. Zapisuję i odczytuje dane z pamięci EEPROM. Wszystko działa. Ale ponieważ nie lubię warning-ów, to próbuję je wyczyścić. Są takie linijki w programie do odczytu kolejnych komórek z pamięci EEPROM i wrzucanie ich do odpowiednich zmiennych: [syntax=c] volatile...

    Mikrokontrolery AVR   28 Maj 2013 11:20 Odpowiedzi: 3    Wyświetleń: 945
  • Atmega128 - Odbiór danych z MCP3204-CI/P i wyświetlenie na GLCD

    Mam problem z odczytem danych z ADC po SPI. Nie jestem pewien czy napisany program jest poprawny dlatego prosiłbym o ewentualne wyszukanie błędu i jakieś naprowadzenie jak go poprawić. Na CH1 układu MCP3204 podaje napięcie z potencjometru. Dane chce wyświetlić w postaci liczby oddawanej przez ADC. GLCD działa i zmienne, które miały być wyświetlone działają,...

    Mikrokontrolery Początkujący   22 Gru 2016 20:38 Odpowiedzi: 13    Wyświetleń: 1191
  • Atmega16A/l293D - Kod PWM do sterowania silnikami DC w robocie

    Witam, chciałbym zrobić robocika z silniczkami DC sterowane poprzez PWM. Niestety nie bardzo mam pojęcie jak to przerzucić na kod. Napisałem program, ale nie jestem pewny czy jest poprawny i czy moje myślenie w ogóle jest poprawne. Poniżej zamieszczam kod: [syntax=c] #define F_CPU 1000000L #include <avr/io.h> #define PRZOD 0x02 // (1<<PA1)...

    Mikrokontrolery AVR   10 Sty 2013 09:14 Odpowiedzi: 11    Wyświetleń: 2649
  • ATmega128 USART - jak wyłączyć diodę na PD4 po puszczeniu klawisza w?

    Kombinuję by zrobić to na przerwaniach. Mam jednak problem. Pytania: 1) Jak sprawdzić czy bufor jest pusty? 2) Czym mogę wyczyścić bufor? Proszę o odpowiedź w postaci komend. Na razie jest tak: /***************** Funkcja odbioru znaku **********************/ volatile uint8_t uart_getc(void) { /* Sprawdzanie danych w buforze */ while (...

    Mikrokontrolery AVR   30 Gru 2010 12:40 Odpowiedzi: 13    Wyświetleń: 1681
  • [ATmega128][C]przerwania nie wracają, reset uC: fuse M103C

    Witam mam kolejny problem z nieszczęsną atmega128. Napisałem program który działał na ATmega16 i chciałem go przenieść do atmega128 no i jest problem. Program w ogóle nie działa. W przerwaniu powinny się zwiększać wartości zmiennych. Niestety chyba nie zwiększają się :/ program wchodzi do przerwania bo wstawiłem tam naprzemienne ustawianie i kasowanie...

    Mikrokontrolery AVR   08 Gru 2009 21:36 Odpowiedzi: 11    Wyświetleń: 2826
  • [ATMega32] [ATMega32][C] Odczyt danych z SD/MMC FAT32 - problem z pamięcią programu

    wszystkie funkcje, które napisałem są wykonywane w pętli while programu głównego main. W funkcjach liczników i przerwań ustawiam tylko flagi (wszystkie flagi deklarowane jako volatile), a w programie main sprawdzam, czy dana flaga jest ustawiona - jeśli jest, to wykonuję pewien fragment kodu i resetuję flagę. W funkcjach wywoływanych przez program main...

    Mikrokontrolery AVR   31 Sie 2009 23:51 Odpowiedzi: 2    Wyświetleń: 1465
  • [ATmega][C] Ogromne rozmiary pliku - funkcja _delay_ms

    Witam! Zauważyłem dziwną rzecz. Jeśli w kodzie użyję funkcji _delay_ms z argumentem w postaci zmiennej, rozmiar skompilowanego kodu rozrasta się do około 40kB, zaś jeśli parametrem będzie bezpośrednio liczba, kod zajmuje 4kB. Co może być przyczyną? A, jeśli wywołuję tę funkcję z parametrem - zmienną, program nie działa prawidłowo. Pomóżcie, proszę!...

    Mikrokontrolery AVR   27 Lut 2011 17:05 Odpowiedzi: 6    Wyświetleń: 1777
  • Atmega128 - Wyświetlanie bitmapy 128x64 lib. K0108 Radzia

    Mam problem z wyświetleniem bitmapy i nie wiem gdzie popełniam błąd. Konwertuję mapę na hexa prze programik Radzia i zapisuje ją jako plik .h. Tak to wygląda [syntax=c] const PROGMEM unsigned char obrazek[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,...

    Mikrokontrolery Początkujący   05 Gru 2016 15:25 Odpowiedzi: 5    Wyświetleń: 999
  • [Bascom][C]Atmega oraz radiowe moduły RFM01, RFM02, RFM12

    Witam serdecznie wszystkich!!! To mój pierwszy post. Od kilku dni walczę z modułami RF12B. Wydaje mi się że wszystko jest w porządku podpięte. Kod chyba też w porządku bo praktycznie taki jak wszystkie które pojawiły się w tym temacie. Tylko mam problem z weryfikacją tego co zostało przesłane. Nie mam możliwości podpięcia przez RS uK do mojego laptopa....

    Mikrokontrolery   20 Cze 2021 23:15 Odpowiedzi: 707    Wyświetleń: 240128
  • [Atmega8] [Atmega8][C] Jak poprawnie obsłużyć przerwania USART?

    Po pierwsze powinieneś pisać kod bardziej po bożemu czyli stosować rzutowania. Po drugie Atmega 8 domyślnie pracuje na 8 znakach i nie trzeba tego ustawiać. Upewnij się że masz wyłączoną w komputerze kontrole przepływu. Funkcja _delay_ms przeznaczona jest do pisania własnych opóźnień bo sama jest ograniczona i 2000 jako argument nie przyjmie. Według...

    Mikrokontrolery AVR   10 Cze 2008 16:23 Odpowiedzi: 18    Wyświetleń: 4623
  • [ATMEGA 8] Jak napisać program do tablicy LED z ATMEGA8 i BASCOM?

    No tak, te funkcje wyglądają w ten sposób: #define F_CPU 1000000 //1MHz zegar procesora #define CYCLES_PER_US ((F_CPU+500000)/1000000) //cpu cycles per microsecond void delay(unsigned int us) { unsigned int delay_loops; register unsigned int i; delay_loops = (us+3)/5*CYCLES_PER_US; for (i=0; i < delay_loops;...

    Mikrokontrolery AVR   02 Lis 2010 07:54 Odpowiedzi: 106    Wyświetleń: 35829
  • AVR Atmega16 - Funkcja arctg, implementacja, przykłady

    Witam mam pytanie testuje funkcję wbudowaną atan2 () mam dwie zmienne typu int:ADC1, ADC2 dla przykładu atan2 (ADC2, ADC1)*(180/M_PI) = (510/ -471 )*(180/M_PI) daje mi wynik 132 --- błąd natomiast odwrotne działanie np. atan2 (ADC2, ADC1)*(180/M_PI) = ( -393 /504)*(180/M_PI) daje wynik prawidłowy -37^ atan2(-ADC2/-ADC1) *(180/M_PI) daje również wynik...

    Mikrokontrolery AVR   07 Sie 2013 07:24 Odpowiedzi: 11    Wyświetleń: 2442
  • JTAG ICE i AVRStudio - zawieszanie się debuggera na pętli for w ATmega128

    #include <inttypes.h> #include <avr/io.h> #include <stdio.h> #include <stdlib.h> #include <avr/iom32.h> #include <avr/interrupt.h> #include <string.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "HD44780.h" //definicje zmiennych volatile int ms, s, m, h, znacznik; char buf[256];...

    Mikrokontrolery AVR   03 Sie 2008 19:10 Odpowiedzi: 5    Wyświetleń: 1883
  • [AVR] [AVR][ATmega][C] Jak przesyłać dane między UART1 a UART0? Program nie działa

    Witam. Chciałem napisać następujący program: Dane przesyłane są z komputera przez UART1, a następnie te dane chciałbym przesłać dalej, za pomocą UART0. Na razie połączyłem sobie, w UART0 RxD z TxD za pomocą rezystora 200Ohm (taki loopback do testów). Czyli jak na razie chciałem uzyskać następujący przepływ : komputer -> UART1 -> UART0 -> UART0...

    Mikrokontrolery AVR   23 Lip 2008 20:24 Odpowiedzi: 1    Wyświetleń: 2012
  • ATmega 168 - Arduino nie zlicza impulsów z enkodera przy 3000 RPM

    Witam Trochę się poduczyłem z pomocą mojego kolegi Śmigła i zacząłem piać w AVR studio. Efektem tej pracy jest obsługa wyświetlacza LED (działa) i próba obsługi enkodera (ten niestety nie działa). Zamieszczam kawałek programu obsługi przerwań. Może ktoś z Was coś dostrzeże [syntax=c]ISR(INT0_vect) { //DDRD &= ~ (1<<PD2) | ~(1<<PD3);...

    Arduino   28 Sie 2013 22:32 Odpowiedzi: 9    Wyświetleń: 4665
  • [c] Atmega32 - przeniesienie kodu klawiatury matrycowej z Atmega8, brak reakcji

    Witam Was mam taki problem i za bardzo nie mogę sobie poradzić. Chciałem przerzucić kod z atmegi8 na atmege32, który to obsługuje klawiaturę matrycową. Wcześniej kod pracował mi na jednym porcie, teraz jest na dwóch po kawałku. Na razie wyświetla liczbę 11 i nie reaguje. W kodzie dałem stosowne komentarze. Może jest tu jakiś prosty błąd ale nie mogę...

    Mikrokontrolery AVR   25 Paź 2011 11:30 Odpowiedzi: 2    Wyświetleń: 1094
  • [atmega8][C] Timer2 i opóźnienia w zliczaniu czasu

    Witam Kod jak poniżej służy do zliczania czasu trwania jednego impulsu (ta funkcja działa prawidłowo) oraz do zliczania czasu (w celu zliczania ilości impulsów na jednostkę czasu). volatile unsigned char pomiar = 0; volatile uint32_t cw_impuls,impuls = 0; unsigned char sreg; float tc1; char czas[8]; void Inicjalizacja(void) { LCD_init();...

    Mikrokontrolery AVR   25 Sie 2008 21:47 Odpowiedzi: 9    Wyświetleń: 4136
  • [atmega32] zapios do eepromu i reset mikrokontrolera

    loocasm --> nie chodzi o to żeby wszystkie zmienne, których używa się w przerwaniu od razu deklarować jako volatile ale tylko te, które są jednocześnie używane zarówno w przerwaniu jak i w pozostałej części programu w różnych funkcjach. (nie do końca rozumiesz może jeszcze volatile) W tym konkretnym przypadku gdy zmienna overflow_tmp jest używana tylko...

    Mikrokontrolery AVR   14 Maj 2010 08:17 Odpowiedzi: 18    Wyświetleń: 1980
  • [atmega32] [atmega32][C] Analiza kodu do zarządzania zasilaczem i LED 12V, 230V zegar

    Jestem elektronikiem i choć od prawie roku (z przerwami ) powoli zagłębiam się w temat programowania na własne potrzeby AVR-ów nadal nie potrafię zastosować wielu pożytecznych funkcji co powoduje że napisanie programu do zarządzania i monitorowania napięć i prądów w układzie zasilacz,akumulator 12V,oświetlenie LED oraz sterowanie przez nastawny dwukanałowy...

    Mikrokontrolery AVR   12 Sie 2014 09:50 Odpowiedzi: 23    Wyświetleń: 4179
  • [ATMega] [ATMega][c] Licznik impulsów 5V dla obrotomierza i prędkości w motocyklu - pytania

    Witam, wiem że w sieci jest 1*e^6 lub więcej gotowych liczników impulsów, lecz ja chciałbym mieć pełną kontrolę nad moim kodem, a nie kopiować bezmyślnie. Tak więc sprawa tyczy się zliczania impulsów 5V od obrotów i prędkości w motocyklu. Do tego celu chcę wykorzystać układ AVR ATMega 16 lub mniejszy (po przeróbce w kodzie). PYT1: Obrotomierz kręci...

    Mikrokontrolery AVR   06 Cze 2011 15:25 Odpowiedzi: 5    Wyświetleń: 4601
  • Atmega128 [C] - Jak działa wskaźnik w definicji #define ATAPI_Data?

    Witam. Po przerwie wracam do tematu gdyż nadal nie mogę poradzić sobie z obsługą karty Compact Flash za pomocą mikrokonrolera. Sprawa wygląda w ten sposób że wykonałem układ do obsługi karty CF jak na poniższym schemacie. Poniższy schemat jest zaczerpnięty z Elektroniki Praktycznej z rocznika 2/2004 http://obrazki.elektroda.net/39_12252239...

    Mikrokontrolery   28 Paź 2008 21:01 Odpowiedzi: 4    Wyświetleń: 4894
  • [Atmega32][C][JHD204A] - Brak reakcji wyswietlacza, zatrzmywanie sie programu

    Witam, Po przesiadce z Atmegi8 na wersję 32 postanowiłem ponownie złożyć układ z wyświetlaczem i dwoma termometrami, niestety pomimo użycia tego samego kodu już na początku mam problemy. Po sukcesywnym załadowaniu programu Atmega startuje i prawdopodobnie wywraca się na funkcji lcd_init i nie chce ruszyć dalej. Wspomagalem sie dioda sygnalizacyjna i...

    Mikrokontrolery   08 Paź 2012 21:00 Odpowiedzi: 7    Wyświetleń: 1671
  • [Atmega][GCC] Dziwne zachowanie przy podawaniu napięcia.

    Przy załączeniu napięcia atmedze na wyświetlaczu zamiast oczekiwanego napisu pojawiają się randomowe śmieci. Przy zwyczajnym resecie wszystko jest ok. Z resztą najlepie to widać na filmiku: //MAIN--MAIN--MAIN--MAIN--MAIN--MAIN--MA... portSHORT main(void) { //Inicjalizacja...

    Mikrokontrolery AVR   18 Lip 2009 12:34 Odpowiedzi: 6    Wyświetleń: 1323
  • atmega88 - C tablice znaków w wyświetlaczu widmowym

    Witam, swojego czasu zrobiłem sobie wyświetlacz widmowy, jednak po zabawach w bascomie stwierdziłem że ma to większy potencjał i postanowiłem z niego zrobić zegarek :) Tu zaczęły się schody w ramach testu stworzyłem tablice dla znaków od 0 do 9 plus ":" jako oddzielenie godzin od minut. Jednak program nie wyświetla poprawnie cyfr od 0 do 4 reszta wyświetla...

    Mikrokontrolery   23 Mar 2014 21:57 Odpowiedzi: 4    Wyświetleń: 1125
  • [ATMega32] ATMega32 SPI w C – przykład implementacji bufora/kolejki do transmisji

    Witam ponownie, problem powrócił i postanowiłem spróbować napisać taki kod. Czy mógłby mi ktoś powiedzieć na podstawie tego co stworzyłem do tej pory czy idea tego jest dobra. Podstawą na której się opieram jest wypowiedź Pana tmf: "Możliwe. Dlatego trzeba to max uprościć. Z priorytetów bym zrezygnował bo przy szybkości SPI raczej są niepotrzebne. Transakcja...

    Mikrokontrolery AVR   04 Lis 2012 21:32 Odpowiedzi: 12    Wyświetleń: 2034
  • Stare na nowe czyli kod z ATMEGA 32 usiłuje wziąć do STM32F103

    U mnie w kodzie nie ma ...... /* * sterownik dla Margas * wersja dla NUCLEO STM32F446RE * działa dzieki życzliwości i zaangarzowaniu członków forum ELEKTRODA * wspomagających moją skromną wiedzą programistyczną * za co jestem im bardzo a to bardzo wdzęczny * data xx-xx-2024 */ #include "STM32TimerInterrupt.h" #include "STM32_ISR_Timer.h"...

    Mikrokontrolery ARM   09 Sie 2024 15:25 Odpowiedzi: 330    Wyświetleń: 6492
  • Atmega 128A - Zapis i odczyt dużych liczb w eeprom przy użyciu języka C

    Więt tak: deklaracja zmiennej : [syntax=c] volatile uint16_t zmienna = 0; // - zmieniam tą wartość później na 300 [/syntax] włączam przerwania według konfiguracji zegara (8MHz - wewnętrzny) [syntax=c] //- uruchomienie eepromu extern EEMEM uint16_t eeprom_values[200]; EEMEM uint16_t eeprom_values[200] = {0,0}; //- konfiguracja zegara void Init_Timer0_OVF(){...

    Mikrokontrolery AVR   15 Lis 2020 11:30 Odpowiedzi: 6    Wyświetleń: 582
  • [Atmega 16] Atmega 16: Niepełna transmisja danych przez USART w modbusie, jak to naprawić?

    A co robię niezgodnie z dokumentacją? Poniższe funkcje znalazłem na stronie internetowej, która wyglądała całkiem poważnie. Obojętne mi z której flagi będę korzystał byle działało :P A skoro w większości przykładów natknąłem się właśnie na wykorzystanie tych flag to tego się na razie trzymam. ----------------------------------------... W sumie to...

    Mikrokontrolery AVR   16 Maj 2010 16:15 Odpowiedzi: 2    Wyświetleń: 2707
  • [ATmega32][C] - Dziwna funkcja opóźniająca delay w bibliotece czujnika SHT10

    Witam wszystkich, nurtuje mnie dziwnie napisana funkcja delay w bibliotece którą znalazłem do obsługi czujnika wilgotności i temperatury SHT10. Bibliotekę zaimplementowałem w swój projekt, i czujnik ładnie działa, ale za cholerę nie wiem jak on działa korzystając z tego dziwnego delaya...Dlaczego autor nie mógł po prostu użyć wbudowaną funkcję z biblioteki...

    Mikrokontrolery AVR   30 Lip 2012 14:39 Odpowiedzi: 8    Wyświetleń: 1953