delay volatile

Znaleziono około 2186 wyników dla: delay volatile
  • 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
  • AVR Studio 4: Dioda miga zbyt szybko, delayms(1000) trwa 4ms, jak naprawić?

    ciekawi mnie to, że obojętnie co [/quote] Coz... njaprawdopodobnije kompilator mysli za Ciebie i pusta petle po prostu pomija. Rozwiazanie: Albo napisz petle w asemblerze, albo przed dekalracja zmiennych w funkcji: void delay(unsigned int us) wstaw magiczne slowo volatile np: volatile unsigned int delay_loops; Poza tym jak cos nie dzial to zajrzyj...

    Mikrokontrolery   30 Gru 2007 01:28 Odpowiedzi: 5    Wyświetleń: 927
  • REKLAMA
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • Atmega16 C - Jak poprawić funkcję opóźnienia bez _delay_ms()?

    Bardziej pokręconego kodu na delay to chyba nie widziałem. Ten delay to widzę, że ma być "nieblokujący" chyba, że taki skomplikowany :D bo jeśli nie to nie można poprostu czegoś takiego: [Psuedokod] [syntax=c] volatile int counter; delay(x) { counter = 0 while(counter<x){/* waits */} } ISR() { count++; } [/syntax]

    Mikrokontrolery AVR   04 Kwi 2013 07:09 Odpowiedzi: 33    Wyświetleń: 3096
  • REKLAMA
  • ATmega8535 – sterowanie jasnością LED przez PWM 8-bit na PB3, brak reakcji na przyciski

    Nie bardzo mi się chce wnikać w przyczyny , więc wrzucę Twój zmodyfikowany kod: #include <avr/io.h> #include <avr/interrupt.h> #define PWM_out(value) OCR0 = value void delay(void){ volatile unsigned int i; for(i=5000;i;i--); } unsigned char pwm=127; int main(void) { DDRD = 0x00; PORTD = 0xFF;...

    Mikrokontrolery   06 Lut 2008 11:44 Odpowiedzi: 4    Wyświetleń: 1230
  • [STM32F103C8T6][C / WORKBENCH] Dioda nie chce mrugać

    W tej pętli w opóźnieniu zrób volatile int i, bo kompilator wywala pewno pętlę i dioda mruga tylko Ty nie nadążasz patrzeć. Albo dołóż jeszcze jedna zmienną. int Delay( int delay) volatile int i; int j = 0; for( i=0; i < 4000* delay; ++i ) { j+=i; } return j; } I uważaj na zakres liczb całkowitych bo 32 bity to dużo, ale dzielone przez 4000 to już...

    Mikrokontrolery ARM   16 Maj 2018 20:43 Odpowiedzi: 10    Wyświetleń: 1140
  • [C] Jak wyłączyć optymalizację dla funkcji delay_us() i czekaj() w C?

    Witaj, ja zazwyczaj robię to tak. void delay(volatile unsigned int i) { while(i--) { asm volatile("nop"); }; } To zdaje się zdawać egzamin. określenia volatile używa się w stosunku do zmiennych które mogą sie zmieniać w nieprzewidywalnym momencie np. przy wystąpieniu przerwania. Zmiennn po dodaniu...

    Mikrokontrolery   05 Wrz 2010 22:26 Odpowiedzi: 12    Wyświetleń: 2092
  • REKLAMA
  • AVR+LCD, czy wyświetlacz wogóle działa? Błąd w kodzie?

    Wyświetlacz po podłączeniu zasilania powinien zapalić kwadraciki w górnej linijce, po inicjalizacji te kwadraciki gasną. Mam prawie identyczny kod przy czym niepoprawnie działały mi funkcje _delay_ms(100); nie wiem dlaczego dlatego zastosowałem swoje, kwarc mam wewn, 8MHz: // Piszemy procedury opóźnienia czasowego //======================================...

    Mikrokontrolery   19 Mar 2008 10:26 Odpowiedzi: 4    Wyświetleń: 1326
  • AVR: Jak przełączyć LED na pinie 1 co 0,5s przez 4s po włączeniu?

    Witam... Najprościej chyba będzie użyć gotowych funkcji opuźnienia czasowego... Raczej nie ma sensu w tym przypadku pchać się w timer... #define F_CPU 1000000 /* Tu wpisujesz częstotliwość zegara z jakim pracuje uC #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */ void delay(unsigned int us) {...

    Mikrokontrolery   12 Lis 2005 18:15 Odpowiedzi: 2    Wyświetleń: 867
  • Atmega8 - pytanie początkującego w tej dziedzinie

    To dziwne bo ja niemiałem najmniejszych problemów... #include <avr/io.h> /***************************************... Definicje stałych ****************************************... #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */ /***************************************...

    Mikrokontrolery   25 Kwi 2005 19:18 Odpowiedzi: 7    Wyświetleń: 1863
  • [STM32/Atollic True Studio]Nie obslugiwanie modulu ARM

    Witam Probuje skompilowac gotowy przyklad z ksiazki (dokladnie miganie diod), wszystkie pliki , headery itd sa wlaczone do projektu, lecz wyskakuje mi nastepujacy blad kompilacji target CPU does not support ARM mode zawartosc pliku util_delay.c: [syntax=c]#include <util_delay.h> void Delay(volatile unsigned count) { while(count--); } [/syntax]...

    Mikrokontrolery ARM   07 Sty 2012 13:18 Odpowiedzi: 6    Wyświetleń: 2296
  • REKLAMA
  • Jak debugować STM32F103C8T6 z Ubuntu 18.04 i ST-Link/V2?

    Sprawdź co z [syntax=c] void delay(int time) { int i; for (i = 0; i < time * 4000; i++) {} } [/syntax] zrobił kompilator. Powinieneś użyć timera. Jeśli już robisz pętle opóźniającą rodem z AVR to [syntax=c] void delay(int time) { volatile int i; for (i = 0; i < time * 4000; i++) {} } [/syntax] nie wiedząc jednak co zrobi optymalizator, dałbym...

    Mikrokontrolery ARM   19 Maj 2020 14:25 Odpowiedzi: 53    Wyświetleń: 4200
  • Jak stworzyć pętle opóźniające w C dla dsPIC30F, by migać diodą?

    asm na pewno jest taki sam (szczegolnie ten ktorego uzywalem, bo to same podstawy), gorzej z timerami na ktorych opieraja sie dluzsze opoznienia (od ms w gore). nigdy nie zajmowalem sie dspic30, wiec... nie wiem jak to tam jest z tymi timerami. najwyzej dostosujesz sobie <: __________________________ modul sklada sie standardowo z pliku c i h. ponizej...

    Mikrokontrolery PIC   05 Lut 2009 07:21 Odpowiedzi: 5    Wyświetleń: 2196
  • 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
  • [Atmega8] Przeróbka kodu RGB z Attiny2313 na Atmega8 1MHz - sterowanie diodą

    Niekoniecznie. Może wystarczy dodać po while(--delay) np. asm volatile ("nop")

    Mikrokontrolery Początkujący   16 Wrz 2014 19:24 Odpowiedzi: 7    Wyświetleń: 1071
  • Jak odczytać i modyfikować zmienne Timer1 i Timer2 w różnych plikach?

    No i nie udało mi się tego zrobić na Timer0- on sie kręci bez przerwy a ja potrzebuję włączyć i wyłączyć timer. Tak że na razie na Timer1- szkoda bo 16 bitów- ale zrobię na Timer2. Spokojnie użyj Timer0, który będzie zgłaszał przerwanie np. co 1ms. W procedurze obsługi tego timera dekrementuj zmienną, jeśli osiągnie 0 to należy zatrzymać dekrementowanie,...

    Mikrokontrolery   01 Sie 2011 11:54 Odpowiedzi: 52    Wyświetleń: 3750
  • [STM32F10x] - Dlaczego SPI1 przestaje działać po konfiguracji RCC?

    Wygląda na to ze nawet delay ci nie działa poprawnie. VOLATILE??

    Mikrokontrolery ARM   15 Paź 2013 18:24 Odpowiedzi: 6    Wyświetleń: 1575
  • [STM32] [STM32][ADC] - Flaga EOC nie ustawia się podczas konwersji w STM32L152

    Konfiguruję ADC do pracy w STM32L152. Tradycyjnie, problem jest taki, że nie działa. Kod programu wygląda następująco: [syntax=c] int main(void) { RCC->AHBENR = RCC_AHBENR_GPIOAEN;//taktowanie portu A RCC->APB2ENR = RCC_APB2ENR_ADC1EN;//taktowanie ADC GPIOA->MODER |= GPIO_MODER_MODER0;//PA0 jako wejscie analogowe ADC1->CR2 = ADC_CR2_ADON;//wybudzenie...

    Mikrokontrolery ARM   24 Mar 2016 22:01 Odpowiedzi: 2    Wyświetleń: 945
  • Atmega16 i DS18B20: Błędne odczyty temperatury na wyświetlaczu LCD

    Może jest problem z czasami? 1-Wire jest bardzo na to wrażliwy. Ja zastosowałem własną funkcję: inline __attribute__((gnu_inline)&#... void therm_delay(uint16_t delay) { while(delay--) asm volatile("nop"); } Oczywiście musisz zadeklarować częstotliwość, z jaką CPU pracuje, np: #define F_CPU 8000000UL...

    Mikrokontrolery AVR   27 Sie 2010 20:28 Odpowiedzi: 13    Wyświetleń: 1901
  • [MSP430] Implementacja funkcji delay dla czujnika DS18B20 z zasilaniem pasożytniczym

    A co z kompilatorem? Napisałem do IAR. Jest wbudowany w Delay. #define XTAL 7372800ul u8_t Onewire_Reset(u8_t reader) { volatile u16_t i; u8_t err; err = 0; //****** ONEWIRE_DDR |= (1<<(TP0 + reader)); __delay_cycles((unsigned)... ONEWIRE_DDR &= ~(1<<(TP0 + reader));...

    Mikrokontrolery Początkujący   12 Sty 2012 12:28 Odpowiedzi: 6    Wyświetleń: 2216
  • STM32 CM0 - Optymalizacja kodu w CooCox IDE dla machania nóżką GPIO

    Ten delay bez asm_volatile to dziala w ogóle, czy kompilator to pomija i wyrzuca?

    Mikrokontrolery ARM   05 Kwi 2013 10:08 Odpowiedzi: 13    Wyświetleń: 2802
  • Jak poprawić kontrast LCD HD44780 z ADuC7026 przy zasilaniu 3.3V?

    Hey. Zajmowaliście się kiedyś takim zagadnieniem jak w temacie pisze... Mam swój sprawdzony program, który stosowałem w MSP430 jak i AVR i C51. Niestety nie wszystko pięknie wygląda... Czarna linia na wyświetlaczu jest tak samo jak i była zaraz po walczeniu LCD. Po drugie, znalazłem w necie notę aplikacyjna http://www.analog.com/UploadedFiles/Appl...

    Mikrokontrolery   12 Kwi 2008 14:56 Odpowiedzi: 4    Wyświetleń: 3044
  • 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ń: 885
  • [C] [C][stm32] - Błąd kompilacji 'RCC_APB2Periph_GPIOB' i problem z funkcją Delay

    Niestety program sie nie kompiluje bo wyskakuje mi błąd "Type 'RCC_APB2Periph_GPIOB' undeclared (first use in this function)" Tam był przykład dla STM32F1 dlatego zmień na: RCC_AHBPeriph_GPIOB Najprościej opóźnienie realizuje się tak: [syntax=c]for (volatile uint32_t i = 0; i < 0xFFFFF; i++);[/syntax]

    Mikrokontrolery ARM   10 Lis 2012 22:32 Odpowiedzi: 17    Wyświetleń: 3342
  • [LPC2103] - Po poprawnym zaprogramowaniu nie działa

    spróbuj zrobić tego delay'a na liczbie typu volatile int zamiast int. Może optymalizator to wycina?

    Mikrokontrolery ARM   24 Lis 2012 08:40 Odpowiedzi: 2    Wyświetleń: 912
  • Stała wartość 16,1°C z DS18B20, nawet przy odłączonym czujniku - błąd w kodzie?

    Witam podłącze się pod temat. A jak odmierzasz czas ? Ja stosuję 2 sposoby. #define LOOP_CYCLES 8 //Number of cycles that the loop takes #define us(num) (num/(LOOP_CYCLES*(1/(F_... inline __attribute__((gnu_inline)&#... void delay_us(unsigned int delay) { while(delay--)...

    Mikrokontrolery AVR   26 Sty 2010 21:15 Odpowiedzi: 19    Wyświetleń: 3419
  • [C++] - Ulotność (volatile) obiektu a ulotność jego składników

    to while wyrzucony nie będzie (bo to statement with no effect, więc kwalifikowałby się). Tylko widzisz jeśli by taki while był wyrzucany nie ważne czy dana zmienna jest volatile czy też nie, to by nie miało by wtedy sensu, a tak to możemy powiedzieć kompilatorowi, że nie chcemy wyrzucać pętli dodając volatile. W końcu takie konstrukcje są często stosowane...

    Programowanie Początkujący   09 Lut 2016 17:41 Odpowiedzi: 15    Wyświetleń: 1356
  • [stm32][eclipse][demo projekt][Lucjana Bryndzy] kłopot z przerobieniem projktu.

    Wywala błąd gdyż kompilator nie rozumie polecenia "nop();". Zastąp powyższe przez "asm volatile("nop")" albo dodaj include do pliku system.h w pliku delaya. W pliku system.h masz właśnie definicje nop() jako to co wyżej podałem, zajżyj do tego pliku.

    Mikrokontrolery ARM   20 Kwi 2011 19:17 Odpowiedzi: 2    Wyświetleń: 1985
  • Marsz Imperialny na Atmega32

    Tia z WGK. Fałsz wynika z tego, że podaje sie prostokąt. Nie ma to jak 3 i 5 harmoniczna... Przynajmniej tak mi się wydaje... No i może troche niedokładnie są częstotliwości. #include <avr/io.h> #include <compat/deprecated.h> #define SPP cbi(PORTA,PA3);sbi(PORTA,PA2... #define SPM cbi(PORTA,PA2);sbi(PORTA,PA3...

    DIY Konstrukcje   02 Kwi 2008 19:58 Odpowiedzi: 10    Wyświetleń: 6391
  • [ATMEGA16][GCC + AVR Studio] 1Wire, DS18B20, komunikacja

    Witam, do użytkownika TMF, u mnie taka procedura typu (wartość jest przystosowana do moich potrzeb) volatile unsigned int delay = 0xFE; while(delay--); działa poprawnie zgodnie z zamierzeniami myślę że gdybym nie dał volatile to może to by działało jak ty myślisz. Definicja volatile: Indicates that a variable can be changed by a background routine....

    Mikrokontrolery AVR   06 Sie 2010 13:49 Odpowiedzi: 14    Wyświetleń: 6094
  • Jak poprawić kod Arduino UNO PLUS dla LED, czujników i przycisku?

    Proponowałby napisać program od nowa, małymi krokami, bez delay. Zmiana w kodzie [syntax=c]volatile int zmienna[/syntax]nic nie da gdy program bedzie wisiał 5 minut na delay. W tym czasie zadział tylko reset. Ponadto, dlaczego typ int ()16-bit a nie 8-bit?

    Arduino   03 Cze 2020 08:06 Odpowiedzi: 48    Wyświetleń: 2397
  • Program sterujący: 3 wejścia, 1 wyjście, dobór procesora

    #include <avr/io.h> #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */ /*zdefiniowanie Pinu wyjściowego*/ #define OUT_ON DDRC|=_BV(5); PORTC|=_BV(5); #define OUT_OFF DDRC=_BV(5); PORTC&=~_BV(5); /*zdefiniowanie pinów...

    Mikrokontrolery   21 Lut 2007 10:20 Odpowiedzi: 24    Wyświetleń: 2284
  • MSP430F - MSP430F kompilator / programator -- jak to ugryźć ?

    Musze to przemyśleć ( Piti dosyc fajny programator mi pokazał ) Mam prosty program w C : #include <io.h> void wait(void); //prototype for wait() int main(void) { P1DIR=0xFF; //port 1 = output P1OUT=0x01; //set bit 0 in port 1 for(;;) { //infinite loop P1OUT=~P1OUT; //invert port 1 wait(); //call...

    Mikrokontrolery Początkujący   30 Lis 2012 01:26 Odpowiedzi: 4    Wyświetleń: 1521
  • [STM32] Wybór toolchaina dla CoIDE CooCox'a: różnice w rozmiarze pliku i błędy kompilacji

    O to kod, to jest prosty przykładowy, który miał się skompilować bez problemów :) [syntax=c] #include <stm32f4xx_rcc.h> #include <stm32f4xx_gpio.h> void Delay(void) { volatile uint32_t i; for (i = 0; i != 0xFFFFF; i++); } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; // Wlaczenie sygnalu taktujacego port D RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP...

    Mikrokontrolery ARM   05 Kwi 2014 11:45 Odpowiedzi: 60    Wyświetleń: 10329
  • Jak zaprogramować Arduino do zliczania impulsów 30ms z licznika elektrycznego?

    Najprostszy program do zliczania impulsów pojawiających się na pinie 2 (Arduino Uno): [syntax=c] constexpr uint8_t pin = 2; volatile uint32_t pulse = 0; void setup() { Serial.begin(115200); pinMode(pin, INPUT_PULLUP); attachInterrupt( digitalPinToInterrupt(pin), []() { pulse++; }, RISING); } void loop() { delay(1000); Serial.print("Pulses per second:...

    Arduino   28 Kwi 2019 15:29 Odpowiedzi: 5    Wyświetleń: 1290
  • [STM32] Jak zaimplementować delay_us i delay_ms na STM32 z taktowaniem 72 MHz?

    A flaga jest zadeklarowana jako volatile ?

    Mikrokontrolery ARM   08 Kwi 2010 08:27 Odpowiedzi: 13    Wyświetleń: 14789
  • 25LC1024 - LPC1769 + SPI + Flash 25LC1024 - nie zapisuje do pamięci

    Pierwsza sprawa jest taka, że zmienna odczytywana/zapisywana przez przerwanie i kod główny powinna być volatile. Druga zaś - 1ms delay w przerwaniu to nie jest szczególnie dobry pomysł... 4\/3!!

    Mikrokontrolery ARM   20 Kwi 2015 08:00 Odpowiedzi: 25    Wyświetleń: 2136
  • STMF0 Discovery - Błąd kompilacji przy #include stm32f10x.h w TrueSTUDIO

    Witam, Pozmieniałem trochę ten domyślny program. Moja część zawarta jest w linijkach "moj program" reszte kodu wyłączyłem. Proszę o sprawdzenie, bo jeszcze czekam na kuriera z moim zestawem STM32F0 Discovery. ****************************************... ** ** File : main.c ** ** Abstract : main function. ** **...

    Mikrokontrolery Początkujący   08 Lis 2012 18:36 Odpowiedzi: 21    Wyświetleń: 4065
  • Avr i C. Zapalanie diod. Jakie wartości wpisać do portu?

    Co do opóźnienia to wygodniejsze w użyciu są poniższe funkcje... #define F_CPU 16000000 #define CYCLES_PER_US ((F_CPU+500000)/1000000) /****** Funkcje delay ****************************************... void delay(unsigned int us) { unsigned int delay_loops; register unsigned int i; delay_loops = (us+3)/5*CYCLES_PER_US;...

    Mikrokontrolery   30 Kwi 2007 11:31 Odpowiedzi: 6    Wyświetleń: 2685
  • LPC1343 - z jaką predkośćią pracuje i opóźnienia

    (at)Gunis-92: Możesz wykorzystać do odmierzania czasu np. SysTick [syntax=c] volatile uint32_t licznik_tykniec;// zmienna globalna /* obsluga przerwania od licznika/timera SysTick */ void SysTick_Handler(void) { licznik_tykniec++;// inkrementacja licznika } void delay(uint32_t czas) { uint32_t aktaualny_licznik_tykniec; aktaualny_licznik_tykniec = licznik_tykniec;...

    Mikrokontrolery   27 Sty 2015 13:44 Odpowiedzi: 12    Wyświetleń: 1233
  • Opóźnienia w C na AVR: funkcje delay vs timery, co lepsze?

    Zmienną używaną w przerwaniu deklaruje się jako volatile (wykluczona z optymalizacji), inaczej będzie cyrk... volatile unsigned char licznik Ładniej by to wyglądało scalone... tzn... void czekaj(void) { licznik = 30; TCCR0 = 0x05; do{}while(licznik); } ISR(TIMER0_OVF_VECT) { licznik--; TCCR0 = 0; //wypadałoby...

    Mikrokontrolery   09 Sie 2007 23:08 Odpowiedzi: 8    Wyświetleń: 1320
  • LPC1768 - Jak precyzyjnie zrealizować opóźnienie 1 ms w mruganiu diodą?

    Podaję ładniejszą formę obsługi opóźnienia na SysTick: [syntax=c] #include "LPC17xx.h" #include "lpc17xx_gpio.h" volatile uint32_t licznik_tykniec; /* obsluga przerwania od licznika/timera SysTick */ void SysTick_Handler(void) { licznik_tykniec++;// inkrementacja licznika } void delay(uint32_t czas) { uint32_t aktaualny_licznik_tykniec; aktaualny_licznik_tykniec...

    Mikrokontrolery Początkujący   06 Cze 2014 20:05 Odpowiedzi: 13    Wyświetleń: 1593
  • Mikrokomputer COBRA 1

    Interfejs CobraSPI wstępnie uruchomiony. Wysyła znaki oraz odbiera swoją transmisję. https://obrazki.elektroda.pl/4256100500_... Filmik. Na ekranie są dwa znaki. Pierwszy od lewej to znak wysłany, drugi to znak odebrany. W środku filmiku następuje rozsynchronizowanie nadany/odebrany ponieważ na chwilę została odłączona zwora między...

    DIY Konstrukcje   30 Cze 2025 10:11 Odpowiedzi: 1986    Wyświetleń: 275886
  • LCD HD44780 z HAL - problem z inicjalizacją i wyświetlaniem tekstu

    (at)matti0010 Jeżeli już chcesz robić opóźnienia typu: [syntax=c] delay=0; while(delay<(50*MHz))//50us { delay++; } [/syntax] to zmienna delay powinna być zadeklarowana jako volatile. Fajnie byłoby wydzielić to do osobnej funkcji bo używasz tego samego kodu w wielu miejscach. Przetestuj, że tego typu funkcja generuje opóźnienia o zadanej wartości...

    Mikrokontrolery ARM   12 Wrz 2016 13:22 Odpowiedzi: 57    Wyświetleń: 3933
  • Wyświetlacz LCD do dowolnego układu

    Sam dawno temu popełniłem podobny projekt ;) W Bascom jeszcze ;) http://www.elektroda.pl/rtvforum/topic16... Heh, z pewną dozą nostalgii sobie przypomniałem te zabawy sprzed 6 lat ;) Wartości elementów można wywnioskować z tego co napisałeś - poczytaj o oznaczeniach ;) Parę uwag dot. programu. 1. nie definiuj F_CPU w kodzie - zawsze w definicjach...

    DIY Konstrukcje   23 Kwi 2019 09:09 Odpowiedzi: 9    Wyświetleń: 12618
  • Który kod lepiej opóźnia program na ATmega8 z zegarem 1MHz?

    Ktory kod bedzie dokladniej opoznial wykonywanie programu #define F_CPU 1000000 #define CYCLES_PER_US ((F_CPU+500000)/1000000) void delay(unsigned int us) { unsigned int delay_loops; register unsigned int i; delay_loops = (us+3)/5*CYCLES_PER_US; for (i=0; i < delay_loops; i++) {}; } void...

    Mikrokontrolery   28 Wrz 2005 19:42 Odpowiedzi: 8    Wyświetleń: 1062
  • Program dla mikroprocesora 8051 (P89C51RD2) w języku C

    znaczy masz napisac program, ktory robi cokolwiek?? cos mi tu nieladnie pachnie lenistwem i ogolna olewka szkoly :D... ale mozesz sprobowac w ten sposob... nie wiem co ta instrukcja rr robi, ale pewnie to jest przesuwanie, a program ma migac diodami ;)... void delay(int value) { volatile int i; for (i=0;i<value;i++); } int...

    Mikrokontrolery   25 Kwi 2008 12:57 Odpowiedzi: 5    Wyświetleń: 2857
  • Zasilanie ATMEGA i transmisja IR w modyfikacji Ericsson ChatBoard

    Naskorbałem coś takiego: #include <avr/io.h> #define F_CPU 11059200 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000) char a; void delay(unsigned int us) { unsigned int delay_loops; register unsigned int i; delay_loops = (us+3)/5*CYCLES_PER_US; // +3 for rounding up (dirty) for...

    Mikrokontrolery   08 Wrz 2005 20:50 Odpowiedzi: 16    Wyświetleń: 4485
  • Jak regulować czas migania diody w C za pomocą zmiennej w delay'u?

    Zamieścileś kod tp dpbrze :) Musisz zrobic zmienna globalna volatile int f = jaks wartosc poczatkowa; poniewaz f dajesz delay w ms to aby zobaczyc jakas zmianę to bedziesz musial sie naklikac (do 1 sekundy 1000 razy) zrób sobie dodawanie jakiejs wiekszej wartosci no 200 lub 500, albo zamiast mydelay(f) zrób madelay(f * mnoznik)

    Mikrokontrolery AVR   10 Kwi 2016 09:34 Odpowiedzi: 20    Wyświetleń: 2106
  • Atmega 32 - 16 MHz: Diody migają z nieprawidłową szybkością, jak to naprawić?

    Te opóźnienia są na moje oko za małe. Spróbuj tego: void Delayms(unsigned int _ms) { unsigned int delay, delay_ms; for(delay=0; delay<_ms; delay++) { for(delay_ms=0; delay_ms<2665; delay_ms++) { asm volatile ("WDR"::); } } } Jest skalibrowane dla ATmegi 16MHz, jak...

    Mikrokontrolery   21 Gru 2006 14:14 Odpowiedzi: 4    Wyświetleń: 1598
  • Czy można cyklicznie odczytywać EEPROM w pętli co 0,5 sekundy?

    Tak, jest zerowane w przerwaniu, ale zmienna nie jest oznaczona jako volatile - w takim przypadku kod zostanie zoptymalizowany do jednego sprawdzenia i pętli nieskończonej. Dodano po 6 unsigned char DELAY; void myfunc() { DELAY = 1; while(DELAY); } kompiluje się do: myfunc: ldi r24,lo8(1) sts DELAY,r24 /* ustawienie...

    Mikrokontrolery AVR   14 Gru 2008 01:11 Odpowiedzi: 35    Wyświetleń: 3537
  • Jak dodać obsługę procesorów STM G030 do Atollica 9.3.0?

    To może ze względu na mniej doświadczonych kolegów (...), zrobiłbyś instrukcję krok po kroku jak taki projekt w Keilu stworzyć 1. Pobrać i zainstalować MDK-Arm w wersji najbardziej aktualnej. 2. Przy pierwszym uruchomieniu od razu przejść do Pack Installer -a - ostatnia ikonka na niższym pasku narzędzi. 3. Tam powinna się samoczynnie zaktualizować...

    Mikrokontrolery   23 Wrz 2019 19:36 Odpowiedzi: 22    Wyświetleń: 834
  • NUCLEO F103 - brak migania diody na PB3 i PB4, PB5 działa

    Nie na pewno nie. [syntax=c] #include <STM32F1xx.h> int main(void) { RCC-> APB2ENR = RCC_APB2ENR_IOPBEN; RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; AFIO->MAPR |= (0b010 << 24); GPIOB->CRL |= GPIO_CRL_MODE3_1; GPIOB->CRL &= ~GPIO_CRL_CNF3_0; GPIOB->CRL |= GPIO_CRL_MODE4_1; GPIOB->CRL &= ~GPIO_CRL_CNF4_0; GPIOB->CRL...

    Mikrokontrolery ARM   02 Mar 2018 12:25 Odpowiedzi: 6    Wyświetleń: 894
  • STM32F100 vs ATmega32 – wolne odświeżanie LCD mimo wyższego zegara 24MHz

    W końcu doszedłem do tego co było nie tak z tym testem na diodzie. pętla dla atmegi musi wyglądać tak: [syntax=c]void delay(unsigned int t) { volatile unsigned char i,j,k,z=0; for(k=0; k<t; k++) { for (i=0; i<200; i++) { for (j=0; j<200; j++) { z= z+1; z= z-1; } } } }[/syntax] a dla STM: [syntax=c]void delay(unsigned int t) { volatile unsigned...

    Mikrokontrolery ARM   15 Cze 2012 08:26 Odpowiedzi: 24    Wyświetleń: 5764
  • [C][ATMEGA8] - Pętla a przycisk włączenia/wyłączenia

    Przerwania mogę obsługiwać na INT0 i INT1 a potrzebuję jeszcze trzeciego ^ To jest tylko jeden rodzaj przerwań - od zmiany stanów zewnętrznych cna odpowiednio oznaczonych wyprowadzeniach (zajrzyj do noty katalogowej... ;) ), nie ma nic wspólnego z przerwaniem Timera, które wystarczy jedno... Proszę bardzo, oto dramat w wielu "wątkach" do testów - wiem...

    Mikrokontrolery Początkujący   21 Lip 2012 10:03 Odpowiedzi: 11    Wyświetleń: 1719
  • Jak zdefiniować i sterować LCD przez 4-bitową szynę w C?

    ok, a ma ktos jakas biblioteke do lcd ale na arma? mecze sie z tym pare dni i lipa ... Nie moje ale działa, trzeba tylko opóźnienia po swojemu doszlifować. #include "lcd.h" #define SHORT_DELAY 1000 #define LONG_DELAY 5 #define IN0 #define OUT1 #define LCDD4(arg) if(arg==1) IO0SET=0x010000; else if(arg==0) IO0CLR=0x010000...

    Mikrokontrolery   29 Gru 2007 21:15 Odpowiedzi: 53    Wyświetleń: 9711
  • ATTiny2313 - Konfiguracja Timer0 w C do migania diodą LED bez użycia Delay

    po pierwsze nie licznik_led nie jest volatile a dalej nie sprawszalem

    Mikrokontrolery Początkujący   05 Lis 2015 15:45 Odpowiedzi: 47    Wyświetleń: 3003
  • Odmierzanie nanosekund na ARM przy użyciu timerów STM

    Po nic niewnoszących dyskusjach, sprawdzona funkcja odmierzająca us [syntax=c] __STATIC_INLINE void Delay_us(volatile uint16_t microseconds) { TIM10->CNT = 0; while ( TIM10->CNT < microseconds); } [/syntax] Wymaga oczywiście inicjalizacji timera na 1MHz (dla zegara 96MHz): [syntax=c] static void MX_TIM10_Init(void) { htim10.Instance = TIM10;...

    Mikrokontrolery ARM   13 Mar 2018 22:51 Odpowiedzi: 62    Wyświetleń: 3711
  • Atmega 8 układ czasowy. Proszę o propozycje programu.

    A może zrobić funkcję _delyms(1000) i wywołać ją w pętli 180 razy? NIe trzeba wtedy przerwań. Ja tak ostatnio odmierzałem minutę. Pozdr. Tomgart #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */ void delay(unsigned int us) { unsigned int delay_loops;...

    Mikrokontrolery   13 Sty 2007 12:53 Odpowiedzi: 13    Wyświetleń: 2766
  • [ATMEGA 8] Jak napisać program do tablicy LED z ATMEGA8 i BASCOM?

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

    Mikrokontrolery AVR   02 Lis 2010 07:54 Odpowiedzi: 106    Wyświetleń: 35841
  • [C] STM32F103 - problemy z komunikacją I2C z czujnikiem HTU21

    Funkcja _delay_ms() [syntax=c] volatile uint32_t usTick; volatile void _delay_us(uint32_t us){ usTick = us; while(usTick); } volatile void _delay_ms(uint16_t ms){ _delay_us(ms*1000); } void SysTick_Handler(void){ if(usTick != 0)usTick--; } [/syntax] I w funkcji main() jeszcze to: SysTick_Config(72000000/1000000);

    Mikrokontrolery ARM   20 Sie 2020 10:21 Odpowiedzi: 19    Wyświetleń: 921
  • Uno R3 - Jak napisać kod do sterowania diodą LED i przyciskiem na 5 sekund?

    Skorzystaj z dobrodziejstwa, zwanego przerwaniem. Kilka dni temu coś podobnego napisałem na tym forum. Wystarczy trochę poszukać. [syntax=cpp] // Int0 przez rezystor do masy, a przycisk do Int0 i do +5V int ledOut = 13; // (oczywiście możesz wybrać inny pin) volatile int state = LOW; void setup() { pinMode(ledOut, OUTPUT); attachInterrupt(0, zapal,...

    Arduino   26 Mar 2015 00:25 Odpowiedzi: 4    Wyświetleń: 1419
  • LPC17xx NXP - ile cykli zegarowych trwa wykonanie pętli FOR?

    z tego co ostatnio liczyłem to taka pętla: Dodano po 1 A no i bez nop'a kompilator przy pewnych ustawieniach wytnie Tobie całą pętlę.

    Mikrokontrolery ARM   20 Maj 2011 10:03 Odpowiedzi: 9    Wyświetleń: 2183
  • [stm32]płytka Discovery i DS1820, dokładny delay us

    Nie wiedzę inicjalizacji delayflag. The C language guarantees that all uninitialized global variables will be initialized to zero. Sprawdź tak: [syntax=c]volatile int delayFlag = 1;[/syntax] Twój pierwszy delay trwa tyle co kilka cykli procesora. Prześlij mi cały projekt, to sprawdzę w wolnej chwili u siebie.

    Mikrokontrolery ARM   09 Kwi 2011 16:56 Odpowiedzi: 12    Wyświetleń: 7039
  • STM32F103 - Jak zrealizować czterobitowy licznik na diodach LED?

    Dzięki za podpowiedź, w dzień spróbuję napisać ten licznik i wstawię kod. A do do delay to jak teraz patrzę to chyba coś pomyliłem. Czy było by dobrze gdybym napisał: [syntax=c]volatile uint32_t a=0; void SysTick_Handler (void) { if(a) { a--; } } void delay(int time) { a=time; while(a); }[/syntax] I jeszcze pytanie, jak mógłbym napisać tą funkcję opóźniającą...

    Mikrokontrolery Początkujący   16 Gru 2018 02:26 Odpowiedzi: 7    Wyświetleń: 735
  • Znów Led na Atmega8, definicja wejść. Szybsze miganie diody na PC5.

    Jak wykombinować aby na PC5 taż migała dioda tyleże szybciej? Jak zdefiniować wejścia. #define LED_ON sbi(DDRB,PC5);sbi(PORTB,PC5&... #define LED_OFF sbi(DDRB,PC5);cbi(PORTB,PC5&... #include <avr/io.h> /***************************************... Definicje stałych ****************************************...

    Mikrokontrolery   27 Gru 2006 12:58 Odpowiedzi: 4    Wyświetleń: 1621
  • Atmega8 C: PORTB PB0-PB3 wyświetla 7 zamiast 5 przy ustawianiu liczb 0-9

    Piszę w C. Na PORTB ustawiam kolejno liczby 0,1,2,3,4,5,6,7,8,9, jednak na porcie (piny PB0-PB3) pojawiają się liczby 0,1,2,3,4,7,6,7,8,9 - 5 zmienia się w 7. Czy należy przełączyć jakąś funkcję portu, czy może mikrokontroler jest uszkodzony? Wykluczam uszkodzenie czy błędne podłączenie urządzenia wyjściowego. To pierwszy program, który piszę (pętli...

    Mikrokontrolery   11 Kwi 2007 23:50 Odpowiedzi: 6    Wyświetleń: 2055
  • Atmega 8 - dlaczego miga tylko jedna dioda w pętli?

    Koledzy może ktoś mi wytłumczy dlaczego miga tylko 1 dioda //definiujemy stany portu sterującego diodą LED #define LED_ON sbi(DDRD,PD1);sbi(PORTD,PD1&... #define LED_OFF sbi(DDRD,PD1);cbi(PORTD,PD1&... #define LED_ON1 sbi(DDRD,PD3);sbi(PORTD,PD3&... #define LED_OFF1 sbi(DDRD,PD3);cbi(PORTD,PD3&...

    Mikrokontrolery AVR   15 Gru 2008 01:11 Odpowiedzi: 2    Wyświetleń: 981
  • Jak sprawdzić uszkodzenie ATMega8 przy użyciu omomierza i AVRDude?

    Hmmm.. Ale przy fusach nic nie kombinowalem, nawet tego nie umiem :-) Chyba ze cos przez przypadkowe zwarcie koncowek... Nabardziej skomplikowany program, jaki wgralem, to taki: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/delay.h> #include <inttypes.h> #define F_CPU 1000000 #define...

    Mikrokontrolery   27 Sie 2005 15:30 Odpowiedzi: 14    Wyświetleń: 2160
  • Jakie środowisko do STM32 Nucleo-f103? Problemy z Eclipse System Workbench

    Ciągle walczę i właśnie pobrałem sobie CubeIDE i teraz ta: 1. stworzyłem nowy projekt bez bibliotek zaznaczając m.in. Target projekt type na empty: https://obrazki.elektroda.pl/9699499800_... 2. w projekcie zobaczyłem pliki: - main.c - syscalls.c - sysmem.c 3. wrzuciłem sobie do projektu kolejne pliki: - stm32f103xb.h - core_cm3.h -...

    Mikrokontrolery ARM   19 Lut 2025 15:32 Odpowiedzi: 7    Wyświetleń: 171
  • Jak zrealizować detekcję zbliżenia ręki z TSOP1736 na ATmega 8L?

    Zastanawiam się jak przerobić ten program aby LED zaczęła migać kiedy zbliżę rękę a zgasła gdy oddalę pozdr. #include <avr/io.h> /***************************************... Definicje stałych ****************************************... #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000)...

    Mikrokontrolery   03 Sie 2005 13:34 Odpowiedzi: 3    Wyświetleń: 1779
  • Atmega16 – wyjaśnienie obliczania opóźnień w funkcji delay() przy F_CPU 1MHz

    #include <avr/io.h> /***************************************... Definicje stałych ****************************************... #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */ /***************************************...

    Mikrokontrolery   30 Sie 2007 18:10 Odpowiedzi: 3    Wyświetleń: 1155
  • STM32F4Discovery - Dziwne zachowanie uC po ponownym włączeniu mikrokontrolera

    Witam, Wczoraj przyszedł mój niedawno zakupiony STM32F4Discovery. Do programowania wybrałem CooCoxa 1.7.5 (ToolChaina oczywiście załadowałem). Zabawę zacząłem od napisania prostego programu migającym naprzemiennie diodami: #include <stm32f4xx_rcc.h> #include <stm32f4xx_gpio.h> void Delay(void) { volatile uint32_t i; for (i...

    Mikrokontrolery ARM   17 Gru 2013 23:33 Odpowiedzi: 2    Wyświetleń: 978
  • Reset w at91sam7s64. Wiggler nie wysyła żadnych impulsów.

    no tak :) ale gafa z tym 21 ze tez nie zauwazylem..... Dodano po 10 Mam tak ale i tak nie chce ten pin generowac sygnalu zegarowego..... Jakby wisi w powietrzu p_pPio->PIO_PDR=(1<<21); p_pPMC->PMC_SCER=((1<<9)); p_pPio->PIO_BSR=((1<<21)); Mozesz mi napisac jak to ma byc ? Dodano po 16 Ok dziala .... Bynajmniej na slowclock...

    Mikrokontrolery   05 Gru 2007 13:22 Odpowiedzi: 18    Wyświetleń: 1466
  • DS18B20 na ATmega32 - błędne odczyty temperatury po czasie

    Obsługę przerwań mam w innym pliku #include <avr\interrupt.h> #include <avr\io.h> #include <inttypes.h> #include <stdio.h> #include <avr\pgmspace.h> #include <util\delay.h> #include <math.h> #include "onewire.h" #include "makra.h" #include "harddef.h" #include "lcd.h"...

    Mikrokontrolery AVR   22 Cze 2014 14:56 Odpowiedzi: 4    Wyświetleń: 2546
  • [AVR] Jak opóźnić miganie diody LED na AVR za pomocą pustej pętli for?

    Z volatile ma to prawo dzialac, bez - nie. Kompilator taka petle powinien wyrzucic bo jest pusta i nic nie robi. Nie wiem skad ten upor i zabawa z petlami, skoro jest od tego funkcja delay. No i w prawdziwym procesorze przy petli do 10000 to migania nie zobaczysz, nawet jesli go popedzisz w wewnetrznego RC to masz w zaleznosci od proce 1,2-8MHz, czyli...

    Mikrokontrolery AVR   23 Paź 2009 07:40 Odpowiedzi: 16    Wyświetleń: 3638
  • Obliczanie czasu trwania procedury delay() na procesorze 11.059200 MHz

    Wszystko zalezy od tego jak inteligentny jest kompilator, jeśli jest bardzo dobry to ta pętla zostanie usunięta. Jedyne co możesz spróbować to zrobić wstawke w asemblerze albo spróbować ustawić zmienną licznika pętli jako volatile (być może optymalizacje wtedy jej nie ruszy).

    Mikrokontrolery   30 Lip 2004 23:15 Odpowiedzi: 9    Wyświetleń: 1556
  • [Atmega8][C][PCF8583P] - Wewnętrzne przerwania asynchroniczne. Czy potrzebne?

    a) delay de facto w pętli przerwania (bo w showTimeOnLEDS() ), to może/musi miec głębokie skutki b) volatile jest użyte w sposób który myli, to nie działa tak, jak myślisz.

    Mikrokontrolery   18 Sie 2016 21:14 Odpowiedzi: 18    Wyświetleń: 1908
  • [C] atmega8 + UART - niepoprawne znaki przy odbiorze danych w gtkterm

    Obiecałem działający programik. Działa na 100%. Jest to progrtam, który wysyła stan temperatury z DS18B20 do kompa, ale dla Ciebie najistotniejszy jest sposób komunikacji. Jest wysyłane zapytanie i uC zwraca odpowiedź. Jak uporasz się z krzaczkami, to program Ci się przyda. Można zrobić bardzo prosty protokół wymiany informacji. #include <avr/io.h>...

    Mikrokontrolery AVR   11 Gru 2009 18:36 Odpowiedzi: 17    Wyświetleń: 4441
  • Z111xP - lpc1114 - tłumaczenie kodu programu i schemat płytki

    HD44780 pin RW stale = 0. A dane są rejestrowane tylko w LCD. Nie czytaj. SystemInit() prawdopodobnie zdecydowany w startupe. Prowadzi zegar systemowy. Można to zrobić dla Delay //:::::::...

    Mikrokontrolery Początkujący   06 Kwi 2017 17:44 Odpowiedzi: 16    Wyświetleń: 1962
  • LPC1114 - który plik LPCOpen zaimportować do LPCXpresso?

    Spokojnie nic nie ruszaj w board.c jest to plik dostarczony przez nxp_lpcxpresso_11c24_board_lib na potrzeby płytki lpcxpresso zawierający m. in. funkcje inicjalizacyjne elementów wyposazenia tej płytki. Możesz spokojnie nic nie ruszać, bo fragment kodu NO_BOARD_LIB . W środowisku programistycznym LPCXpresso powinieneś mieć kod, który nie będzie włączony...

    Mikrokontrolery ARM   19 Sty 2015 13:42 Odpowiedzi: 9    Wyświetleń: 1542
  • HY-Mini STM32 - Zaświecenie diody poprzez naciśnięcie buttona

    Dzień dobry! Przycisk podpięty do płytki mam w/g schematu: http://arduino.cc/en/uploads/Tutorial/bu... Kod mojego maina: #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include "stm32f10x_flash.h" #include "misc.h" /* Scheduler includes. */ #include <stdio.h> #include "FreeRTOS.h" #include...

    Mikrokontrolery ARM   20 Gru 2012 20:12 Odpowiedzi: 6    Wyświetleń: 2964
  • [Atmega8] Jak zmierzyć czas stanu wejścia z dokładnością 100ms na Atmega8 w C?

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

    Mikrokontrolery AVR   06 Sie 2011 18:22 Odpowiedzi: 53    Wyświetleń: 7540
  • [Atmega128] Przykładowy kod w C dla Atmega128 obsługujący 2xRS232, konfiguracja AVR Studio

    #include <avr/interrupt.h> #include <inttypes.h> #include <stdlib.h> #include <math.h> #include <avr/io.h> #define F_CPU 7372800 //20000000 //18432000 //11059200 //3686400 //18432000 //14745600 #define CYCLES_PER_US (F_CPU/1000000) /****** Funkcje delay ****************************************... void delay(unsigned...

    Mikrokontrolery AVR   24 Sie 2008 12:52 Odpowiedzi: 13    Wyświetleń: 1991
  • [LPC1114] Konfiguracja SysTick w LPC1114 na przerwanie co 1us - dlaczego nie działa?

    Witam serdecznie, próbuję skonfigurować SysTick do generowania przerwania co 1us. O ile 10us działa prawidlowo (sprawdzam to poprzez świecenie diodkami) to już dla 1us nie działa. Poniżej kod: [syntax=c]#ifdef __USE_CMSIS #include "LPC11xx.h" #endif #include <cr_section_macros.h> #include "driver_config.h" #include "target_config.h" #include "gpio.h"...

    Mikrokontrolery ARM   23 Kwi 2012 07:57 Odpowiedzi: 60    Wyświetleń: 7021
  • STM32f1 i DS18B20 - USART czy klasyczna komunikacja 1-wire?

    Mam wspaniałe dzieła stm32f103 1-ware slave na takich delay //:::::::... // Прогрk...

    Mikrokontrolery ARM   13 Lip 2017 11:08 Odpowiedzi: 11    Wyświetleń: 2754
  • [atmega16] [atmega16][c/avr-gcc] UART w przerwaniach - nieoczekiwane działanie programu

    Już rozumiem. Robiłem wskaźnik na zmienną typu volatile char a sam wskaźnik nie był volatile. Tylko dalej nie wiem czemu działało to jak się dało delay. Powinno wtedy też nie działać. heh. Jest to troche dziwne. Na razie nie zamykam, może ktoś będzie w stanie wytłumaczyć to zjawisko.

    Mikrokontrolery AVR   29 Cze 2012 11:49 Odpowiedzi: 25    Wyświetleń: 2463
  • Jak odczytać stan pinu PA4 w mikrokontrolerze AT91SAM7S64?

    NIe umiem odczytac stanu pinu PA4 w ww. procku. Mam taki kod : #include "Board.h" void delay(void) { volatile unsigned long int i; for(i = 0; i < 1000000; i++) ; } int main(void) { //AT91PS_PMC pPMC = AT91C_BASE_PMC; AT91PS_PIO p_pPio = AT91C_BASE_PIOA; //AT91PS_PMC p_pPMC = AT91C_BASE_PMC; AT91PS_USART...

    Mikrokontrolery   17 Paź 2007 18:07 Odpowiedzi: 6    Wyświetleń: 1602
  • Czy mogę użyć zmiennej x jako argumentu w funkcji delay_ms()?

    W przypadku AVR delay używający zmiennej kompiluje się poprawnie: Ten temat nie dotyczy ARM. Dodano po 1 i o jaka implementację delay_ms. Fakt. Dla AVR autor napisałby "_delay_ms(x)". Nie chodzi też o Arduino - "delay(x)" a może "Delay(x)".

    Arduino   22 Maj 2018 16:37 Odpowiedzi: 17    Wyświetleń: 927
  • Różnice między zdarzeniami a przerwaniami w STM32F103

    Tak sobie próbuje odpalic banalne mruganie diodą wg przykładu: #include "stm32f10x.h" int main(void) { RCC->APB2ENR = RCC_APB2ENR_IOPBEN; GPIOB->CRL |= GPIO_CRL_MODE1_1; GPIOB->CRL &= ~GPIO_CRL_CNF1_0; [b]volatile uint32_t delay;[/b] //(13) while(1){ //(15) GPIOB->ODR |=...

    Mikrokontrolery ARM   18 Mar 2016 12:32 Odpowiedzi: 51    Wyświetleń: 4728
  • STM32F411VEx Discovery - Nieprawidłowa częstotliwość na wyjściu GPIOD 12

    Teraz wiem ze ten przykład mi działa to zaraz się przekonam czy faktycznie to MCO2 się do tego lepiej nada. Spróbuj może tego: [syntax=c] void mco2enable() { volatile uint32_t tmpreg = 0x00U; // set mco2 port clock RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; // delay after an RCC peripheral clock enabling tmpreg = RCC->AHB1ENR & RCC_AHB1ENR_GPIOCEN; (void)(tmpreg);...

    Mikrokontrolery ARM   11 Lis 2016 14:38 Odpowiedzi: 18    Wyświetleń: 1161
  • Jak zatrzymać działanie diody LED na ATmega przed upływem 3 minut?

    Witam koledzy Przerobiłem program na atmegę tak aby mi świeciła dioda led ok 3 minut Jak zrobić aby tym samym przyciskiem w razie konieczności wcześniej ją wyłączyć. /*zdefiniowanie Pinu wyjściowego*/ #define OUT_ON DDRB|=_BV(1); PORTB|=_BV(1); #define OUT_OFF DDRB=_BV(1); PORTB&=~_BV(1); /*zdefiniowanie pinów B0...

    Mikrokontrolery AVR   28 Gru 2008 23:21 Odpowiedzi: 14    Wyświetleń: 1538
  • Jak skompilować plik .hex z kodu C dla mikrokontrolera ATmega16?

    ok mam AVR Studio 4 i podczas kompilacji takiego kodu: #include <avr/io.h> /***************************************... Definicje stałych ****************************************... #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond...

    Mikrokontrolery AVR   14 Lut 2010 16:11 Odpowiedzi: 4    Wyświetleń: 3527
  • [AVR] [AVR][C] Rozpoznawanie stanów sieci 1Wire na ATMEGA8, INT0 i timer

    Napisałem coś takiego (kod poniżej) i prawie działa. Problem był w deklaracji: volatile int LICZNIK (miałem double zamiast int i nie chciało działać). Jak przepisać cały licznik do zmiennej (jaką zmienną zadeklarować)? #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> //Definicje i markodeklaracje //Definicje do...

    Mikrokontrolery AVR   15 Mar 2009 12:37 Odpowiedzi: 8    Wyświetleń: 2475
  • [C] Atmega8: Jak ustawić porty PD1, PB1 i PB2 w C z opóźnieniem?

    Poznałem trochę podstaw o programowaniu ale nie mogę sobie dać rady nad właśnie ta instrukcja bo nie wiem jak ona powinna wyglądać. O to mój program ale nie działa :( #include <avr/io.h> #define F_CPU 1000000 #define CYCLES_PER_US ((F_CPU+500000)/1000000) #define SM_ON sbi(DDRB,PB1);cbi(PORTB,PB1) #define SP_ON sbi(DDRB,PB2);cbi(PORTB,PB2) #define...

    Mikrokontrolery   07 Paź 2007 18:42 Odpowiedzi: 8    Wyświetleń: 1557
  • STM32F100RB - kompilacja arm-none-eabi-gcc z biblioteką CMSIS, makefile, dioda LED

    Witam, niestety muszę prosić o pomoc u podstaw, bo poległem. Problem jest taki: chciałem skompilować testowy program za pomocą arm-none-eabi-gcc z biblioteką CMSIS, bez żadnych eclipse, bez żadnych płytek rozwojowych - po prostu dioda podłączona do wyjścia procesora. Biblioteka chyba nie przewiduje bycia używanym przez arm-none-eabi-gcc więc: 1. utworzyłęm...

    Mikrokontrolery ARM   30 Paź 2016 22:23 Odpowiedzi: 20    Wyświetleń: 1221
  • Jak zastąpić delay_ms w funkcji SMS_answer i Send_SMS2? Timer nie działa poprawnie

    (at)marek-czarny Programowanie nie jest dla osób szybko się irytujących. Rozwiązując problem, rozwiązuje się go po kolei. Obsługa LCD wprowadza znaczące opóźnienia, zapewne w kodzie tych funkcji masz delay lub oczekiwanie na jakiś stan. Efektywnie odpowiada to sytuacji w której delay, w dodatku losowy, wpakowałbyś do pętli głównej. Może tego nie dostrzegasz,...

    Mikrokontrolery AVR   24 Lut 2017 12:38 Odpowiedzi: 20    Wyświetleń: 1362
  • ATMEGA8 - Obliczenia przy użyciu math.h - co robię nie tak?

    Funkcje delay muszą być wywoływane z parametrem będącym stałą. Użycie w wywołaniu zmiennej jest błędne, prowadzi do wzrostu objętości kodu i błędnego czasu opóźnienia. Twój przykład na to również wskazuje - zmienna int z przypisaną wartością użyta jako argument wywołania delay powoduje, że optymalizator to skraca do stałej i jest ok. Jeśli użyjesz modyfikatora...

    Mikrokontrolery AVR   27 Paź 2012 08:53 Odpowiedzi: 3    Wyświetleń: 1248
  • ATMEGA8 PWM - przykładowy kod w C do implementacji PWM

    Witam, Mam prosbe, czy moze ktos mi podeslac kawalek kodu w C implementujacego PWM w Atmega8. Sa informacje na ten temat na forum, ale sa na tyle niescisle, ze nie moge sobie poradzic z tym problemem. Z gory dzieki! Dolaczam moj kod. Moze ktos zorientuje sie, gdzie jest blad? #include <avr/io.h> #include <avr/sleep.h> #define F_CPU 1000000...

    Mikrokontrolery   31 Gru 2006 00:32 Odpowiedzi: 15    Wyświetleń: 1841
  • STM32F103 - PWM na diodzie LED, pin 8 GPIOB, brak reakcji po zaprogramowaniu

    Witam. Na wstępie przepraszam za może głupie pytanie i problem, ale jestem początkujący. Chciałbym móc sterować jasnością świecenia diody LED za pomocą PWM. W późniejszych próbach różne jasności ustawić pod różne przyciski itp, a na końcu sterować programowo. Program nie jest całkowicie mój, wzorowałem się na wielu kodach znalezionych w internecie......

    Mikrokontrolery ARM   08 Cze 2013 09:24 Odpowiedzi: 1    Wyświetleń: 2400
  • [Arduino UNO] Jaka jest przyczyna przesunięcia wyświetlania znaków na wyświetlaczu 7-segmentowym?

    Cześć, Napisałem poniższy program do obsługi zegara elektronicznego, w zaprogramowanym czasie wyświetla kolejno czas (hh:mm) oraz temperaturę na wyświetlaczu 7-segmentowym. [syntax=c]#include <Adafruit_BMP280.h> #include <Wire.h> #include <TimeLib.h> #include <DS1307RTC.h> #include <avr/io.h> #include <avr/interrupt.h>...

    Arduino   06 Cze 2025 20:28 Odpowiedzi: 17    Wyświetleń: 825