-
Data: 2013-03-11 16:43:23
Temat: Re: Fast PWM - trójkąt zamiast sinusa na wyjściu
Od: Michal Schulz <m...@t...de> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Am 20.02.13 18:20, schrieb Atlantis:
>> volatile i const w jednym miejscu znaczy zazwyczaj "kompilatorze, zepsuj
>> mi tu optymalizacje".
>
> Kierowałem się analogią do wyczytanej kiedyś zasady, że wszystkie
> zmienne globalne używane w przerwaniach powinny mieć "volatile" przy
> definicji.
Marna to zasada bo zbytnio uogolnia.
>> Póki masz miejsce we flash to takie rzeczy powinieneś pakować w progmem.
>
> Jak rozumiem masz na myśli użycie avr/pgmspace.h i zdefiniowanie tablicy
> przez:
>
> prog_char sinus_buffer[] = {wartość 1, wartość 2, .., wartość n};
>
> oraz odczyt przez:
>
> pgm_read_byte(&sinus_buffer[sinus_ind])
Dokladnie o to chodzilo. Trzymanie tablicy ze stalymi w RAM to
marnotrastwo pamieci ktorej Atmel ma dosc malo. Tak samo jak trzymanie
tam np. wszelkich lancuchow tekstowych.
> Rozumiem, że przy definicji takiej tabeli nie muszę stosować "volatile",
> nawet jeśli będę się do niej odwoływał w przerwaniu?
Ale po co tam mialo by byc volatile? to slowo informuje kompilator, ze
zawartosc pamieci moze ulec zmianie w sposob dla kompilatora malo
przewidywalny, innymi slowy kompilatorowi nie wolno optymalizowac
dostepu do zmiennej.
Następne wpisy z tego wątku
- 11.03.13 16:49 Michal Schulz
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=