Wskaźniki
Ostatnio zmodyfikowano 2017-03-26 21:54
henryxxl Temat założony przez niniejszego użytkownika |
Wskaźniki » 2017-03-26 20:04:11 Witam. Jestem nowy na forum i mam do was pytanie. Mam taki program: main.c #include <avr/io.h>
#include "keys.h"
#define LED1 (1<<PD7) #define LED1_TOG PORTD ^= LED1
void moje_miganie_led( void ) { LED1_TOG; }
int main( void ) { DDRD |= LED1; key_init(); while( 1 ) { moj_klawisz( moje_miganie_led ); } }
keys.c #include <avr/io.h>
#include "keys.h"
void key_init( void ) { PORTC |= KEY1; }
void moj_klawisz( void( * fun_wsk )( void ) ) { static uint16_t key_lock; if( !key_lock && !( PINC & KEY1 ) ) { key_lock = 50000; if( fun_wsk ) fun_wsk(); } else if( key_lock &&( PINC & KEY1 ) ) key_lock++; }
keys.h #ifndef KEYS_H_ #define KEYS_H_
#define KEY1 (1<<PC7)
void key_init( void ); void moj_klawisz( void( * fun_wsk )( void ) );
#endif
Nie rozumiem jak dziala linijka void moj_klawisz( void( * fun_wsk )( void ) ); |
|
marcolo2307 |
» 2017-03-26 21:54:59 To deklaracja funkcji przyjmującej jako parametr wskaźnik na funkcję void nazwa( void ) . Tutaj masz to opisane. |
|
« 1 » |