atmega volatile

Znaleziono około 2652 wyników dla: atmega volatile
  • Atmega 1280: Czy BUFF_SIZE 8 jest za duże dla UARTBuffer?

    volatile unsigned char UART0recv, UARTBuffer[BUFF_SIZE], UARTCount, UARTGet, rx_counter; A czy przypadkiem tylko pierwsza zmienna będzie volatile przy takiej deklaracji?

    Mikrokontrolery AVR   27 Lut 2010 07:32 Odpowiedzi: 13    Wyświetleń: 1717
  • REKLAMA
  • [ATMEGA] ATmega i C – jak zrealizować odtwarzanie pliku WAVE, obsługa nagłówka i próbkowania

    Było 10000000000000000000 razy: volatile int secPP; volatile int secDP;

    Mikrokontrolery   01 Lut 2010 13:24 Odpowiedzi: 34    Wyświetleń: 7405
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • Atmega 32 - Jak przekazać wartość sekund z przerwania timer0 do main?

    Wpisać magiczne "volatile" volatile int sekunda=0;

    Mikrokontrolery AVR   30 Maj 2009 20:48 Odpowiedzi: 2    Wyświetleń: 2722
  • REKLAMA
  • [atmega] Błąd w komunikacji UART na ATmega z użyciem avr-gcc i C - jak naprawić?

    volatile char * rxbufptrwrite; volatile char * rxbufptrread; To nie wskaźniki są volatile tylko obszar pamięci na który wskazują. Spróbuj: volatile char * volatile rxbufptrwrite; volatile char * volatile rxbufptrread; ale w tym przykładzie powinno też Ci wystarczyć char * volatile rxbufptrwrite; char * volatile rxbufptrread;

    Mikrokontrolery AVR   11 Paź 2009 22:31 Odpowiedzi: 3    Wyświetleń: 2150
  • Atmega 32 - kiedy stosować specyfikator volatile w kodzie C?

    No, z tą szybkością to akurat nieprawda - inkrementacja zmiennej o dowolnej długości na CM zajmuje 3..4 instrukcje, to przy 50 MHz wciąż będzie na ogół szybciej niż jedna instrukcja na 8.bitowcu... ;)

    Programowanie Początkujący   20 Kwi 2015 12:29 Odpowiedzi: 7    Wyświetleń: 1098
  • [Atmega 8] [Atmega 8][GCC][VMLab] - Timer w symulatorze działa za szybko, jak to naprawić?

    Witaj. 1. Nie znam VMLAB, ale czy prawidłowo definiujesz F_CPU? 2. Czy symulator nie potrzebuje osobnej definicji częstotliwości do prawidłowego określania czasów symulacji? Tak jest w symulatorze w Atmel Studio. 3. Volatile: http://mikrokontrolery.blogspot.com/2011... Posklejałeś ten program z kilku - no ale każdy kiedyś zaczyna...

    Mikrokontrolery AVR   19 Sty 2014 09:10 Odpowiedzi: 14    Wyświetleń: 2010
  • Jak poprawnie sterować tranzystorem PNP BC807 z portu ATmega?

    Tranzystor wyłaczy sie jeśli napięcie na bazie będzie większe niz 11,4V, czyli musi przekroczyc poziom napiecia emitera pomiejszony o około 0,6V. Najwyzsze napiecie na AVR to 5V wiec nie wyłaczy tranzystora. Łopatologicznie? Poszukaj, temat wałkowany niczym volatile

    Mikrokontrolery   01 Cze 2011 19:00 Odpowiedzi: 3    Wyświetleń: 2960
  • [Atmega128][c++] Atmega 128 nie działa przy małych modyfikacjach programu

    Przerwań chyba gdzieś używasz- bo masz interrupt.h Ale w programie ich nie widać. Może to jednak nieśmiertelne volatile?

    Mikrokontrolery AVR   03 Kwi 2012 19:54 Odpowiedzi: 39    Wyświetleń: 4780
  • PID na ATmega - AVR221 brak reakcji na wejściu układu

    Na końcu ISR powinieneś dać: [syntax=c]TCNT0 = 0;[/syntax] Co do tego: gFlags.pidTimer to o tym też nic nie wiadomo, czy napisałeś tam przy volatile? To tyle jeśli chodzi o domyślanie się na podstawie paru linijek kodu.

    Mikrokontrolery   26 Lut 2014 14:17 Odpowiedzi: 8    Wyświetleń: 2172
  • REKLAMA
  • AtMega 128 - problem z odczytem UART i przerwaniami RXCIE, TXCIE

    Czy z przerwania mogę zwrócić daną do głównego programu (jako dana globalna) ?? Tutaj znajdziesz odpowiedź: http://mikrokontrolery.blogspot.com/2011...

    Mikrokontrolery AVR   05 Maj 2011 22:22 Odpowiedzi: 26    Wyświetleń: 1716
  • REKLAMA
  • [ATMega][SN75176][c] - problemy z UARTem (przerwania)

    i jak zwykle, odpowiedz standardowa - volatile. ile razy bedzie musiala jeszcze pasc, aby forumowicze znajdywali ja w wyszukiwarce, a nie pytali o nia co chwile? 4\/3!!

    Mikrokontrolery AVR   04 Mar 2009 12:54 Odpowiedzi: 3    Wyświetleń: 2084
  • [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
  • [Atmega 2560] Atmega 2560: Skoki w debugowaniu AVR Studio, pomijanie instrukcji w pętli for

    Efekt jest dokładnie taki jak kod - o to mogę się założyć. Twój kod ma po prostu błędy i tyle, więc czego oczekujesz? Poza faktem braku volatile "tu i tam", to zerowanie tej flagi w przerwaniu masz, ale gdzie masz jej ustawianie? Nigdzie. 4\/3!!

    Mikrokontrolery AVR   05 Gru 2010 22:49 Odpowiedzi: 7    Wyświetleń: 1404
  • Atmega644PA - Obsługa przerwania, multipleksowanie ADC

    Jeśli wartość OKRES nic nie zmienia, to masz gdzieś gruby błąd. Prawdopodobnie skrzyżowałaś różne kawałki kodu i wyszło coś, nad czym nie panujesz. W moim kodzie 3 kanały są ciągle mierzone przez ADC, a wartość OKRES reguluje tylko to, jak często czytasz/przetwarzasz te pomiary. Tak to się robi w rzeczywistych zastosowaniach, gdzie zwykle musisz mieć...

    Mikrokontrolery   10 Sty 2016 16:07 Odpowiedzi: 53    Wyświetleń: 2865
  • ATMega 32 nie wykrywa szybkiego impulsu z czujnika szczelinowego przy 120m/s

    Pozwólcie, że odświeżę i zapytam jak przekonwertować volatile uint8_t na char array[]?

    Mikrokontrolery AVR   07 Paź 2017 14:55 Odpowiedzi: 32    Wyświetleń: 3708
  • [ATmega88pa] [ATmega88pa][C] - Timer nie wywołuje przerwań dla programowego PWM

    Generalnie w takich przypadkach nota układu twoim przyjacielem. Poczytaj to co napisałem w komentarzach. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> int main(void) { uint8_t i = 0; DDRD = 0xff; //TCCR2A |= (1<<WGM21)|(1<<WGM22); // źle ten tryb jest zarezerwowany TCCR2A |= (1<<WGM21) // CTC //TCCR2A |= (1<<CS20)|(1<<CS21)|(1<&l...

    Mikrokontrolery   12 Kwi 2015 16:54 Odpowiedzi: 2    Wyświetleń: 702
  • Atmega 169 - Konfiguracja PWM dla diody, brak zmiany jasności

    Wciśnięcie powoduje zwarcie do masy. Kolejne pytanie: Utworzyłem sobie 12 zmiennych typu volatile uint8_t Chce teraz stworzyć tablice 12 elementową, do której przypisze te zmienne i będę je sobie wybierał pętlą w programie. Niestety przy takiej inicjalizacji; volatile uint8_t tablica[11]={pwm1,pwm2,pwm3,pwm4,pwm5,pw...

    Mikrokontrolery Początkujący   18 Sty 2016 08:42 Odpowiedzi: 8    Wyświetleń: 882
  • [ATMEGA][C] kopiow. flagi do portu - problem początkującego

    Błąd masz tego rodzaju, że przypisanie do PORTD powoduje tylko ustawienie danego pinu (jeśli bit flash.f* jest ustawiony), nie ma możliwości skasowania bitu. Musiał byś przypisania zamienić na takie: PORTD = (PORTD & ~(1 << PD3)) | (flash.f05hz << PD3); lub: if(flash.f05hz) PORTD |= (1 << PD3);...

    Mikrokontrolery AVR   14 Mar 2009 10:05 Odpowiedzi: 2    Wyświetleń: 1325
  • [ATmega 644p][C] Analizator - problem z przerwaniem

    Tego nie wiedziałem. Zatem zmieniłem główny rejestr próbek na volatile char rejestry[8]; ale dalej nic :(

    Mikrokontrolery AVR   01 Wrz 2010 14:56 Odpowiedzi: 14    Wyświetleń: 3452
  • [Bluetooth, Atmega328p] Atmega328p - Problem z odbiorem znaków przez Bluetooth, kod testowy

    Na szybko - na pewno "znak" powinien mieć w deklaracji słówko "volatile". Ale czy to wszystko? Przetestuj proszę. Razi też: #define F_CPU 1000000L Definiuje się to w środowisku IDE, którego używasz, a nie w kodzie. Dodano po 1 A jeszcze #define FOSC 1000000... Jedziesz na całego widzę ;)

    Mikrokontrolery AVR   19 Paź 2016 10:14 Odpowiedzi: 5    Wyświetleń: 1287
  • Atmega644pa - Timer1 nie odmierza równo 1 sekundy w trybie CTC

    Pamiętaj że sama transmisja też swoje trwa :) a poza tym nie pokazałeś funkcji printf (może ona bawi się w _delay_ms() ?) Zauważ również że przerwanie występuje niezależnie od transmisji, może dochodzić do takiej sytuacji ze raz przerwanie zmienić Ci wartość zmiennej tuż przed transmisją a raz tuż po niej i to spowoduje Twoje opóźnienia. Spróbuj blokować...

    Mikrokontrolery AVR   18 Wrz 2013 14:49 Odpowiedzi: 15    Wyświetleń: 2949
  • [ATmega] ATmega, BASCOM, Borland – jak zmieniać parametry migania LED RC przez PC i EEPROM?

    Zapewne LEDy są katodą do pina komputera? To wynika z tego, że piny portów po resecie są na 0 więc jeżeli ustawisz je jako wyjścia przy takim podłączeniu LED będą świecić. swoją drogą ustaw jako wyjście tylko pin PC0 Dodano po 1 Pewnie wiesz co to VOLATILE: http://mikrokontrolery.blogspot.com/2011...

    Mikrokontrolery AVR   22 Cze 2011 21:44 Odpowiedzi: 161    Wyświetleń: 13590
  • Przeniesienie kodu SPWM z Arduino UNO (ATmega328P) na ATTiny85A – kompatybilność

    Po niewielkich zmianach powinno działać też na Attiny85. Wrzucam kod dla Attiny85 (nie testowany; nie mam jak): [syntax=c]//############################... // SPWM implementation for Attiny85 // Clock frequency 8MHz internal clock oscillator // High Fuse: 0xFF, Low Fuse: 0xE2 // // Signals generated: // - SPWM...

    Arduino   20 Lip 2022 05:51 Odpowiedzi: 25    Wyświetleń: 879
  • ATMega 16: Timer działa, ale uC nie wchodzi do pętli while(1)

    kolejny temat, na ktory odpowiedzia jest 'volatile' - bylo o tym milion razy. 4\/3!!

    Mikrokontrolery AVR   09 Lut 2009 08:50 Odpowiedzi: 3    Wyświetleń: 1380
  • [ATmega32][c] Przerwanie od porównania w timer1 - ograniczenia

    Niestety problem znów się pojawił: Program nie wchodzi do pętli while, gdzie warunek jest niespełniony dopiero po zatrzymaniu dopiero co ustawionego rejestru licznika, próbowałem jeszcze inny sposób, z bitami zmiennej flag ustawianymi w przerwaniach - do przerwania wchodzi, ale jak wróci do programu to nie wychodzi z pętli - tak jakby warunek był cały...

    Mikrokontrolery AVR   21 Lis 2011 17:23 Odpowiedzi: 10    Wyświetleń: 2449
  • ATMega328p - Niedokładne źródło taktowania w dronie, problem z całkowaniem

    Obawiam sie że atmego bez naprawde sprytnie napisanego softu jest po prostu za słaba do tego celu. Wez po uwagę że float mnożenie to ok 2980 taktów zegara przy zmniennych typu volatile. Dla porównania. Dzielenie na pewno więcej. Dane dla innych typów danych: uint8 => 19 cycles uint16 => 24 cycles uint32 => 103 cycles int8 => 37 cycles int16 => 33 cycles...

    Mikrokontrolery AVR   02 Cze 2016 00:06 Odpowiedzi: 7    Wyświetleń: 1005
  • ATMEGA328P - HC-sr04: Timer nie zmienia wartości przy zmianie odległości

    Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...

    Mikrokontrolery AVR   10 Kwi 2017 04:56 Odpowiedzi: 3    Wyświetleń: 927
  • 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
  • [Atmega8] Atmega8, C - Multipleksowanie wyświetlacza 7-seg, wspólna katoda, kodowanie cyfr

    Cześć, Magiczne słowo volatile: http://mikrokontrolery.blogspot.com/2011...

    Mikrokontrolery Początkujący   28 Lut 2013 18:58 Odpowiedzi: 17    Wyświetleń: 2322
  • USART - wysyłanie zmiennych o stałej długości na Atmega, jak formatować?

    Open your mind ;) uart_rx_buffer jest buforem odbioru. Wpis w PS jest poza tematem. Dotyczy dziwnego zachowania kompilatora i nie ma nic wspólnego z kodem z tematu. Poza tym uart_rx_buffer występuje w przerwaniu, dlatego volatile.

    Mikrokontrolery AVR   14 Wrz 2014 17:17 Odpowiedzi: 8    Wyświetleń: 972
  • [Atmega328] [Atmega328][C][PWM] - Jak poprawić jakość dźwięku .wav z karty SD?

    Przyczyna jest w tych linijkach Trzeba też pamiętać, że jeżeli zdefiniujemy tablicę n elementową i spróbujemy zapisać coś pod indeksem równym lub większym n to kompilator nie zgłosi błędu, ale skutkować to może nieprawidłowym działaniem programu.

    Mikrokontrolery   12 Wrz 2013 19:47 Odpowiedzi: 13    Wyświetleń: 3366
  • [C] Jak uzyskać przerwania co 50 ms na ATMEGA328 z Arduino?

    Mam podobny problem z tą właśnie Atmega i programowym PWMem. Korzystam z CTC: [syntax=c] volatile uint8_t pwm1; DDRD=0xFF; //port D jako wyjscie TCCR2A |= (1<<WGM21); //CTC OCR2A = 200; ASSR |= (0<<AS2); TIMSK2 |= (0<<OCIE2A); [/syntax] Przerwanie: [syntax=c] ISR(TIMER2_OVF_vect) { static uint8_t cnt; if(cnt>=pwm1) PORTD |= (1<<PD2);...

    Arduino   30 Maj 2013 20:09 Odpowiedzi: 7    Wyświetleń: 4362
  • [atmega] Zestaw do nauki programowania mikrokontrolerów Atmega dla początkującego

    Niemniej jednak porady o BASCOMie również mi sie niezbyt podobają <: 4\/3!! A w zasadzie dlaczego? Język jak język-można wyrazić co się chce. Kompilatory bywają dobre lub gorsze. A te języki są "wysokiego poziomu abstrakcji". W C to co jest najlepsze to wskaźniki. Od razu mi się spodobały i oczywiste do zrozumienia. Bo to jest to co jest w procesorze....

    Mikrokontrolery AVR   09 Wrz 2009 11:42 Odpowiedzi: 11    Wyświetleń: 2859
  • Atmega 16: Timer2 blokuje Timer0 przy wyświetlaniu na 7-segmentowych wyświetlaczach

    a tak poza tym jak chcesz inkrementować zmienną utworzoną wewnątrz timera która nie ma operatora volatile :?: O której zmiennej piszesz? O zmiennych: Tczas ? - nie ma takiej potrzeby, bo jest to zmienna używana tylko w przerwaniu dlatego deklaracja Static jest prawidłowa? i ? - w pierwszym kodzie wklejonym w tym temacie jest deklaracja volatile. Ale...

    Mikrokontrolery AVR   30 Sie 2011 22:58 Odpowiedzi: 11    Wyświetleń: 1483
  • ATMEGA88 - Brak reakcji na przycisk, wyświetla 0000 na 7-segmentowym wyświetlaczu

    Witaj, O volatile kolega słyszał? Jeśli nie, to czas poczytać: http://mikrokontrolery.blogspot.com/2011... Stosuj nowe funkcje obsługi przerwań ISR(), tym bardziej, że używasz nowe ich wektory: http://www.nongnu.org/avr-libc/user-manu...

    Mikrokontrolery Początkujący   13 Mar 2013 16:27 Odpowiedzi: 19    Wyświetleń: 2421
  • Atmega16L - Dwa sygnały PWM i odczyt z użyciem ADC

    Przykładowy program realizujący przedstawiony przeze mnie sposób. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "LCD.h" volatile unsigned int adcon = 0; ISR(TIMER0_OVF_vect) { static char st; if((st++)%2) { PORTB |= 1<<0; //pb0=0 PORTB &= ~(1<<1); //pb1=1 adcon = ADC; //odczyt...

    Mikrokontrolery AVR   12 Maj 2013 22:14 Odpowiedzi: 12    Wyświetleń: 2640
  • ATmega328P/ATmega644PA - Zawieszanie się mastera przy komunikacji I2C jako slave

    Tak BuF-Status jest volatile. tmf, kod zmieniłem na kod prosto z twojej książki (zip ściągnięty wczoraj). Kod nie tyle się zawiesza co w rejestrze TWDR zamiast danych otrzymuje adres slave`a. Dzieje się tak jeżeli wyślę coś z mastera i po odebraniu chcę wysłać odpowiednie dane.

    Mikrokontrolery AVR   30 Sie 2015 18:46 Odpowiedzi: 4    Wyświetleń: 1008
  • Programowanie robota z mikrokontrolerem ATmega 8A i diodami IR - jak wykrywać dane?

    Hmm.. Wygląda to tak jakby nadajnik przestawał generować przebieg chwilę po uruchomieniu. A spróbuj może podłączyć równolegle z diodą nadawczą jakąś zwykłą diodę led - będziesz widział kiedy sygnał jest nadawany i kiedy przestaje. Druga rzecz, o której zapomniałem, a która może mieć wpływ - dopisz przed deklaracją zmiennych "volatile". volatile bool...

    Początkujący Elektronicy   28 Wrz 2021 04:32 Odpowiedzi: 50    Wyświetleń: 981
  • [ATmega32L] Jak zmusić kompilator winAVR do poprawnej obsługi zmiennej Frame?

    if (Frame.state & READY) f2: 80 91 f1 01 lds r24, 0x01F1 f6: fd cf rjmp .-6 ; 0xf2 <main+0x60> po tym kodzie szacuję, że READY ma wartość równą 0. Odczyt Frame występuje (bo jest oznaczone jako volatile), ale porównania nie ma, gdyż jest zawsze fałszywe (tylko moje spekulacje). Jeśli READY to numer bitu, musisz maskować przez...

    Mikrokontrolery AVR   12 Paź 2008 19:33 Odpowiedzi: 14    Wyświetleń: 1636
  • [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
  • Jak zmierzyć czas trwania impulsu w C na ATMEGA 162?

    Tak jest to dość istotne... Do pomiaru używany jest 16-bit'owy timer 1 (atmega162 ma dwa ale po takim ogólnym rzucie okiem na pdf wygląda na to, że nie ma różnic w konfiguracji)... Co przy częstotliwości taktowania 8MHz prescalerze 8 daje max ~65,5ms przy dokładności do 1us... Poniżej fragment kodu który mierzy czas trwania stanu wysokiego... ... volatile...

    Mikrokontrolery   02 Lis 2007 14:01 Odpowiedzi: 6    Wyświetleń: 7692
  • Atmega 128A - Zapis i odczyt dużych liczb w eeprom przy użyciu języka C

    tak dokładnie jako uint_16_t czyli następująco: volatile uint16_t zmienna = 0; Zastanawiam się czy dobrze mam fusy ustawione - bo nic innego do głowy mi juz nie przychodzi.

    Mikrokontrolery AVR   15 Lis 2020 11:30 Odpowiedzi: 6    Wyświetleń: 582
  • [ATmega162][WinAVR] Timer i odbieranie danych po SPI

    volatile char r1, g1, b1; Popraw deklarację tych 3 zmiennych , by wyglądała j/w i spróbuj ponownie ;) Piotrek

    Mikrokontrolery AVR   16 Cze 2008 23:47 Odpowiedzi: 2    Wyświetleń: 2349
  • ATMega128 - Świecenie 2 diodami na raz ze zmienną częstotliwością

    Kod piszę "na sucho", więc lepiej sprawdź czy działa.[syntax=c] #include <avr/interrupts.h> void timer0_init(void){ TCCR0 = _BV(CS02); //Mode 0, normal operation, prescaler 64 TIMSK |= _BV(TOIE0); //Timer/Counter0 Overflow Interrupt Enable } volatile unsigned long millis=0; volatile unsigned int okresy_migania_ledow[4] = {100,200,300,400}; ISR(TIMER0_OVF_vect)...

    Mikrokontrolery AVR   18 Wrz 2014 22:17 Odpowiedzi: 6    Wyświetleń: 1014
  • [atmega162][c][asm] Deasemblacja - rejestr PIN ciekawostka

    Rozumiem, że nie masz kodu źródłowego? ;) Jako osoba pisząca od wielu lat w C i mająca okazje w tym czasie obejrzeć wiele różnego rodzaju "wynalazków" powiem, że to co napisałeś w pierwszym poście może mieć sens. Tzn. spotkałem się z praktyką pisania kodu testującego flagę bitową w nst. sposób: if ((zmienna & STALA) == STALA) // na ustawienie...

    Mikrokontrolery AVR   18 Cze 2010 14:29 Odpowiedzi: 6    Wyświetleń: 1852
  • 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
  • Atmega168 Bascom - Przerwanie co 5us i odczyt 8 bitów

    optymalizacje mam na -OS, przestawić na O2 lub O3 ?? Przy tak minimalnym kodzie nic to nie zmieni Spróbuj z taką procedurą przerwania: [syntax=c]ISR(INT0_vect, ISR_NAKED) { asm volatile( "pushr24" "\n\t" "inr24, 0x09" "\n\t" "pushr0" "\n\t" "inr0, 0x3f" "\n\t" "pushr0" "\n\t" "pushr1" "\n\t" "pushr25" "\n\t" "pushr30" "\n\t" "pushr31" "\n\t" "ldsr25,...

    Mikrokontrolery Początkujący   18 Lis 2014 09:04 Odpowiedzi: 65    Wyświetleń: 4749
  • [atmega128L][C] problemy z pamięcią równoległą

    Witam, Mam ten sam problem co kolega Beer Bear. Na zdjeciu otrzymuje to samo zaklocenie. Uzywam 2 pamieci rownoleglych po 64kB + zatrzask 573 . Caloscia steruje ATMEGA 64 16MHz. Wyeliminowalem częśc sprzętową, ponieważ sprawdziłem wszystkie połączenia na płytce kilka razy i nie znalazłem żadnego blędu. Wiec pomyślalem sobie ze wina moze tkwic w kodzie...

    Mikrokontrolery AVR   30 Sie 2008 00:37 Odpowiedzi: 9    Wyświetleń: 2373
  • [AVR] Nieaktywny Auto Trigger ADC na ATmega168 przy użyciu Timer0 w trybie CTC

    Masz skasować flagę timera OCF0A [syntax=c]TIFR0 |= (1<<OCF0A); [/syntax] Możesz też włączyć przerwanie od Timera i zostawić pustą obsługę przerwania: [syntax=c] ISR (TIMER0_COMPA_vect, ISR_NAKED) { asm volatile("reti"); } [/syntax] Co spowoduje że cała obsługa przerwania sprowadzi się do RETI

    Mikrokontrolery AVR   16 Gru 2020 20:52 Odpowiedzi: 19    Wyświetleń: 501
  • I2C na ATmega644P: Kod Master nie działa poprawnie, co może być przyczyną?

    witam, napisałem dwa kody na obsługę i2c master(atmega644p): /* * main.c * * Created on: 16 lut 2018 * Author: Mirosław Kardaś * web: www.atnel.pl */ #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <util/delay.h> #include <avr/wdt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h>...

    Mikrokontrolery AVR   25 Sie 2024 22:00 Odpowiedzi: 5    Wyświetleń: 285
  • [Atmega328][Atmega2560][Arduino] - Pomiar czasu propagacji fali 40kHz.

    Całą naukę związaną z błędem już przyswoiłem. Tabele logiczne już wiszą nad biurkiem. Budowa układu jednak dalej trwa i generuje problemy. Nie chcę zakładać następnego tematu, dlatego będę kontynuował pisanie w tym. Kod z pierwszego postu po poprawkach działa bardzo dobrze. Mimo generowania oscylacji, pomiar jest wystarczająco dokładny. Jednak dalej...

    Arduino   16 Lip 2015 20:13 Odpowiedzi: 8    Wyświetleń: 2277
  • Atmega128, AVR Studio, WinAVR Problem z prostym kodem

    Znalazłem conajmniej 2 błędy 1. Zadeklaruj enterRx jako volatile 2. Najpierw przypisujesz zmiennej enterRx wartość 1, a potem sprawdzasz czy zmienna ma wartość '1' (czyli 49) Spróbuj z tymi 2 zmianami i powinno zacząć chodzić Mirekk36, może on ma procedury LCD buforowane (ja zwykle takich używam), wtedy to niebyłby taki wielki błąd, ale wnikał niebędę.

    Mikrokontrolery AVR   16 Lut 2010 23:00 Odpowiedzi: 6    Wyświetleń: 1867
  • AVR/Atmega168/CAVRStudio4 - Delay zrobiony na timerze nie działa - why?

    Zmienna count powinna być volatile .

    Mikrokontrolery AVR   09 Paź 2012 00:32 Odpowiedzi: 2    Wyświetleń: 1650
  • [AtMega 128] LCD wc1602a - brak wyświetlania tekstu, kompatybilność z HD44780?

    a więc w pliku HD44780.c przed każda następującą linią: LCD_E_PORT &= ~LCD_E dodałem : asm volatile("nop"); i dalej echo na wyswietlaczu :/

    Mikrokontrolery   24 Maj 2010 00:09 Odpowiedzi: 29    Wyświetleń: 7608
  • 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
  • Atmega128 [C] - Jak działa wskaźnik w definicji #define ATAPI_Data?

    kod ktory cie tak zaciekawil polega na tym: 1. jest sobie liczba 0x8000 2. chcesz zeby liczba ta traktowana byla jako adres, jak wiadomo adres = wskaznik, wiec dokonujesz rzutowania (u08*)liczba . od teraz dla kompilatora ten zapis bedzie dokladnie tym samym, co gdybys uzyl najzwyklejszej zmiennej wskaznikowej 3. skoro jest to zwykly wskaznik, to mozesz...

    Mikrokontrolery   28 Paź 2008 21:01 Odpowiedzi: 4    Wyświetleń: 4894
  • [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
  • RC5 atmega8 przypisanie przyciskowi konkretna funkcję

    1. Komentuj bogato swój własny kod, bo sam się w nim pogubisz, a i nam trudniej analizować, nie wiedząc co chcesz w danym fragmencie zrobić. 2. deklarujesz zmienną globalną cod , w przerwaniu nadajesz jej wartość cod=code : 2a. ale jej nie używasz w pętli głównej i nigdzie indziej - do czego więc jest? 2b. aby ją wykorzystać w pętli głównej cod musi...

    Mikrokontrolery AVR   04 Sty 2012 03:05 Odpowiedzi: 1    Wyświetleń: 1010
  • 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
  • AVR ATmega - użycie zmiennych z C we wstawce asemblerowej

    http://www.nongnu.org/avr-libc/user-manu... Jeśli znasz trochę angielski to więcej Ci nie trzeba. Pozdrawiam ---------- chwila refleksji uint8_t i; asm volatile("mov %0,r20" :"=r" (i) : );

    Mikrokontrolery   22 Gru 2007 03:24 Odpowiedzi: 1    Wyświetleń: 854
  • AtMega16 język C - zmienna Volatile nie przekazuje wartości z przerwania do main

    a co jest nie tak z pętlą while(1) bo nie mogę się dopatrzeć To, że jest pusta. Stan zmiennej flaga sprawdzasz tylko raz na początku programu, po czym zapętlasz go w pustej pętli. Poza tym sprawdzanie if(flaga=1) jest błędem, zapewne miało być if(flaga==1) - przeczytaj ostrzeżenia kompilatora generowane w czasie kompilacji.

    Mikrokontrolery Początkujący   22 Sty 2015 18:56 Odpowiedzi: 14    Wyświetleń: 1422
  • Programowanie mikrokontrolera Atmega324a-pu dla układu LED - prośba o weryfikację kodu

    teraz już program jako tako działa z główną zmianą Teraz: https://filmy.elektroda.pl/58_1696779169... Teraz jest problem, że w trybie 1 rozjeżdzają się timingi i kolory oraz ich jasność. Tryb 2 za to po osiągnięciu maksymalnej wartości na każdej zmiennej błyska oślepiająco. Nowy kod: [syntax=c]/* * main.c * * Created on: 14 wrz 2023 * Author: Dzieci...

    Mikrokontrolery Początkujący   09 Paź 2023 15:54 Odpowiedzi: 11    Wyświetleń: 825
  • Atmega 8 termometr ds18b20 wyświetlacz hd44780 nie wyświetla pomiaru

    1. Jaki jest cel stosowania: [syntax=c]#define PRZEBIEG_PETLI 8 #define us(num) (num/(PRZEBIEG_PETLI*(1/(F_CPU/1000000.0... inline void therm_delay(uint16_t delay) { while(delay--) { asm volatile("nop"); } } ... therm_delay(us(45));[/syntax] 2. Masz jakieś warningi?

    Mikrokontrolery AVR   05 Wrz 2011 18:03 Odpowiedzi: 11    Wyświetleń: 4014
  • Wstawka asemblerowa do języka c [atmega2560][C+asm]

    Zanim zaczniesz używać asemblera wypadałoby poczytać trochę o tych komendach, co one oznaczają i jak ich używać. Jeżeli używasz assemblera jako wstawki w C, to mnemoniki typu MCUSR nic kompilatorowi nie mówią - musisz używać adresów. Z kolei komenda LDn ma z kilkanaście swoich wersji i powinieneś sprawdzić którą używasz i dlaczego. Jeśli już ładujesz...

    Mikrokontrolery AVR   17 Lut 2022 17:07 Odpowiedzi: 7    Wyświetleń: 540
  • Ładowanie lub odczyt z tablicy w języku C dla atmega 8

    Żeby na 100% nie było różnicy między badanymi stanami pinów podczas kolejnych badań oraz zapisu do rejestru, powinieneś tylko w jednym miejscu odczytać PIND i zapisać w zmiennej. Dopiero zmienną testować i gdy trzeba zapisać do tablicy. Sprawdź (pokaż) jak wygląda zawartość pliku .lss. Może trzeba powalczyć z instrukcją asm volatile("nop"), zeby program...

    Mikrokontrolery Początkujący   16 Gru 2013 17:49 Odpowiedzi: 34    Wyświetleń: 4998
  • Terminal RS232 Uart Atmega328 Atmega644 ATMEL

    1. No ale tu blokujesz działanie całego procesora na niepotrzebnie długi czas. Przy 9600 nadanie 1 bajtu to wieczność. Procesor może wtedy zatańczyć kankana. I to 2 razy ;) 2. Bo można to szybciej zapisać jako: "\r\n" w ciągu formatującym wyświetlanie liczby (printf) 3. Oj wygląd się liczy. I to bardzo. Jak napiszesz program liczący tysiące linijek...

    Artykuły   31 Lip 2016 23:04 Odpowiedzi: 11    Wyświetleń: 3975
  • 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
  • Jak poprawić obsługę RxBuffer dla ciągów znaków w RS-232 na Atmega?

    1. Wszystkie zmienne modyfikowane w przerwaniu powinny być 'volatile'. 2. Po co wyłączać globalnie przerwania w procedurze obsługi przerwania? Poczytaj datasheet - one i tak są wyłączone. 3. Sugerowałbym nie żałować klawisza ENTER - kod, w którym w jednym wierszu jest kilka poleceń jest nieczytelny. 4. Rejestr UDR odczytujesz wielokrotnie w przerwaniu....

    Mikrokontrolery   19 Mar 2009 10:51 Odpowiedzi: 5    Wyświetleń: 1194
  • 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
  • [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
  • Atmega 8 - Przekazywanie wartości zmiennych z przerwania do programu

    Przecież jak zadeklarujesz sobie zmienną pomiar jako zmienną globalną ulotną (volatile), to zawsze będziesz miał jej aktualną wartość wszędzie i nie musisz jej przecież nigdzie wysyłać z przerwania (zresztą się nie da).

    Mikrokontrolery AVR   31 Sie 2012 18:22 Odpowiedzi: 4    Wyświetleń: 2178
  • [atmega8] [atmega8][C] - Timer0 odlicza za szybko przy 8MHz, jak ustawić preskaler?

    Nie chcę grać roli lokalnego guru (zwłaszcza korzystającego z cudzych stron WWW), ale widzę następujące błędy: F_CPU nie defniuje się w kodzie -> http://mikrokontrolery.blogspot.com/2011... Twoje zmienne używane w przerwaniu powinny być volatile -> http://mikrokontrolery.blogspot.com/2011... Nie...

    Mikrokontrolery Początkujący   22 Lip 2013 10:32 Odpowiedzi: 8    Wyświetleń: 1245
  • ATMega328P Arduino - Mniej sprzętowych PWM do dyspozycji niż trzeba

    Raczej nie wydłuży obsługi przerwania,a w przypadku uC wydajniejszych od ATmega wręcz ją skróci, bo modyfikacje zmiennej bez atrybutu volatile zajmują zwykle mniej czasu, niż modyfikacje stanu portu. Być może w AVR jest tak samo - to zależy i od sprzętu i do kompilatora. Po prostu te operacje, które wykonujesz na porcie, należy wykonywać na zmiennej...

    Arduino   06 Gru 2014 20:50 Odpowiedzi: 9    Wyświetleń: 1398
  • Kod w języku C z wstawką asemblerową dla ATmega2560 - przerwanie od watchdoga

    Witam wszystkich, proszę o pomoc w rozwiązaniu problemu w kodzie w języku C ale ze wstawką asemblerową. Poniżej zamieszczam kod. [syntax=c]/* * main.c * * Created: 2/14/2022 1:11:10 PM * Author: Maciej */ #include <xc.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <util/delay.h> #define WDT_ENABLE ISR(WDT_vect)//przerwanie...

    Mikrokontrolery AVR   17 Lut 2022 11:08 Odpowiedzi: 3    Wyświetleń: 465
  • Jak obsłużyć usypianie i wybudzanie ATmega 32 jednym przyciskiem PD2?

    Witam. Zmontowałem przed chwilą i sprawdzone. Zostaje tylko pozbycie się drgań styków klawisza. [syntax=c]#define F_CPU 16000000UL // Atmega644 #include <avr/io.h> /*biblioteka avr*/ #include <string.h> /*biblioteka napisy*/ #include <stdio.h> /*biblioteka podstawowa C*/ #include <stdlib.h> /*biblioteka C*/ #include <stdbool.h>...

    Mikrokontrolery Początkujący   03 Lis 2019 19:57 Odpowiedzi: 21    Wyświetleń: 1020
  • [ATMEGA][BASCOM] Wielokanałowy ściemniacz oświetlenia-wyłącz

    Ja na poważnie. Ale miałem na myśli coś innego. Nie kontrolę czasu ale stałość czasu. C nie gwarantuje wygenerowania konkretnego kodu a jedynie kodu o konkretnej funkcjonalności. Co z miejsca zaprzecza temu że czas wykonywania będzie stały. BASCOM gwarantuje wygenerowanie konkretnego kodu. Co oczywiście jest nieoptymalne, ale gwarantuje określony czas...

    Mikrokontrolery AVR   07 Lut 2010 16:21 Odpowiedzi: 16    Wyświetleń: 5498
  • [ATmega8A] [C] przerywanie timera2 z zew. kwarcem zegarkowym

    1. Volatile: http://mikrokontrolery.blogspot.com/2011... 2. Tryb asynchroniczny: 1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2. 2. Select clock source by setting AS2 as appropriate. 3. Write new values to TCNT2, OCR2, and TCCR2. 4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB...

    Mikrokontrolery AVR   28 Cze 2017 09:30 Odpowiedzi: 3    Wyświetleń: 867
  • [atmega16] [atmega16][c/avr-gcc] UART w przerwaniach - nieoczekiwane działanie programu

    Oto kod: Nie wiem, czy to może być przyczyną, ale taka deklaracja oznacza "wskaźnik na ulotne dane", a potrzebny jest "ulotny wskaźnik" czyli [syntax=c] char * volatile wskaznik; [/syntax] Oczywiście volatile z przodu też może być niezależnie.

    Mikrokontrolery AVR   29 Cze 2012 11:49 Odpowiedzi: 25    Wyświetleń: 2454
  • [atmega8] [atmega8][c] - Timer0 nie zmienia wartości zmiennych licznik i czas

    1. Do tego co napisał Fredy wyżej: http://mikrokontrolery.blogspot.com/2011... 2. Zmienną akt_wyswietlacz zdefiniuj sobie jako lokalną statyczną w funkcji przerwania. 3. F_CPU definiuj w opcjach, a nie w kodzie: http://mikrokontrolery.blogspot.com/2011... 4. W jakim celu zerujesz TCNT2 w przerwaniu...

    Mikrokontrolery AVR   20 Gru 2012 00:39 Odpowiedzi: 4    Wyświetleń: 1293
  • Jak zmusić WinAVR do kompilacji instrukcji w pętli nieskończonej?

    Podpinam sie pod wątek. Sytuacja jest podobna. Oto kod, z ktorym nie moge sobie poradzic: #include <avr/io.h> #include <avr/interrupt.h> #define tau0 0; volatile unsigned char liczt=0; int main(void) { DDRD=0xFF; TIMSK=1<<TOIE0;//zezwolenie na przerwania od TC0 TCNT1=tau0; //wpisz stałą czasowa do TCNT0 TCCR0=0x07; //preskaler...

    Mikrokontrolery   30 Mar 2006 16:41 Odpowiedzi: 9    Wyświetleń: 1479
  • Gdzie podłączyć piny SEL1, SEL2, A0, A1 na EVBnet02 Propox z Atmega128?

    Te wyprowadzenia są podłączone pod kontroler pamięci (zob. str. 33 w MMnet02_pl.pdf). Też się męczę z tym LCD. On jest podłączony w trybie mapowania pamięci, na rejestrach 0xff04 i 0xff05. Próbowałem z Nut/OS przez driver hd44780_bus jak również przez lcdlibrary i nic. Zastanawiam się, czy dobrze ustawiam rejestr MMnet02_CONF, ale sprawdzałem różne...

    Mikrokontrolery   04 Paź 2011 18:00 Odpowiedzi: 2    Wyświetleń: 1160
  • Atmega8 - Timer1 nie odlicza czasu przy kwarcu 16MHz i preskalerze 64

    Zmienna sek powinna być volatile: http://mikrokontrolery.blogspot.com/2011... ssek natomiast zrób statyczną w funkcji przerwania: unsigned tam gdzie liczby nie będą ze znakiem. Wprawdzie ani godziny, ani minuty, czy też sekundy nie przekroczą maksymalnych ich wartości, ale porządek warto mieć. Poza tym, taktujesz swój mikrokontroler...

    Mikrokontrolery AVR   08 Gru 2014 22:35 Odpowiedzi: 7    Wyświetleń: 1065
  • Kompilator pomija pętlę do-while w kodzie C - jak to naprawić?

    Treść linku - Znam i rozumiem. uC to ATmega 16. Jeżeli możesz, wytłumacz mi : cytat od "tmf"" "#define PIN(x) (*(&x - 2)) To jest błędne. Powinno być volatile, ....." Co miał na myśli, jak z tego zrobić volatile. Czy chodziło Mu o to: unsigned char volatile zmienna; zmienna=PINA; lub zmienna=PIN(PORTA); a dalej, już w kodzie: }while(zmienna...

    Mikrokontrolery AVR   15 Lut 2012 22:41 Odpowiedzi: 40    Wyświetleń: 3279
  • [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
  • [ATMEGA16] [ATMEGA16][C] Problem z wykrywaniem przycisków do zmiany numeru serwa

    Już prawie masz to, co trzeba. Jeśli zmienna timer zwiększana jest co 20 ms, to zrób: if (timer >= 2) { /* albo więcej, ale 40ms to i tak dużo */ uint8_t zmiany = debounce(); /* wersja freddiego */ timer = 0; if (zmiany & _BV(PIN_MINUS)) servonumber -= 1; if (zmiany & _BV(PIN_PLUS)) servonumber...

    Mikrokontrolery   12 Wrz 2008 10:58 Odpowiedzi: 21    Wyświetleń: 6887
  • [C] ATmega 128: Operacje na tablicach z danymi z czujników, sumowanie i średnia

    Odpowiednie typedefy są w nagłówku stdint.h Co do podziału pomiędzy przerwanie a program główny to pewnie zapomniałeś modyfikatora volatile przy deklaracji zmiennych, które są dzielone pomiędzy przerwaniem a main(). Co do "tablicy czujników": struct czujnik { uint8_t adres; /* do wyboru czujnika na szynie */ uint8_t ileProbek; uint16_t probki[ROZMIAR];...

    Mikrokontrolery AVR   27 Maj 2010 23:11 Odpowiedzi: 18    Wyświetleń: 2115
  • [ATMEGA16/32] ATMEGA16/32 AVR-GCC: Zapętlanie programu przy użyciu timerów i przerwań

    Czy zmienną counter (inkrementowaną prawdopodobnie w przerwaniu) masz zadeklarowaną jako volatile ? Jeśli nie, to kompilator najprawdopodobniej zoptymalizuje porównanie (counter<=nr) jako warunek zawsze spełniony lub zawsze nie spełniony do momentu zakończenia pętli, w której przecież żadna ze zmiennych porównywanych się nie zmienia.

    Mikrokontrolery AVR   14 Sty 2011 18:39 Odpowiedzi: 2    Wyświetleń: 1688
  • [ATMEGA][C] Program z atm8 nie działa na atm16 - przerwania

    A jesteś pewien, że właściwie ustawiłeś typ procesora? A BTW, czego się spodziewasz po "asm volatile("SEI");"? Powinno być "__asm__ __volatile__ ("sei" ::: "memory")". To oczyewiście nie jest przyczyna zawieszania się programu, ale na przysżłość pozwoli ci uniknąć paru problemów.

    Mikrokontrolery AVR   29 Cze 2010 14:40 Odpowiedzi: 6    Wyświetleń: 1640
  • [Atmega16] [Atmega16][C][WinAvr] Konwersja kodu ASCII na liczbę na LCD i UART

    dzień dobroci. #include "konfig.h" // sugerowalbym nazwy typu "config.h" volatile char Temp; // skoro odbierasz znak, to po co komu 16-bitow? ISR(USART_RXC_vect) { //Temp=0; // zbedne Temp=UDR; if (Temp=='1') // przynajmniej wiadomo o co chodzi { UDR=Temp; //echo tego co wysyla } } int main(void)...

    Mikrokontrolery AVR   27 Mar 2009 07:20 Odpowiedzi: 5    Wyświetleń: 3517
  • [AVR ATMEGA 8 C] Multipleksowanie, problem z inkrementacją

    Zmienna liczba musi być typu volatile, to tak na szybko. ;) Dodano po 13 No zrób jakieś opóźnienia, żeby wyeliminować drgania styków.

    Mikrokontrolery AVR   10 Lip 2009 16:30 Odpowiedzi: 2    Wyświetleń: 1191
  • [atmega16] [atmega16][c] Jak zainicjować stos z makrem RAMEND dla różnych procesorów?

    Interesuje mnie jak napisać kod korzystając z makra RAMEND które od razu uzupełni rejestr Y. No przecież już go napisałeś: static void __start(void){ asm volatile ( "out __SP_L__, %A0" "\n\t" "out __SP_H__, %B0" "\n\t" "clr __zero_reg__" "\n\t" "out __SREG__, __zero_reg__"...

    Mikrokontrolery AVR   26 Lut 2010 20:44 Odpowiedzi: 6    Wyświetleń: 3726
  • ATMega128A - USART PC - Problem z przesyłaniem danych przez USB<->RS232

    Witam. Próbuję przesłać i odebrać znak pomiędzy atmega128 a putty. ATmega taktowana kwarcem 14.7456MHz. Korzystam z przejściówki USB<->RS232 (z atmega32 działa). RXD/TXD skrosowane. KOD: uart.c : [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include "uart.h" volatile char c_in; // odebrany znak...

    Mikrokontrolery AVR   23 Paź 2014 14:20 Odpowiedzi: 9    Wyświetleń: 1761
  • [ATMega168] Jak obsłużyć przerwania przycisków i timera w ATMega168 z kwarcem 32,768 kHz?

    Oprócz tego co napisał janbernat: czy zmienna second jest zadeklarowana jako volatile? Jeżeli nie to tak zrób, a tutaj jest wytłumaczenie dlaczego: http://mikrokontrolery.blogspot.com/2011... Pokazuj cały swój program, a nie tylko wycinki.

    Mikrokontrolery Początkujący   20 Gru 2011 10:00 Odpowiedzi: 31    Wyświetleń: 5114
  • Atmega1284p [C] - Bezpośredni dostęp do RAM - generowanie obrazu VGA

    Witam. Realizuję prosty projekt generatora wideo na VGA opartego o Atmegę1284p - obraz jest generowany z pamięci RAM dosyć chałupniczą metodą: aby osiągnąć rozdzielczość 53x240 pikseli (!) tworzę 53 tablice (rozdzielczość pozioma) uint8 o rozmiarze 240 wpisów (rozdzielczość pionowa) a następnie ustawiam PORTC po kolei każdą tablicą o indeksie linii....

    Mikrokontrolery AVR   10 Sie 2014 09:23 Odpowiedzi: 24    Wyświetleń: 5016
  • 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
  • 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
  • Atmega2560: brak reakcji na przerwanie INT2 podczas trybu uśpienia - kod i konfiguracja przerwania

    2 i 3 działają na LOW, 18,19,20 i 21 również na CHANGE. [syntax=c]#include <avr/sleep.h> //dziala z arduino 1.6.12, gorzej ze starszymi np 1.6.9 #define ledPin 13 #define interruptPin 19 //numer pinu przerwania, np. 2,3,18,19,20,21 #define przerwanie 2 volatile boolean flag; void setup() { pinMode(ledPin, OUTPUT); pinMode(interruptPin, INPUT_PULLUP);...

    Arduino   11 Sty 2021 11:29 Odpowiedzi: 8    Wyświetleń: 519
  • [ATmega128][C]przerwania nie wracają, reset uC: fuse M103C

    Kurdę no przerwanie jest wywoływane co 310us a to jest bardzoooo wiele cykli zegara na to by mogła się wykonać cała pętla while, cały czas nie rozumiem czemu na atmega 16 działa a na atmega128 nie chce działać :/ sprawdzałem bity ustawiające timer i przerwanie, są one takie same dla mega 16 i 128 więc nie wiem w czym jest problem :( Ten program działa...

    Mikrokontrolery AVR   08 Gru 2009 21:36 Odpowiedzi: 11    Wyświetleń: 2826
  • ATmega1284P - ADC nie kończy przetwarzania, brak flagi zakończenia

    Witam, Usiłuję zmuśić Atmegę1284 do przetworzenia wartości przetwornikiem ADC, no i analizując kontrolne debugi na UART, przetwarzanie rozpoczyna się ale nie kończy (układ nie wystawia flagi), oto kod [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include "uart.h" #include <avr/signal.h> #include <avr/delay.h> #define...

    Mikrokontrolery AVR   08 Paź 2013 21:43 Odpowiedzi: 7    Wyświetleń: 1383
  • ATMEGA [C] - Przechowywanie nazw portów i pinów w tablicy lub strukturze

    A może coś takiego [syntax=c] typedef struct{ u08 b0:1; u08 b1:1; u08 b2:1; u08 b3:1; u08 b4:1; u08 b5:1; u08 b6:1; u08 b7:1; } volatile IO; IO * const pora=(IO*)&PORTA; #define PORTA0 pora->b0 #define PORTA1 pora->b1 ... [/syntax]

    Mikrokontrolery AVR   14 Lip 2014 19:12 Odpowiedzi: 7    Wyświetleń: 2013