static volatile

Znaleziono około 1067 wyników dla: static volatile
  • Jak zdefiniować i użyć zmiennej static w funkcji - stan_zmiennej

    Umieść cały kod. Fragment, który przysłałeś na PW [syntax=c] void loop() { digitalWrite( napiecie, HIGH); // wyjscie na pinie 5v dla testu digitalWrite( niskie, LOW); // wyjscie na pinie 0v dla testu static volatile int stan; if (stan != digitalRead(przeslona)) // jesli pin ma 5v stan = digitalRead(przeslona); { stepper.moveDegreesCW (180); delay(1000);...

    Arduino   16 Wrz 2018 12:21 Odpowiedzi: 3    Wyświetleń: 870
  • REKLAMA
  • [ATMega8][c] - problem z tablicą uzupełnianą w przerwaniu

    Wystarczy policzyć. 19200 bps = 1920 znaków na sekundę, czyli znak co ~0,5 ms. Przy taktowaniu 4MHz masz +/- 2080 cykli procesora pomiędzy przerwaniami od UARTa, czyli duuużo czasu na wykonywanie instrukcji w pętli głównej. Na Twoim miejscu skupiłbym się na przetwarzaniu tekstu np. linia po linii - przerwanie wypełnia bufor, a po wykryciu sekwencji...

    Mikrokontrolery AVR   03 Paź 2009 19:03 Odpowiedzi: 21    Wyświetleń: 2950
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • FreeRTOS: Jak używać semaforów do synchronizacji wątków worker1 i worker2?

    Po co Ci zerowanie semafora ? Semafor binarny liczy do 1, więc nie musisz w nim niczego zerować. Generalnie najprostszy semafor działa mniej więcej tak: [syntax=c] static volatile int semCount; Take(){ while(count > 5); count++; } Give(){ count--; }[/syntax] Jest to bardzo prymitywna konstrukcja, ale tak to mniej więcej działa. Binarny poprostu liczy...

    Mikrokontrolery   03 Lut 2012 14:32 Odpowiedzi: 12    Wyświetleń: 3013
  • REKLAMA
  • atmestudio blad "recipe target ''nazwa.elf'' failed

    Nie znam Atmel Studio, ale jako że korzysta ono z klasycznego make-a... Wygląda, że "grzebnąłeś" sobie gdzieś w opcjach projektu, ewentualnie w automatycznie wygenerowanym pliku Makefile. Najlepiej wklej ten plik tutaj. No chyba, że włączona jest opcja "treat warnings as errors" (czego nie widzę). Aby zlikwidować to ostrzeżenie po prostu dodaj brakujący...

    Mikrokontrolery Początkujący   04 Sie 2019 18:20 Odpowiedzi: 15    Wyświetleń: 2184
  • Obsługa przerwań w C: problem z diodami i wyświetlaniem czasu na LCD

    A sznowny kolega "czuje różnicę" pomiędzy: local , global, static , const ,volatile itd. :?: void Timer0(void) interrupt 1 { unsigned int licznik; licznik++; if (licznik == 300) // gdy zmienna licznik jest równy 4000 /*......................................... Piotrek

    Mikrokontrolery   08 Sty 2007 21:48 Odpowiedzi: 4    Wyświetleń: 1722
  • REKLAMA
  • STM32F0Discovery - TIM1 Input Capture CH1 Konfiguracja i GPIO (bez ST library)

    Pas. static volatile uint32_t get_counter;

    Mikrokontrolery ARM   21 Lis 2013 14:48 Odpowiedzi: 35    Wyświetleń: 3888
  • Czy zmienna `volatile uint8_t` ma domyślną wartość 0?

    Wydaje mi się że to zależy od kompilatora. Taka deklaracja nie zeruje zmiennej, czy kompilator ją niejawnie wyzeruje to zależy od niego. Nawet jeżeli ja zeruje to lepiej zawsze napisać; volatile uint8_t accel_decel_counter = 0; Wtedy program jest jaśniejszy, a dobry kompilator i tak to przypisanie zrobi tylko raz. Standard języka C tego nie definiuje...

    Mikrokontrolery   24 Paź 2010 22:17 Odpowiedzi: 27    Wyświetleń: 2865
  • [Atmega8, C] Stacja lutownicza - multipleksowanie LED

    Eee, prościzna - zapomniałeś dać volatile w deklaracji. ;) całkiem poprawnie byłoby: static volatile uint8_t Znak;

    Mikrokontrolery AVR   21 Mar 2013 23:15 Odpowiedzi: 11    Wyświetleń: 2856
  • [atmega8][c] - Sterowanie 5metrowym paskiem led rgb

    Napewno [syntax=c]static volatile uint8_t cnt;[/syntax] Jeśli ta zmienna ma być modyfikowana w przerwaniu.

    Mikrokontrolery AVR   06 Wrz 2012 20:03 Odpowiedzi: 8    Wyświetleń: 6381
  • [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
  • Jak aktywować wewnętrzny RAM 2kB w ADuC842 w Keilu?

    chodziło mi o xdata static volatile .... jak nie zerowałem w pętli, albo inaczej ustawiałem to zawsze pozostawały śmieci albo wartości z przed resetu.Może coś źle robiłem.

    Mikrokontrolery   03 Lis 2006 00:38 Odpowiedzi: 21    Wyświetleń: 2436
  • C - jak poprawnie przypisać wartości do struktury PWM_data?

    zadeklaruj jako static w przerwaniu - jako volatile Zmienne używane globalnie + w przerwaniach powinny być volatile. Wtedy kompilator ci ich nie "zniszczy". Doskonały opis volatile w http://mirekk36.blogspot.com/2011/08/tes...

    Mikrokontrolery   03 Sty 2012 22:12 Odpowiedzi: 11    Wyświetleń: 1481
  • REKLAMA
  • Atmega16 C - Regulacja obrotów wentylatora timerem w trybie CTC

    Wydaje mi się że nie. Ale wstawiłem dla pewności : [syntax=c] ISR( TIMER0_COMP_vect ) { static volatile uint8_t cnt; if(cnt>=pwm1) PORTB &= ~(1<<PB3); else PORTB |= (1<<PB3); cnt++; } [/syntax] I nie pomogło.

    Mikrokontrolery AVR   11 Kwi 2013 23:23 Odpowiedzi: 9    Wyświetleń: 1692
  • Równoczesny pomiar temperatury i napięcia ADC1 STM32F411RE

    Nie dodawałem struktury oraz tablicy do której jest odwołanie w pętli, bo jest spora i nie jej problem dotyczy. [syntax=c]#include "stm32f4xx.h" static volatile uint16_t wyniki[3]; static void MX_DMA_Init(void); static void MX_ADC1_Init(void); while (1) { DP[0].wartosc = 5.f*(wyniki[0])/4096; } static void MX_ADC1_Init(void) { RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;...

    Mikrokontrolery ARM   24 Mar 2021 15:09 Odpowiedzi: 4    Wyświetleń: 606
  • AVR - jak radzić sobie z fusebitami i ograniczeniami 8-bit?

    "const/static/volatile to magiczne zaklęcia dla mikrokontrolera, który wie, że oto czyta specjalne i bardzo bardzo ważne tajemnicze instrukcje, które musi wykonać dokładnie tak jak napisano i bez żadnych nadinterpretacji". Klaatu... verata... n... Necktie. Nectar. Nickel. Noodle. Nie rozumiem. To Twoje wytłumaczenie tych pojęć? Czy może imputujesz...

    Projektowanie i Tworzenie Po godzinach   30 Sty 2020 18:45 Odpowiedzi: 368    Wyświetleń: 17232
  • Jak działa skanowanie klawiatury matrycowej w C? Co to jest upperNibble?

    240 Hz na dwie cyfry na wyświetlaczu powinno być ok. ;) [syntax=c] // zmienne statyczne static volatile _Bool new_key = 0; static volatile uint8_t key; // kod do wstawienia w procedure obslugi przerwania { static uint8_t tdiv; static _Bool was_released = 0; static const keys[] = {tu wpisy kolejno kodz klawiszy}; // powinno byc PROGMEM if ((++ tdiv &...

    Mikrokontrolery Początkujący   20 Gru 2012 20:07 Odpowiedzi: 16    Wyświetleń: 3018
  • Zmienna nieulotna w funkcji. [C]. Jak ją zadeklarować?

    Potrzebuję zmiennej lokalnej ale nie ulotnej. Mam kilkanaście procedur które filtrują sygnały i potrzeba mi kilkadziesiąt buforów próbek które oczywiście muszą być niezmienne aby kolejne wywołania funkcji filtrujących poprawnie aktualizowało mi wyjście filtrów. Na razie mam wszystkie zmienne jako globalne volatile ale robi się niezły bałagan. Każdy...

    Mikrokontrolery   16 Sty 2010 23:38 Odpowiedzi: 56    Wyświetleń: 5588
  • UART - odbiór w przerwaniu zwraca KKKKKKKKKKK, nadawanie działa

    Kod poprawiony w oparciu o to co napisałeś: "Można to zrobić na 2 sposoby: albo modyfikujesz indeks widziany przez przerwanie po odczycie/zapisie (z grubsza tak miał działać kod autora wątku, ale nie do końca tak działał), albo blokujesz przerwania na czas operacji na buforze/indeksie (mało eleganckie)." [syntax=c] // UART1 output buffer #define TXBUF_SIZE32...

    Mikrokontrolery ARM   25 Lis 2013 23:58 Odpowiedzi: 24    Wyświetleń: 2970
  • ATmega128 i PCF8583: brak wyzwalania przerwania INT4, jak rozwiązać?

    OK, ale sam program po wyrzuceniu wszystkich dodatków to nadal prawie 500 linii. Więc zamieściłem tylko część inicjującą. Czy coś przeoczyłem? static volatile unsigned char key1=0, key2=0, key3=0, key4=0; static volatile unsigned char odczyt_keys=0; static volatile unsigned char odczyt_time=0; SIGNAL(SIG_INTERRUPT6) { if(!(PINB&0x01))...

    Mikrokontrolery AVR   22 Lut 2011 18:12 Odpowiedzi: 16    Wyświetleń: 2087
  • [STM32] Konfiguracja SysTick dla FATfs na STM32 - problem z dekrementacją Timer1

    static volatile DWORD Timer1, Timer2; z kolei DWORD to: typedef unsigned longDWORD; probowalem tez wpisywac dokladnie takie same wartosci ja Ty w Twojej funkcji i nic nie pomogło pozatym do obslugi przerwania ustawilem migajaca diodke, jesli sie nie myle od razu po wywolaniu funkcji: SysTick_Conf(); powinno to przerwanie sie generowac co 10ms a wogole...

    Mikrokontrolery ARM   26 Mar 2011 21:14 Odpowiedzi: 4    Wyświetleń: 2579
  • [ARM] [ARM][C] Jak unikać zmiennych globalnych w embedded C? Struktury i wskaźniki

    [syntax=c]static volatile RX_Protocol protocol; volatile RX_Protocol * Get_Handler(void) { return &protocol; }[/syntax] Ten kawałek kodu nie uważam za coś niezwykłego, po prostu tworzy zmienną globalną, z ograniczeniem jej widoczności a poprzez getter przekazuję wskaźnik na nią aby mieć dostęp do jej pól, jest to zwyczajna ukryta struktura, która jest...

    Programowanie   15 Lis 2017 10:13 Odpowiedzi: 19    Wyświetleń: 921
  • Klawiatura matrycowa na liniach multipleksu - jak to ogarnąć?

    [syntax=c] #define BUTTONS_MASK (M1|M2|M3|M4) static volatile uint8_t pressed[4]; ISR(TIMER0_COMP_vect) { static uint8_t licznik; static uint8_t previous[4]; uint8_t current; if (licznik==0) { // wysyłka SPI MULTIPLEX1_ON; } else if(licznik == 1) { ... } //else ... itd asm volatile("nop"); current = PINA; //sprawdzamy stan portu przycisków pressed[licznik]...

    Mikrokontrolery AVR   31 Mar 2019 20:56 Odpowiedzi: 48    Wyświetleń: 2532
  • Arduino sterowanie przyciskiem z dwoma stanami Short i Long

    https://github.com/diymat/ARM-blog-libra... co prawda do ARM ale przerobić sobie do użycia na AVR to nie problem. Biblioteka z callbackami i 5 stanami key-up key-down, click, długi click i double click. [syntax=c] static volatile BUTTON_Status_T Buttons[NKEYS]; [/syntax] Volatile dla całej tablicy struktur. To już świadczy o kiepskiej...

    Arduino   18 Wrz 2017 10:59 Odpowiedzi: 4    Wyświetleń: 1350
  • [ATmega32L] Jak zmusić kompilator winAVR do poprawnej obsługi zmiennej Frame?

    ciastek4 : Ale po co ukrywanie zmiennej globalnej, skoro ona właśnie ma być widoczna w innym module. Wiem. Może nie jasno się wyraziłem. Moje stwierdzenie wczesniejsze jest odpowiedzia na pytanie w 1 poście: Czy jest jakis sposob zeby kompilator to normalnie skompilowal zeby nie pisac tego w asemblerze ? Odpowiedź : usuń static w deklaracji zmiennej....

    Mikrokontrolery AVR   12 Paź 2008 19:33 Odpowiedzi: 14    Wyświetleń: 1636
  • [atmega8] Obsługa przerwań zewnętrznych. Jedno przerwanie następujące po drugim.

    Witam Otóż mam taki dylemat ... Mam taki prosty programik robiący mi za licznik modulo 8. Samo liczenie odbywa się w przerwaniu timer'a ale to nie jest kwestia którą chce poruszyć. Po wywołaniu zewnętrznego przerwania, nie da się go przez czas paru/parunastu sekund wywołać. Czego to może być wina ? (pomijając że moja). Czy przypadkiem nie powinno to...

    Mikrokontrolery AVR   01 Lis 2011 00:15 Odpowiedzi: 48    Wyświetleń: 6431
  • avr - prośba o sprawdzenie programu w kwesti oszczędzania energii

    Pod względem oszczędzania mocy powinieneś oszczędzać instrukcje. 1. Niepotrzebna zmienna sleep i jej obsługa. 2. Wielokrotnie wpisujesz wartości rejestrów w pętli (przykładowo ADMUX). Wystarczyłoby chyba zrobić to przed pętlą 3. int x = ADCret(); tego też raczej kompilator nie ma szans zoptymalizować. Lepiej użyć zmiennej globalnej. 4. static volatile...

    Mikrokontrolery AVR   26 Sty 2015 19:56 Odpowiedzi: 10    Wyświetleń: 1161
  • AVR atmega8515 - Jak uniknąć nadpisywania zmiennych globalnych?

    To co niżej zasugeruje nie musi Ci pomóc ale spróbuj wykonać. Zmienną globalną zadeklaruj jako: static volatile DATACNT W ten sposób powiesz kompilatorowi aby ochronił jej stan przed przypadkową modyfikacją. Z problemem nie panowania nad wartością zmiennej globalnej sam biłem sie tracąc czas i nerwy. Jak się okazało przerwania powodowały nadpisywanie...

    Mikrokontrolery   09 Lis 2006 00:54 Odpowiedzi: 8    Wyświetleń: 2865
  • [atmega8L][c + winavr] rs232 - problem z transmisją

    Witam, Mam problem z transmisją szeregową na ATMEGA8L. Próbowałem wszystkich znalezionych na forum możliwości ale nic nie pomogło. Może zacznę od połączeń: atmega8l <-> MAX3232 <-> PC MAX-sior (właściwie zamiennik SP3232ECP) podłączony jest według zaleceń datasheet'a. Miedzy MAX-em a PC-tem jest zwykły kabel rs232 (w sensie, że nie przejściówka...

    Mikrokontrolery AVR   04 Sie 2010 19:51 Odpowiedzi: 6    Wyświetleń: 1824
  • Jak poprawnie odbierać stream w radiu internetowym na stm32f4+esp8266?

    Witam mam problem z "pożenieniem" tego wszystkiego funkcja odbierająca stream [syntax=c]void HAL_UART_RxCpltCallback(UART_HandleTypeD... * uart) { if (esp_recv_char == esp_pattern[esp_char_counter]) { esp_char_counter++; if (esp_char_counter == 5) { esp_recv_mux = uart_read_char(uart); uart_read_char(uart); char length_str[5]; char current_char = 0;...

    Mikrokontrolery Początkujący   30 Kwi 2019 11:34 Odpowiedzi: 4    Wyświetleń: 807
  • Częstościomierz na AT90S2313 - problem z wyświetlaniem na LCD 0 i 1

    Cześć, potrzebuję zmierzyć częstość rzędu kilkudziesięciu kHz a nie mam oscyloskopu. Zrobiłem coś takiego: AT90S2313 + LCD na PORTB; na INT0 mierzony sygnał a na INT1 50 Hz z sieci przez transoptor i 7414. Powinno działać, ale na LCD widać na zmianę 0 i 1. :( Przebiegi na INT obecne. Nie mam pojęcia, dlaczego nie działa, może ktoś z Was wskaże jakieś...

    Mikrokontrolery   12 Lut 2006 17:05 Odpowiedzi: 4    Wyświetleń: 1425
  • STM32F0Discovery - Jak rozwiązać konflikt przerwań TIM2 i TIM3?

    Sorry. testy nie byly po kolei. Teraz juz sa: [syntax=c] volatile int xx = 1; volatile int k; static inline void bitband_str_prepare(void) { asm volatile(" \n" "movw r7, #0x84A8 \n" "movt r7, #0x4225 \n" ); } static inline void bitband_str(void) { asm volatile(" \n" "str r6, [r7] \n" ); } static inline void ram_str_prepare(void) { asm volatile(" \n"...

    Mikrokontrolery ARM   31 Paź 2013 10:15 Odpowiedzi: 91    Wyświetleń: 7725
  • ATmega32, C, przerwanie ADC - program przestaje działać po kilku minutach

    janbernat ---> eeej no co ty opowiadasz że traktuję cię jak początkującego czy jeszcze gorzej jak piszesz - bzdura! Po prostu wiem też że zaczynasz chyba pisać w C i stąd może jakieś dziwne czy nieoczekiwane dla ciebie rzeczy się dzieją. Np dodawanie przydomka volatile do zmiennej static test w przerwaniu nie ma najmniejszego sensu, skoro jest ona wykorzytywana...

    Mikrokontrolery AVR   12 Kwi 2011 19:37 Odpowiedzi: 13    Wyświetleń: 2524
  • UART Atmega8 przesylanie wartosci z ADC i generowanie PWM

    Tak krótki komunikat można obsługiwać w przerwaniu od odbiornika UART. Przykładowo, kiedyś robiłem tak: [syntax=c]// Przerwanie odbiornika ISR( USART_RX_vect ) { static volatile uint8_t i=0; uint8_t znak; znak = UDR; // pobranie znaku z bufora sprzętowego switch(stank) { // Jeśli pojawi się znak $ pobierz komunikat case 1: if(znak=='$') stank=2; else...

    Mikrokontrolery AVR   21 Kwi 2016 22:34 Odpowiedzi: 25    Wyświetleń: 1482
  • ATMEGA88 - Jak zwiększyć zakres PWM do 0-1023 w języku C?

    Zrób to sobie programowo np. weź timer0 i ustaw podstawę czasu tak aby co określony czas timer zgłaszał przerwanie czy to przepełnienia czy porównania w tym przerwaniu umieść np. taki kod [syntax=c] //gl_OCR1 to zmienna globalna pełni funkcje identyczną jak OCR1 uint16_t volatile gl_OCR1 ; ISR(wektor) { static uint16_t zm; if(zm<gl_OCR0) PORTA&=~(1<<PA0);...

    Mikrokontrolery AVR   13 Maj 2017 13:36 Odpowiedzi: 5    Wyświetleń: 1404
  • Stoper na ATMEGA 128 z wyświetlaczem HD44780 i klawiaturą - jak zacząć?

    #include <inttypes.h> #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> #include "lcd.c" #define LED_ON (PORTB|=(1<<4)) #define LED_OFF (PORTB&=~(1<<4)... #define LCD_LIGHT_ON PORTB|=_BV(6) #define LCD_LIGHT_OFF PORTB&=~_BV(6) #define...

    Mikrokontrolery   14 Sty 2008 22:26 Odpowiedzi: 8    Wyświetleń: 3614
  • [STM32F4] TIM2->PSC nie działa z HC-SR04 na STM32F401VCT6

    Hej. Pacjent to STM32F401VCT6 taktowany domyślnym zegarem wewnętrznym 16MHz. Uruchomiłem sensor HC-SR04 wykorzystując TIM2 do zliczania długości impulsu ECHO wykorzystując tryb capture oraz DMA. Do rejestru TIM2->PSC ładuje 15, ponieważ chcę aby wartość CNT inkrementowała się co 1us. Kod źródłowy poniżej: [syntax=c] #include "stm32f4xx.h" static...

    Mikrokontrolery ARM   10 Kwi 2019 22:07 Odpowiedzi: 2    Wyświetleń: 726
  • [STM32][C] Błąd kompilacji przy inkrementacji const volatile zmiennej

    Cześć, Mam taki fragment kodu: [syntax=c] static const volatile uint32_t systick = 0; uint32_t GetTimeUs(void) { return systick; } void HAL_SYSTICK_Callback() { systick++; }[/syntax] który się nie kompiluje, dostaję taki błąd kompilacji. [syntax=c]../Application/Time.c:31:19: error: increment of read-only variable 'systick'[/syntax] Z tego co wiem powinno...

    Mikrokontrolery ARM   15 Kwi 2019 17:07 Odpowiedzi: 8    Wyświetleń: 1524
  • Zasilanie ATMEGA i transmisja IR w modyfikacji Ericsson ChatBoard

    #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> char s[] ="0101011010101010101010101010"... static volatile unsigned int a; SIGNAL (SIG_OVERFLOW1){ TCNT1H = 0xd9; TCNT1L = 0x99; PORTB=s[a++]&0x01; if(a==27)a=0; } int main(void) { DDRB=0xff; TCNT1H...

    Mikrokontrolery   08 Wrz 2005 20:50 Odpowiedzi: 16    Wyświetleń: 4476
  • zestaw uruchomieniowy AVR ,filtracja i Atmel Studio

    Stad też często dla celu debug stosuje się optymalizację na poziomie 1 (O1) lub nawet 0 (O0). Ja wolę zadeklarować jako static a czasem aby śledzić stan w pracy krokowej trzeba jeszcze dodać volatile. Czyli na okrętkę robisz to co robi -O0. static wprowadza tyle różnic w stosunku do normalnej deklaracji zmiennej, że powstaje pytanie o sens takiego...

    Mikrokontrolery AVR   22 Lip 2017 22:46 Odpowiedzi: 117    Wyświetleń: 6828
  • Linux, SIGSEGV - mam tylko fragment źródeł, jak diagnozować?

    Dodałem zapamiętywanie obsługi sygnałów przed wywołaniem Sequencera, i przywracanie oryginalnego stanu po jego zakończeniu - ale nadal jest SIGSEGV. [syntax=c]#include "epicsThread.h" #include "iocsh.h" #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 500 #endif #include "extcode.h" #include <signal.h> #include <stdio.h> #include <unistd.h>...

    Programowanie   18 Wrz 2020 19:32 Odpowiedzi: 11    Wyświetleń: 402
  • kompatybilność programu na różnych mikrokontrolerach i zastosowanie przemysłowe

    Czy program napisany na np atmege328 w atmel studio czy innych edytorach będzie mógł zostać od razu wgrany na np atmege1284 czy trzeba będzie tam dużo pozmieniać.(to ma dla mnie bardzo duże znaczenie) Edytor nie ma nic do rzeczy. Zależy jak sam napiszesz program. Jeśli napiszesz wszystko w jednym pliku, to przenoszenie bardzo trudne i będzie "polowaniem"...

    Mikrokontrolery AVR   23 Lis 2020 14:48 Odpowiedzi: 17    Wyświetleń: 867
  • PIC 16F688 dziwne znaki na terminalu RS232 po SLEEP();

    Hej Niedawno zaczalem programowac PICe i mam pewien problem, kompilator HITECH. Problem jest taki ze na terminal uC wyrzuca jakies niechciane znaki. kawalek kodu: volatile static BYTE str[] = "\nSTART\n"; volatile static BYTE modem[] = "Modem up\n"; volatile static BYTE ef = 'f'; volatile bank1 BYTE TX_pressure[8];...

    Mikrokontrolery   02 Lip 2006 15:05 Odpowiedzi: 2    Wyświetleń: 1442
  • Polecane materiały do nauki programowania mikrokontrolerów dla początkujących

    Bardzo wiele zostało już powiedziane (bardzo dobre porady). Moim zdaniem krokiem zero jest jako tako umieć programować w C na PC (jak przebiega proces kompilacji, kod źródłowy podzielony na pliki *.c i *.h, organizacja pamięci i wskaźniki, struktury i wskaźniki do nich, słowa kluczowe register, volatile, static, etc., preprocesor, makefiles i make,...

    Mikrokontrolery   28 Sie 2024 08:03 Odpowiedzi: 11    Wyświetleń: 651
  • 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
  • STM32F100RB - kompilacja arm-none-eabi-gcc z biblioteką CMSIS, makefile, dioda LED

    Dzięki za odpowiedź. mo make clean mam: "Removing all generated output files from output directory: out/ cs-rm -f out/stm32f10x_it.d out/stm32f10x_it.lst out/stm32f10x_it.o make: cs-rm: Polecenie nie znalezione Makefile:290: polecenia dla obiektu 'clean' nie powiodły się make: *** Compiling file: main.c arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb...

    Mikrokontrolery ARM   30 Paź 2016 22:23 Odpowiedzi: 20    Wyświetleń: 1218
  • Symulacja UART w AVR Studio dla Atmega128 - jak to zrobić?

    W AVR306 mozna znalezc taki kod obslugi USARTA dla atmegi128: #include <avr/io.h> #include <avr/iom128.h> #include <avr/ina90.h> /* UART Buffer Defines */ #define USART_RX_BUFFER_SIZE 128 /* 2,4,8,16,32,64,128 or 256 bytes */ #define USART_TX_BUFFER_SIZE 128 /* 2,4,8,16,32,64,128 or 256 bytes */ #define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE...

    Mikrokontrolery   26 Kwi 2005 19:58 Odpowiedzi: 3    Wyświetleń: 1471
  • Jak liczyć impulsy na wielu kanałach w AVR bez blokowania?

    Mam problem, bo za bardzo nie wiem jak jednocześnie liczyć impulsy na kilku wejściach. #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/rs232.h> static volatile unsigned int l; SIGNAL (SIG_OVERFLOW1){ TCNT1H = 0x81; TCNT1L = 0x71; USART_Transmit(l/2); l=0; } int main(void)...

    Mikrokontrolery   27 Mar 2005 09:17 Odpowiedzi: 3    Wyświetleń: 1952
  • Jak odczytać i modyfikować zmienne Timer1 i Timer2 w różnych plikach?

    Nie można. Co da ci to, że Timer1/2 zrobisz static? To musi być volatile. Natomiast istotnie, trudno pomóc, jeśli nie wiadomo w czym jest problem :)

    Mikrokontrolery   01 Sie 2011 11:54 Odpowiedzi: 52    Wyświetleń: 3747
  • C++ - Atmega8: Jak wysterować piny portu D po odbiorze kodu RC5?

    Witam, mam problem z realizacją układu z tej strony: [url=http://wiki.electronics-irc.net/Avr... Chciałem, aby atmega po odbiorze kodu z pilota wysterowywała odpowiednio przypisane piny portu D. Tu jest kod po zmianach: [syntax=cpp]#include <avr/interrupt.h> #include <avr/io.h> #include <util/delay.h> // #define...

    Mikrokontrolery AVR   26 Cze 2013 21:05 Odpowiedzi: 2    Wyświetleń: 1773
  • STM32F401 Nucleo - Nie działa odczyt z DHT22, brak przerwań TIM3

    Error message from debugger back end: value has been optimized out To chyba wszystko tłumaczy. Zmniejsz poziom optymizacji albo zrób je tymczasowo static lub volatile. Ja czasami w czasie debugowania, jak nie jest to problem, robie z volatile aby przy kazdej operacji zapisywane były w pamieci. Proponuje zapoznać się z poradnikiem kolegi szczywronka...

    Mikrokontrolery ARM   12 Cze 2016 18:16 Odpowiedzi: 5    Wyświetleń: 1134
  • AVR GCC - Dostępność zmiennych globalnych między modułami

    Mam 2 moduły w postaci takich plików (przykładowy kod): modul1.h: x i wywołuję funkcję funkcja1() , ale ta funkcja nie widzi zmienionej wartości zmiennej x . Czy ktoś mógłby mi podpowiedzieć co tu jest nie tak i ewentualnie jak to "naprawić"? Niestety C/C++ znam dość słabo i pewnie nie pamiętam o jakiejś ważnej rzeczy, która powoduje takie zachowanie.

    Mikrokontrolery   27 Kwi 2015 14:46 Odpowiedzi: 4    Wyświetleń: 981
  • Keil uVision C: Zmienna 'nr_trybu' resetuje się po przerwaniu timera 80C517

    Próbowałem deklarować zmienną nr_trybu w różny sposób (volatile, extern, volatile, static). Nie pomaga. Coś gdzieś zachodzi na siebie. Zauważyłem, że jaką przypiszę tej zmiennej wartość w przerwaniu, taką ona potem przyjmuje w chwili jeżeli nie spełni się opisywany warunek.

    Mikrokontrolery   20 Maj 2012 02:10 Odpowiedzi: 8    Wyświetleń: 1087
  • ATmega16L + HC-SR04 - błędne wyświetlanie znaków na LCD

    Dobry wieczór, krótko : - program z wykorzystaniem ATmega16L + hc-sr04(ultradźwiękowy czujnik odległości) - mam problem z wyświetlaniem znaków bo powinno pisać : CIRCUIT DIGEST/DISTANCE=[i tu odleglosc w cm] - jest napisane CKSCWKT DKGGST/DKSTCOCG?33CM - na schemacie jest ATmega32 ja mam ATmega16 - http://circuitdigest.com/fullimage?i=cir...

    Mikrokontrolery AVR   29 Sty 2017 11:17 Odpowiedzi: 14    Wyświetleń: 972
  • [STM32F407-discovery] Nie poprawny wynik pomiaru adc

    Wstawiam poniżej kod programu. Gdy w programie obsługuje tylko adc problem wyglada inaczej. Gdy wzrasta napiecie na jakimkolwiek pinie to następuje interakcja z dwoma pozostałymi analogami. [syntax=c]volatile uint16_t a; volatile uint16_t b; volatile uint16_t c; static volatile uint16_t wyniki[3]; int main(){ fpu_enable(); system_init(); pll_start(CRYSTAL,...

    Mikrokontrolery ARM   10 Maj 2017 13:02 Odpowiedzi: 29    Wyświetleń: 1356
  • Atmega644PA - Obsługa przerwania, multipleksowanie ADC

    Uwagi: Przerwanie timera, a nie ADC, z powodów, o których wyżej była mowa. Wszystkie dane poza wektorem wyników powinny być zadeklarowane wewnątrz procediury obsługi przerwania timera z atrybutem static, a nie volatile, a wektor wartości ADMUX - jako static const. Z kolei zadeklarowanie wektora wyników z atrybutem volatile (hiperpoprawnie) powoduje...

    Mikrokontrolery   10 Sty 2016 16:07 Odpowiedzi: 53    Wyświetleń: 2865
  • HardFault jak to najlepiej/najszybciej/najłatwiej wyśledzić

    Może coś takiego: [syntax=C]//****************************... // +--+ // | ++----+ // +-++ | // | | // +-+--+ | // | +--+--+ // +----+ Copyright (c) 2009 Code Red Technologies Ltd. // // Microcontroller Startup code for use with Red Suite // // Software License Agreement // // The software is owned by Code...

    Mikrokontrolery ARM   01 Lut 2013 13:50 Odpowiedzi: 3    Wyświetleń: 1371
  • [atmega] Błąd w komunikacji UART na ATmega z użyciem avr-gcc i C - jak naprawić?

    Fajne nie? Prawdziwa jazda zaczyna się jednak dopiero wtedy, gdy takie wskaźniki mają być jeszcze statyczne uint32_t * volatile static ptr; -> ../main.cpp:49: error: expected unqualified-id before 'static' ../main.cpp:49: error: expected initializer before 'static' Ktoś mi to wytłumaczy skoro już przy tym jesteśmy? Czemu "const"...

    Mikrokontrolery AVR   11 Paź 2009 22:31 Odpowiedzi: 3    Wyświetleń: 2150
  • Fuel Injector cleaner - prośba o sprawdzenie schematu - Eagle

    Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...

    Projektowanie PCB   25 Gru 2024 10:42 Odpowiedzi: 9    Wyświetleń: 639
  • Atmega][C] I2C dwie atmega w sieci , brak odpowiedzi

    Witam, Chcę połączyć ze sobą dwie atmegi po TWI korzystam ze standardowej biblioteki do obsługi sprzętowego TWi tak jak w datasheetach. Jak podłączę jednego AVR do np Ds1307 to obsługa jest ok w dwie strony. Problem mam gdy połączę Atmega32 (master) z Atmega8 (slave) tzn gdy z Atmegi32 wysyłam coś np literkę 'q' to jest ona wrzucana do buf2 i ma się...

    Mikrokontrolery AVR   30 Cze 2011 18:17 Odpowiedzi: 1    Wyświetleń: 2368
  • [STM32F303][C]Atomic blocks - sekcje krytyczne w STM32

    Czasem Arduino do czegoś się przyda Dodano po 2 Możesz dać przykład takiej krytycznej czasowo operacji? Problem jest a raczej był związany z buforem nadawczym uarta. Mam funkcję: Blokuj tylko przerwania od UART.

    Mikrokontrolery ARM   04 Sty 2020 21:56 Odpowiedzi: 16    Wyświetleń: 1317
  • STM32 Nucleo F103 RB - Konfiguracja przycisku na rejestrach, problem z CRH

    Dokładnie kolega R-MIK dopero zaczynam ale staram się sukcesywnie uczyć ;) Nie wiem jak ty ale ja jestem niecierpliwy i nie czekałbym az ktoś mi odpowie, zwłaszcza, ze pytasz o podstawy, o których można przeczytać w sektach miejsc. Odpal sobie debuger, nawet programowy i zobacz jak będzie zmieniał się bit w bajcie/słowie po wykonaniu różnych operacji....

    Mikrokontrolery ARM   15 Paź 2017 19:01 Odpowiedzi: 59    Wyświetleń: 3117
  • Zmienna const w STM32 - czy zajmuje miejsce w RAM czy tylko w FLASH?

    Sory, ale na tym poziomie dyskusja nie ma sensu. Jak będziesz miał coś konkretnego do napisania to możemy kontynuować. OK konkretnie to draft ISO/IEC DTR 18037 wprowadza pewną wiedzę na ten temat do kompilatorów obsługujących tego typu rozszerzenia. Z tym się chyba zgodzisz. Zresztą to mi nie wygląda na "wsparcie w binutils" : http://avr-gcc.senthilthecoder.com/#g:!(...

    Mikrokontrolery ARM   16 Mar 2019 16:05 Odpowiedzi: 16    Wyświetleń: 960
  • [at91sam7s256][Keil uVision 4.21] Plik startowy a przerwania IRQ

    Witam, Piszę projekt na w/w ARMie Atmela i mam problem z uruchomieniem przerwań. Wydaje mi się, że funkcję do ich obsługi mam poprawnie napisaną, jednak mimo to nie działa, stąd podejrzenie, że wszystko zależy od pliku startowego. Z resztą oceńcie sami. Obsługa USARTu wygląda następująco: [syntax=c]#include "Board.h" #define USART_BASE AT91C_BASE_US0...

    Mikrokontrolery ARM   20 Lip 2011 07:03 Odpowiedzi: 6    Wyświetleń: 1695
  • [Atmega644P][C] - Przerwania + Bufor cykliczny USART

    Witam, próbuję zaprogramować mikrokontroler,aby obsługiwał USART do komunikacji przez RS232. Chcę wykorzystać do tego bufor cykliczny, który zaimplementowałem w następujący sposób: [syntax=c] #include <inttypes.h> #define BUFFER_SIZE 32 #define BUFFER_MASK ( BUFFER_SIZE - 1) typedef struct { uint8_t buffer[BUFFER_SIZE]; uint8_t head; uint8_t tail;...

    Mikrokontrolery AVR   18 Wrz 2012 07:11 Odpowiedzi: 2    Wyświetleń: 2943
  • 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
  • Termometr bezprzewodowy 433 MHz - UART nie działa, odbiornik nie odczytuje danych

    Niestety pokazałeś zły kod - jak wpłynie na poprawność działania pokazanego przez Ciebie kodu: [syntax=c]RxCount=0x00;[/syntax] umieszczone w pętli głównej? Prawidłowo powinno być na przykład tak: [syntax=c]#include <avr/io.h> ... volatile uint8_t flaga; // liczba odczytanych bajtow volatile uint8_t temp[2]; // odczytana temp ISR(USART_RXC_vect)...

    Mikrokontrolery AVR   08 Lut 2016 21:12 Odpowiedzi: 20    Wyświetleń: 1956
  • [AVR GCC] UART - Odczyt ciągu znakowego (lini )w przerwaniu

    Witajcie, w jaki sposób można optymalnie odczytać przesłany (aż do znaku nowej linii / powrotu karetki) ciąg znaków od przerwania otrzymania danych? /* * Sterowanie przez RS232 (main.c) */ #include "defines.h" #include <ctype.h> #include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <avr/interrupt.h>...

    Mikrokontrolery AVR   10 Mar 2009 20:13 Odpowiedzi: 6    Wyświetleń: 6056
  • Jak zainicjalizować i zapisać wielowymiarową tablicę w EEPROM XMega128A4U?

    Witam; Dorywczo, czasem coś próbuję skrobnąć, a tym razem: 1. Jest jakiś sposób na inicjalizację dużych ( np. Tab https://obrazki.elektroda.pl/4802236500_... ps. przy włączonym bicie NVM_EEMAPEN stan bufora to oczywiście same 0xff .

    Mikrokontrolery AVR   22 Gru 2018 20:57 Odpowiedzi: 6    Wyświetleń: 531
  • Jak debugować STM32F103C8T6 z Ubuntu 18.04 i ST-Link/V2?

    funkcja main zawiera tylko nieskończoną pętlę z definicją zmiennej, aby sprawdzić, czy debugger zatrzyma się na zaznaczonym breakpoincie, niestety tak się nie dzieje. Zdefiniuj zmienną static albo globalną, z atrybutem volatile lub wyłącz optymalizację.

    Mikrokontrolery ARM   19 Maj 2020 14:25 Odpowiedzi: 53    Wyświetleń: 4197
  • [GCC] -Os - czyli jak zrobic, zeby gcc nie zjadalo funkcji?

    sa sobie moje wlasne funkcje do zapisu do EEPROMu: uint8_t *_save_src_adr=0; uint8_t *_save_dst_adr=0; volatile uint8_t _save_length=0; ... void _eeprom_save_block(uint8_t *src,uint8_t *dst,uint8_t length) { while(_save_length); _save_src_adr=src; _save_dst_adr=dst; _save_length=length; EECR|=EECR_EERIE; } ... ISR(EE_RDY_vect)...

    Mikrokontrolery AVR   12 Lis 2008 13:53 Odpowiedzi: 10    Wyświetleń: 2322
  • Wysyłanie komend AT do BTM112 z mikrokontrolera ATmega32 - przykłady kodu

    Dzięki za biblio ;) Ja korzystam od dawna z bibliotek od Mirka z BlueBooka lekko przeze mnie zmodyfikowanych. Odświeżam temat bo jednak mam problem: http://obrazki.elektroda.pl/2645882300_1... http://obrazki.elektroda.pl/2587616400_1... http://obrazki.elektroda.pl/8131694900_1... http://obrazki.elektroda.pl/2415856600_1...

    Mikrokontrolery AVR   17 Sie 2017 17:10 Odpowiedzi: 6    Wyświetleń: 2061
  • Atmega88PA i RS485 - błędy w komunikacji przy echosondzie

    (at)arturt134 Robiłem to co mi sugerujesz - bezowocnie. Ale spostrzegłem ciekawą rzecz: wysyłając pakiet czynię to co parę sekund (ręcznie), przypadkowo dałem chwilkę czasu (5..10 min.) spokoju ATMEDZE (musiałem coś tam innego zrobić), po tym czasie znowu wysłalem pakiet i o dziwo ramka wyglądała jak po resecie uC! Ale następne znowu były oszukane....

    Mikrokontrolery   15 Lip 2010 16:09 Odpowiedzi: 31    Wyświetleń: 6663
  • std::swap a typy atomowe w C++23 – czy można użyć, alternatywy dla std::atomic

    (at)ElektrodaBot Ta wersja wygląda najlepiej. Zweryfikuj jej użycie pod kątem pracy w środowisku ESP-IDF/FreeRTOS, w tym ISR. Bezpośrednia odpowiedź Funkcja `atomic_swap_relaxed()` (zamiana za pomocą `exchange + store`) jest: • poprawna i wystarczająco szybka w zwykłych wątkach FreeRTOS na ESP32 (dla typów ≤ 32 bit), • niewskazana do uruchamiania bezpośrednio...

    Programowanie   27 Kwi 2025 15:21 Odpowiedzi: 9    Wyświetleń: 144
  • Eclipse Luna - błędy po migracji z Indigo i zmianie toolchaina na Atmel

    Problem już prawie rozwiązany, gdyż moja lista z projektami świeciła się jak choinka za sprawą tych samych, złych bibliotek. Poprawiłem już prawie wszystko, ale chce się upewnić co do jednego. Czy w kodzie który zamieszczam wystarczy usunąć "||" czy coś tam powinno być? W pliku źródłowym na jakiejś stronie internetowej też tego nie ma, więc nie usunąłem...

    Programowanie   30 Paź 2014 23:01 Odpowiedzi: 11    Wyświetleń: 1212
  • 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ń: 10098
  • [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
  • WinAVR: Jak poprawnie zdefiniować zmienną volatile dla ATMega8?

    Taki zapis ( definicja )powinien być w jednym pliku C (zmienna globalna) volatile unsigned char stan = CZEKAJ; w pliku headera (chyba sensor.h) tylko deklaracja extern volatile unsigned char stan; w żadnym wypadku nie można dawać w headerze (pliku *.h) includowanym do wielu plików *.c definicji zmiennej statycznej static unsigned char stan = CZEKAJ;...

    Mikrokontrolery   07 Gru 2006 11:02 Odpowiedzi: 2    Wyświetleń: 1949
  • Nowe Raspberry 5 zaprezentowane

    Z drugiej strony nie wiem, czy zamiast rozdawać czwartoklasistom badziewiaste laptopy, takie Pi500 by nie miało więcej sensu Napewno miało by więcej sensu, czegoś innego niż x86, zapoznania z Linuxem. Wszyscy nie będą programistami, połowa dzieciaków przehandluje toto na allegro. A farbkek na plastykę, instrumentów w klasach brak, byle szafek na książki...

    Artykuły   05 Paź 2023 17:56 Odpowiedzi: 47    Wyświetleń: 4038
  • ATmega8A - Problem z przerwaniem od przetwornika ADC

    Witam. Po dość długim czasie postanowiłem powrócić do programowania AVR ze względu na mały projekt który planuję w niedalekiej przyszłości. Zaopatrzyłem się w oprogramowanie, mikrokontroler i do dzieła. Po całym dniu oprogramowywania różnych peryferiów utknąłem na ADC. Otóż mam taki problem, że nie działa mi procedura obsługi przerwania od ADC umieszczona...

    Mikrokontrolery AVR   24 Sty 2017 06:56 Odpowiedzi: 9    Wyświetleń: 987
  • Program do sterowania serwami- prośba o dokończenie

    Wrzucam moją wersję programu do obsługi 4 serw. W ostatnim tygodniu zakupiłem swoje pierwsze dwa serwa, więc mogłem się pobawić problemem ich sterowania. Z powodu, że mam tylko dwa, jedynie dwa kanały są sterowane z przetworników ADC. Pozostałe są obsługiwane przez przerwania, ale nie ustawiane. Wartości dla serw wpisuje się w tablicy serwa_val[]. Doświadczalnie...

    Mikrokontrolery   27 Sie 2013 15:13 Odpowiedzi: 43    Wyświetleń: 7992
  • Atmega8 - Timer1 zmiana współczynnika wypełnienia

    ustaw sobie przerwanie od np. TIMER2 co 10ms i sprawdzaj 4 ostatnie stany przycisku. teoria: http://mikrokontrolery.blogspot.com/2011... powyższe zaadoptowane do A8: [syntax=c] //**************definicja przycisku************** #define _Key _BV(PD7) #define Key_PIN PIND #define Key_DDR DDRD #define Key_PORTPORTD...

    Mikrokontrolery AVR   24 Lut 2014 18:26 Odpowiedzi: 18    Wyświetleń: 2355
  • Serwo TowerPro GS-5010 + potencjometr A10k - trudności w precyzyjnym sterowaniu

    Witam. Sprzęt: -Atmega644P + kwarc 16mgh, -Serwo TowerPro GS-5010, (na pinie PD5/OC1A) -potencjometr A10k. (na pinie PA0/ADC0) -środowisko Eclipse Luna, Problem: Za pomocą załączonego kodu, gdy steruje potencjometrem, ciężko ustawić je w zadanej pozycji. Albo szarpie i nie może się ustawić albo od razu przesuwa się do końca i szarpie. Pewnie coś źle...

    Mikrokontrolery AVR   07 Maj 2015 10:58 Odpowiedzi: 4    Wyświetleń: 1227
  • [Atmega8][C++] - ADC i wyświetlacz 7seg nie współpracują

    Nie możesz odczytywać kilka razy pod rząd ADC, bo w trybie konwersji ciągłej może się zdarzyć, że wartość zmieni się w trakcie Twojej zamiany. Jeśli np. zmieni się z 99 na 100, to wyświetlisz 199. % 1000 % 100 to też to samo, co %100. Nie ma też sensu zmieniać wartości wyświetlanej aż tak często - do odczytu przez człowieka max. kilka razy na sekundę....

    Mikrokontrolery Początkujący   09 Mar 2013 11:02 Odpowiedzi: 8    Wyświetleń: 2085
  • 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
  • [Atmega32a] Atmega32a USART nie działa, mimo poprawnej konfiguracji na Atmega88

    Witam. Od paru godzin męczę się z niedziałającym USARTem na atmedze32. Na atmedze88 wszystko śmiga jak ma więc przejściówka USB<->RS232 jest ok. Brak zimnych lutów na płytce. Kwarc zewnętrzny (ustawiony jako EXTHIFXTALRES_258CK_4MS - przy czym nie wiem czy tak ma być dla kwarcu 16MHz). Kod zamieszczam poniżej: [syntax=c] /* * softPWM.c * * Created:...

    Mikrokontrolery AVR   20 Wrz 2012 21:22 Odpowiedzi: 8    Wyświetleń: 1461
  • Jak skonfigurować przerwania zewnętrzne do sterowania silnikiem w AVR?

    Witam. Po raz kolejny wracam do tematu przerwań: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> volatile static uint16_t i; volatile static uint8_t k; // główna funkcja programu main() int main(void) { //**************************** SPRZĘTOWY PWM - 1 KANAŁ OC0 (PB3) ****************************************...

    Mikrokontrolery AVR   22 Gru 2016 15:04 Odpowiedzi: 27    Wyświetleń: 1275
  • [Bascom][C]Atmega oraz radiowe moduły RFM01, RFM02, RFM12

    Ok, to postaram się krótko i na temat ;-) Moduł RFM12B podłączony jest do ATMega8 następująco: MEGA8 - RFM12B (16) SS - NSEL (17) MOSI - SDI (18) MISO - SDO (19) SCK - SCK (5) INT1 - DCLK/CFIL/FFIT oraz FSK/DATA/nFFS przez rezystor 10k do Vcc Makro, którego używam dla klarowności kodu: #define cbi(sfr, bit)...

    Mikrokontrolery   20 Cze 2021 23:15 Odpowiedzi: 707    Wyświetleń: 240122
  • STM32F0 wolniejszy niż PIC32MX - jak poprawić wydajność?

    Przy tej samej prędkosci zegara PIC-e maję wolniejszy FLASH - przy 48MHZ PIC-e 2WS a F0 1WS. Tak że będą czytać stałe z FLASH wolniej. oba procki chodzą na 24MHz, ze względu na pobór prądu Na prośbę moderatora: PIC32MX150, STM32F030K6T6 Tu prosta maszyna stanów - funkcja, która wykonuje się wolniej o jakieś 30...40% niż na PIC. Uprzedzam, sprawdziłem,...

    Mikrokontrolery   17 Lut 2019 19:05 Odpowiedzi: 51    Wyświetleń: 2169
  • [C][Atmega8A] - Prośba o sprawdzenie kodu do debouncingu styków przycisków

    KEY=((PIND & 0x01) & 1); 1. Nazw zmiennych zwyczajowo nie pisze się wielkimi literami 2. Wystarczy: key = PIND >> NR LINII PRZYCISKU & 1; - w ten sam sposób dla każdego przycisku. 3. Nie ma sensu deklarować zmiennych związanych ze stanem przycisków poza procedurą przerwania timera, bo nie są one nigdzie więcej potrzebne. Zmienne keystate powinny mieć...

    Mikrokontrolery AVR   25 Mar 2013 00:35 Odpowiedzi: 4    Wyświetleń: 1302
  • STM32F4 - Jak skonfigurować ADC z DMA bez użycia flagi ADC_SR_EOC?

    Witam. Oto mój kod: while (!(ADC1->SR & ADC_SR_EOC)); Zgodnie z moimi wyszukiwaniami na temat bitu ADC_SR_EOC : This bit is set by hardware at the end of the conversion of a regular group of channels. It is cleared by software or by reading the ADC_DR register. Czyli DMA w momencie odczytania wartości z rejestru DR także kasuje...

    Mikrokontrolery ARM   28 Sty 2019 23:43 Odpowiedzi: 3    Wyświetleń: 456
  • [AT91SAM7X][C/Keil-GNUARM] przerwaia z PIT a pętla główna

    W skrócie mój kod wygłąda tak: #include'y typedef unsigned int UINT; typedef enum {FALSE = 0, TRUE = 1} BOOL; static volatile BOOL var1, var2; int main(void) { var1 = FALSE; var2 = FALSE; LCD_Open(); PIT_Open(250, sys_irq_handler); while (1) { if (var1 == TRUE) { LCD_DrawCharC(2, 42,...

    Mikrokontrolery ARM   14 Lis 2008 17:15 Odpowiedzi: 2    Wyświetleń: 1500
  • [STM32F103] STM32F103 - Nieprawidłowe wartości w tablicy przy transferze DMA z TIM2

    Witam, Ostatnio zacząłem przechodzić na mikrokontrolery STM32 i testowałem program zawarty poniżej. Licznik TIM2 zlicza w górę, drugi licznik generuje żądanie DMA od przepełnienia się licznika, wysyłając wartość licznika CNT TIM2 do tablicy, która jest inkrementowana. Powinienem otrzymać w tablicy wartości zwiększające się cyklicznie co tą samą wartość,...

    Mikrokontrolery ARM   07 Lut 2018 00:14 Odpowiedzi: 6    Wyświetleń: 741
  • Atmega32: Brak dźwięku w słuchawkach przy odtwarzaniu pliku WAV z karty SD

    Cześć, Napisałem program, który miał odtwarzać utwór z karty SD o nazwie o.wav . Program poprawie otwiera plik, jednak ze słuchawka nie wydaje dźwięku... Czy mógłby ktoś sprawdzić mój kod czy nie ma tam żadnego błędu ? Myślałem że same wyprowadzenie odczytanych wartości hex z pliku muzycznego i "wypuszczenie" ich na PWM w zupełności wystarczy, ale widocznie...

    Mikrokontrolery AVR   14 Mar 2017 21:47 Odpowiedzi: 13    Wyświetleń: 1131
  • uVision 4 - Jak umieścić dużą tablicę stałych w pamięci Flash?

    Cze, W moim programie chciałbym wrzucić pewną tablice stałych (dość dużą, zajęła by ona połowę RAMu w F100RB) do pamięci Flash. Problem polega na tym, że jakoś nie potrafię skłonić linkera do tego aby to uczynił. Testowo deklarowałem trochę mniejszą tablicę w taki sposób: [syntax=cpp]volatile static const char test[2][2][2][10] = {............}[/syntax]...

    Mikrokontrolery ARM   15 Lis 2013 08:35 Odpowiedzi: 5    Wyświetleń: 1137
  • Miernik częstotliwości na ATmega16 - przerwania i liczniki T0, T1

    Uwaga! 1) Jeżeli zmienną licznik będziesz miał zadeklarowaną wewnątrz funkcji obsługującej przerwanie to przykładowa deklaracja powinna wyglądać tak: static uint8_t licznik = 0; 2) Jeżeli natomiast zmienną licznik zadeklarujesz gdzieś w programie głównym, wtedy powinieneś ją przykładowo zadeklarować jako: volatile uint8_t licznik = 0; po co te "przedrostki"...

    Mikrokontrolery   15 Lut 2008 16:19 Odpowiedzi: 12    Wyświetleń: 3426
  • [STM32F373] Konfiguracja SDADC za pomocą rejestrów.

    Kod który działa: [syntax=c]//----------------------------... static void configure_SDADC1(void) { volatile uint32_t i2; PWR->CR |= PWR_CR_SDADC1EN | PWR_CR_SDADC2EN | PWR_CR_SDADC3EN; RCC->APB2ENR |= RCC_APB2ENR_SDADC1EN | RCC_APB2ENR_SDADC2EN | RCC_APB2ENR_SDADC3EN; for (i2=0; i2<255; i2++); SDADC1->CR2...

    Mikrokontrolery ARM   28 Maj 2019 14:36 Odpowiedzi: 5    Wyświetleń: 933
  • Z111xP - lpc1114 - tłumaczenie kodu programu i schemat płytki

    Wskazany w linku debugger to zapewne JLink ale za cenę niespełna 10 $ to napewno nielegalny klon :) Jeżeli chcesz poznać LPC'ki i mieć debugger to wejściami . Kiedyś zapomniałem o tym fakcie i dziwiłem się dlaczego program nie działa tak jakbym się tego spodziewał.

    Mikrokontrolery Początkujący   06 Kwi 2017 17:44 Odpowiedzi: 16    Wyświetleń: 1959
  • Optymalizacja WinAVR, gcc, uC. Gdzie popełniam błąd?

    W pierwszym przypadku w celu jak największej dokładności czasu opóźnienia jest wyliczana liczba przebiegów wewnętrznej pętli (która wykonuje się w 3 lub 4 cyklach, zależnie od tego, czy licznik może mieć 1 bajt, czy musi mieć 2 bajty) - te obliczenia są wykonywane na liczbach zmiennoprzecinkowych. Co do drugiego kodu, nie jest on funkcjonalnie taki...

    Mikrokontrolery AVR   12 Lis 2008 18:50 Odpowiedzi: 7    Wyświetleń: 2436
  • [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
  • Wielozadaniowość Arduino - obsługa wątków w tle

    Kod funkcji włączania i wyłączania np. diody Ten kod będzie powodował, że po pełnym zapaleniu dioda z powrotem zgaśnie i zacznie się rozjaśniać. Linijka z ifem nic nie robi, bo wartość byte nie może być mniejsza od zera ani większa od 255. Poza tym po wciśnięciu przycisku będzie dodawana nowa funkcja przerwania onLamp() bez usuwania starej i będą ze...

    Mikrokontrolery   05 Maj 2015 17:29 Odpowiedzi: 8    Wyświetleń: 4350