-
Data: 2009-04-21 20:07:30
Temat: Re: WinAvr tablica wskaźników funkcji jak?
Od: Zbych <a...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
- Laptop MSI się nie uruchamia.
- Dobra listwa LED (CRI 90-95, bez migotania)
- masowe programowanie AVR
- Fajny pomysł na monitor z klawiaturą
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Aparat, zewnętrzny mikrofon, brum
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
Najnowsze wątki
- 2024-10-19 Warszawa => Software Engineer .Net <=
- 2024-10-19 Warszawa => Senior SAP HANA Developer <=
- 2024-10-19 Warszawa => Specjalista Helpdesk <=
- 2024-10-19 PUE ZUS -- administracyjna nuda...
- 2024-10-18 Marsz niepodleglosci
- 2024-10-18 Pożar parkingu w Luton
- 2024-10-18 Łódź => Spedytor Międzynarodowy <=
- 2024-10-18 Gdańsk => Technical Lead ( (Java Background)) <=
- 2024-10-18 Warszawa => Head of International Freight Forwarding Department <=
- 2024-10-18 uwazajmy na haczyki w umowach
- 2024-10-18 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-10-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-10-18 Gdańsk => Software .Net Developer <=
- 2024-10-18 Warszawa => Junior Rekruter <=
- 2024-10-18 Warszawa => Key Account Manager <=