-
Data: 2012-07-27 07:45:33
Temat: Re: wskaźniki do flash w WinAVR
Od: max441 <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-07-25 08:15, slawek7 pisze:
> Wracając jeszcze do wskaźników w WinAVR.
> Powiedzmy że mam funkcję
> viod funkcja(byte *ptr)
> {
> char=read_pgm_byte(ptr); // np robi cos takiego
> }
>
> A teraz jej wywołanie
> funkcja(PSTR("cos do wyświetlenia bez sensu"));
> lub tak
> funkcja(tab);
> z tym że
> prog_char tab[] PROGMEM={"inny tekst"};
>
> Pytanie takie:
> 1. Czy byte powinno byc typu char czy prog_char?
Powinno być prog_char, albo właściwie const prog_char. Można używać
zdefiniowanego w <avr/pgmspace.h> PGM_P, definicja wygląda tak: #define
PGM_P const prog_char *.
> 2. Czy tab powinna mieć dwie deklaracje umieszczające łańcuch we Flash? czy albo
używa się prog_char czy albo PROGMEM?
Można tak:
prog_char tab[] = {"inny tekst"};
albo tak:
char PROGMEM tab[] = {"inny tekst"};
>
> Skoro prog_char jest zmienną z atrybutem PROGMEM to czy należny tego używać
podwójnie?
Nie.
> TAk samo wskaźnik w funkcji powinien być zmienną to czy deklarowanie go jako
zmienna będąca we flash ma sens?
>
Wskaźnik powinien wskazywać na stałą w pamięci flash, czyli coś takiego:
const prog_char *ptr
albo prościej
PGM_P ptr
Następne wpisy z tego wątku
- 27.07.12 11:18 Artur M. Piwko
- 27.07.12 13:40 WTK
- 28.07.12 19:03 Artur M. Piwko
- 30.07.12 10:45 max441
- 31.07.12 09:04 Artur M. Piwko
Najnowsze wątki z tej grupy
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=