-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.task.gda.pl!news.mm.pl!not-for-
mail
From: Zbych <a...@o...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: WinAvr tablica wskaźników funkcji jak?
Date: Tue, 21 Apr 2009 22:07:30 +0200
Organization: Multimedia Polska S.A.
Lines: 44
Message-ID: <gsl93j$ceu$2@news.mm.pl>
References: <gsl6c8$b2$1@nemesis.news.neostrada.pl> <gsl76p$2dbj$1@news.mm.pl>
NNTP-Posting-Host: host-62-141-227-0.tomaszow.mm.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.mm.pl 1240344499 12766 62.141.227.0 (21 Apr 2009 20:08:19 GMT)
X-Complaints-To: a...@m...pl
NNTP-Posting-Date: Tue, 21 Apr 2009 20:08:19 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
In-Reply-To: <gsl76p$2dbj$1@news.mm.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:562235
[ ukryj nagłówki ]Zbych pisze:
> azazel pisze:
>
>> udało mi sie stworzyc taka tablice i wywoływanie po numerze z pamieci ram
>> ale nie wiem jak to umiescic w pamieci flash i uruchamiac procedury
>> majac tylko pozycje
> [...]
>> Może ktoś z szanownych grupowiczów wie
>> jak to umieścić i jak wywołac?
>
> Tablicę wskaźników do funkcji umieszczasz we flashu tak samo jak każdą
> inną stałą - dodając PROGMEM.
> http://www.nongnu.org/avr-libc/user-manual/group__av
r__pgmspace.html
>
> Wywoływanie jest trochę bardziej upierdliwe. Najpierw musisz obliczyć
> adres wskaźnika we flashu, potem podać adres do makra pgm_read_word i
> dopiero mając wskaźnik możesz użyć go do wywołania funkcji.
>
Tutaj masz przykład:
#include <avr/io.h>
#include <avr/pgmspace.h>
void a( void ){
PORTC = 0xFF;
}
void b( void ){
PORTC = 0x00;
}
typedef void (*fp)(void);
const PROGMEM fp Tab[]={&a,&b};
void main( void ){
((fp)pgm_read_word(&Tab[0]))();
((fp)pgm_read_word(&Tab[1]))();
}
Najnowsze wątki z tej grupy
- 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...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
Najnowsze wątki
- 2025-07-03 ROG
- 2025-07-03 OZE dały Polsce więcej prądu niż elektrownie węglowe
- 2025-07-03 Dlaczego nikt nie powiadamia służb!
- 2025-07-02 Jaka ładowarka sieciowa do Iphona?
- 2025-07-02 ,,The Plot to Get RFK" (,,Spisek, by pozbyć się RFK")
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Rozkaz 16-2025: 2025-06-19 Apelacja Do Wyroku Sądu Rej. w Sprawie IVRNs 295-23
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Inżynierowie... inżynierzy...
- 2025-07-02 Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 2025-07-02 Kto potrafi sprawdzić aku BMW 48V 10Ah Li-Ion do mini hybrydy, czy sprawny ?
- 2025-07-02 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-02 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-02 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-02 Warszawa => Inżynier oprogramowania .Net <=