atmega volatile funkcja

Znaleziono około 610 wyników dla: atmega volatile funkcja
  • 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ń: 1107
  • REKLAMA
  • 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ń: 6897
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (2min)...
  • 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ń: 5906
  • REKLAMA
  • 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ń: 5766
  • 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ń: 1035
  • REKLAMA
  • 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ń: 2034
  • ATmega reset i utrata EEPROM silne zakłócenia EMI

    Witam, dzisiaj miałem czas na zgranie kodu i wyrzucenie z niego tego co nie dotyczy tematu: Dodano po 7 Przepraszam za dziwne znaki w komentarzach ale przerzucałem z Windowsa na Linuxa i nie konwertowałem kodowania. Będę wdzięczny za pomoc. Sławek

    Mikrokontrolery AVR   08 Sty 2020 21:50 Odpowiedzi: 7    Wyświetleń: 1050
  • 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ń: 1023
  • [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ń: 2752
  • REKLAMA
  • 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ń: 1116
  • 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ń: 1099
  • 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ń: 4680
  • ATMEGA 328P-AU - FAST PWM na pinie PD6 nie działa poprawnie - analiza kodu

    Zerknij na to [syntax=c]/* * Timer0_fast_pwm_adc_irq_1.c * * Program uruchamia licznik Timer0 w trybie modulacji szerokości impulsu, tzw. Fast PWM. * Wyjście modulatora PWM na końcówce (OC0) PORTB.3. * Zostaje uruchomiony przetwornika ADC, pomiar z kanału 0, pomiar 10-bitowy, wyz. ADC z przepełnienia Timer0. * Częstotliwość PWM zależy od prescalera,...

    Mikrokontrolery AVR   26 Gru 2016 13:29 Odpowiedzi: 15    Wyświetleń: 2127
  • Atmega 8 termometr ds18b20 wyświetlacz hd44780 nie wyświetla pomiaru

    Witam serdecznie. Borykam się z problemem, którego nie mogę przeskoczyć a mianowicie. W funkcji main mam następujący kod: #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <stdlib.h> #include <util/delay.h> #include "hd44870.h" #include "ds18b20.h" //#include "MyDelay.h"...

    Mikrokontrolery AVR   05 Wrz 2011 18:03 Odpowiedzi: 11    Wyświetleń: 4065
  • [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ń: 2722
  • Atmega88PA i RS485 - błędy w komunikacji przy echosondzie

    Szanowni Koledzy, Buduję kontroler sterujący urządzeniami zewnętrznymi. Na chybcika skleciłem układ-programator AVR przez łącze LPT. Program napisany i skompilowany w WinAVR-20100110 (Win2k). Wszystko działa poprawnie (Linux Slackware 10 + avrdude) jeśli idzie o programowanie flesha. Od strony elektronicznej też jest wszystko w porządku (jak manual...

    Mikrokontrolery   15 Lip 2010 16:09 Odpowiedzi: 31    Wyświetleń: 6789
  • [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ń: 4638
  • [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ń: 4151
  • Lampka RGB by molszewski

    Dzięki wszystkim za opinie. Oddałem dziś projekt został oceniony na 5;] Dokonałem kilku zmian w programie więc wrzucam nową wersję: http://obrazki.elektroda.pl/8149391200_1... Jeśli już eliminujesz drgania styków programowo i w dodatku z użyciem timera, to mogłeś się pokusić o tak samo zrealizowane opóźnienia. Mnóstwo pamięci pożera...

    DIY Konstrukcje   08 Maj 2013 16:15 Odpowiedzi: 24    Wyświetleń: 20748
  • ATMEGA 32: Niespodziewane wyjście z pętli głównej do funkcji ustawień

    Program bez przetwornika ADC. Program działa prawidłowo Dodano po 42 Od kiedy praca dyplomowa jest tajna? Pytam z ciekawości- kiedyś była jawna na całym etapie pisania. Dlaczego w pętli głównej blokujesz przerwania- potem wykonujesz sporo obliczeń- a potem odblokowujesz? A co będzie jak w tym czasie pojawią się dwa przerwania? Jedno pójdzie się kochać....

    Mikrokontrolery AVR   12 Lip 2011 17:05 Odpowiedzi: 29    Wyświetleń: 2985
  • 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ń: 1140
  • 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ń: 1362
  • 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ń: 816
  • 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ń: 3321
  • [avr-gcc] Kiedy używać zmiennej volatile w programowaniu mikrokontrolerów AVR?

    Witam, Czy może mi ktoś w przystępny sposób wytłumaczyć kiedy zmienna powinna mieć typ volatile a kiedy nie musi?? Szukałem na google, czytałem kilka definicji tej zmiennej, ale dalej nie wiem kiedy ją używać (w programowaniu mikrokontrolerów) a kiedy nie. Wiem (tzn. wyczytałem :P) że jeżeli zmienna globalna ma być zmieniana w przerwaniach, to wtedy...

    Mikrokontrolery   14 Lis 2005 12:26 Odpowiedzi: 6    Wyświetleń: 7978
  • AVR Studio: Zmienna volatile int nie zeruje się na rzeczywistym układzie

    Witam. Poniżej przedstawiam dość specyficzny problem. Mamy np zmienną k zadeklarowaną następująco: volatile int k; Jest ona zadeklarowana nie w głównej funkcji main tylko w funkcji bitin(); Na początku jest ona zerowana. k = 0; I tu zaczyna się ciekawie. W programowej symulacji działa wszystko ok. Natomiast gdy odpalam na rzeczywistym układzie zmienna...

    Mikrokontrolery AVR   16 Maj 2010 15:30 Odpowiedzi: 7    Wyświetleń: 1317
  • AVR/ATmega8 - Gdzie stosować volatile przy tablicach i strukturach?

    Witam, ostatnio pisze bibliotekę służącą do eliminacji drgań styków w przyciskach. Będzie to działało w ten sposób, że w timerze wywołujemy funkcje obniżającą czas po którym możemy wcisnąć przycisk kolejny raz. Tak samo w kodzie - używamy funkcji z biblioteki która robi wszystko za nas :) Jednak napotkałem na taki problem - gdzie zastosować volatile...

    Mikrokontrolery AVR   28 Sty 2017 07:43 Odpowiedzi: 40    Wyświetleń: 2559
  • WinAVR: Jak poprawnie zdefiniować zmienną volatile dla ATMega8?

    Witam Mam problem z WinAVR, pisze program na ATMega8, używam zmiennej stan do oznaczania aktualnego stanu programu: static unsigned char stan = CZEKAJ; Pomimo że jest ona ostro używana w przerwaniach przy kompilacji dostaje komunikat: ../sensor.h:36: warning: 'stan' defined but not used gdy chcę zmienić jej typ na volatile ciągle wyskakuje mi Error:...

    Mikrokontrolery   07 Gru 2006 11:02 Odpowiedzi: 2    Wyświetleń: 1961
  • [C] Programowanie mikrokontrolerów - volatile w strukturach

    Jak to jest z atrybutem volatile dla struktur? Gdy struktura ma volatile to wszystko co się znajduje w strukturze jest volatile? Czy dodatkowo każdy element struktury trzeba oznaczać jako volatile? struct nazwa_struktury { uint8_tval1; uint8_tval2; } volatile x; To mogę już używać w x.val1 i x.val2, w przerwaniach i w pętli głównej programu?...

    Mikrokontrolery   25 Sty 2011 15:26 Odpowiedzi: 2    Wyświetleń: 1415
  • [atmega8] [atmega8][c] Zmiana zmiennej w pętli nie działa w AVR Studio 4. Dlaczego?

    Witam. Zacząłem pisać w c dla avr i mam następujący problem. Powiem jeszcze, że używam avrstudio 4. Otóż: while(1) { cos = 2; } lub for(;;) { cos = 2; } Już długo programuję w c++ dla PC i wiem, że to nie ma znaczenia inna pętla, ale nie o to tutaj chodzi. Dlaczego wartość zmiennej cos nie zostaje zmieniona na 2 ????...

    Mikrokontrolery AVR   02 Wrz 2008 11:33 Odpowiedzi: 30    Wyświetleń: 3190
  • Nano i Micro - Błędne wartości w zmiennych volatile (wielobajtowych)

    Mam następujący problem: Gdy zmieniam w przerwaniu zawartość zmiennej (co najmniej dwubajtowej) z kwalifikatorem volatile program w loop odczytuje czasem "hybrydową" wartość w której część bajtów pochodzi ze starej, a część z nowej wartości. Podobnie bywa przy odczycie w przerwaniu zmian wprowadzanych w loop. Sądzę, że problem pojawia się gdy przerwanie...

    Arduino   26 Lip 2016 16:55 Odpowiedzi: 51    Wyświetleń: 3477
  • [atmega8] [ATmega8] [C] Przerwania INT0 i INT1 nie zwiększają zmiennej pozycja

    Witam kolegów, sprawdzałem na różne sposoby, int0 ma mi dodac do pozycja++; ale nie dodaje... prosze o oswiecenie ;) /* układ ATmega 1MHz */ /* servo by dex */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> unsigned int roznicapozycji; unsigned int wynik; unsigned int dolnyzakres; unsigned...

    Mikrokontrolery AVR   27 Sty 2011 11:45 Odpowiedzi: 3    Wyświetleń: 4540
  • atrybut "volatile" dla struktury danych - niezgodność

    Witam, używam kompilatora: IAR EWARM . Mikrokontroler to ARM AT91SAM7x256 Mam zdefiniowaną strukturę: Error[Pe167]: argument of type "FIL volatile *" is incompatible with parameter of type "FIL *" Obawiam się że to wina kompilatora, bo przykład jest zaczerpnięty z ksiązki w której autor używał kompilatora Eclipse. Czy...

    Mikrokontrolery   28 Sie 2011 09:32 Odpowiedzi: 23    Wyświetleń: 3685
  • Dlaczego zmienna volatile nie działa w zegarze na AT90S2313?

    Witam. Problemem jest nie działająca instrukcja volaitile. Dopiero zaczynam programowanie w C jednak zanim rozpocząłem pisać nowy temat to przeszukałem zasoby neta - z marnym skutkiem i dlatego pytam bardziej doświadczonych kolegów. Program jest prostym zegarem na AT90S2313 i wykorzystuje T0 do multipleksowania wyświetlaczy 7 -segmentowych(są 4 sztuki...

    Mikrokontrolery AVR   11 Lut 2010 10:27 Odpowiedzi: 7    Wyświetleń: 2249
  • Dlaczego zmienna volatile działa w przerwaniach w WINAVR?

    Witam czy ktos moze mi wyjasnic dlaczego tak jest: napisalem sobie procedure obslugi przerwania z uzyciem SIGNAL. w obsludze zwiekszalem zmienna o 1. w petli glownej programu z uzyciem if czekalem az licznik osiagnie 15. Gdy osiagal 15 (patrzylem podczas debuggingu) nic sie nie dzialo, if w zasadzie nie widzial zaleznosci 15 == 15. Dopiero gdy zmienna...

    Mikrokontrolery   17 Paź 2005 21:34 Odpowiedzi: 6    Wyświetleń: 1097
  • [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ń: 5723
  • [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ń: 2043
  • [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ń: 1357
  • 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ń: 10227
  • [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ń: 2647
  • 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ń: 639
  • [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ń: 2361
  • 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ń: 3280
  • [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ń: 741
  • [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ń: 8532
  • 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ń: 570
  • [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ń: 876
  • [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ń: 2658
  • 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ń: 1092
  • 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ń: 2928
  • [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ń: 1681
  • 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ń: 4872
  • 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ń: 2289
  • [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ń: 14628
  • [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ń: 1547
  • 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ń: 996
  • 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ń: 3396
  • 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ń: 1443
  • 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ń: 878
  • 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ń: 675
  • [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ń: 1533