Dobrý večer,
prosím vás, stále nechápu, k čemu slouží u programů, psaných v C, soubory s příponou .h?
Co je v nich zadefinováno? Jsou nutné?
Když si zkouším napsat nějaké jednoduché začátečnické programy typu blikající LED a pod., tak se mi žádné takové soubory nevytvářejí.
Kdo je tedy vytváří, kdy, proč a k čemu slouží?
Jako příklad uvádím obsah jednoho takového (Microchip, jeden z ukázkových programů pro PICDEM2 PLUS).
Díky!
Vl.
Příklad:
/**
- @file Buttons.h
- @brief This file contains the function prototypes for input
-
switchs used to determine a single or multiple button push.
- @defgroup Buttons Button Detection
*/
#ifndef _BUTTONS
#define _BUTTONS
typedef struct
{
unsigned char But1Pressed : 1;
unsigned char But2Pressed : 1;
unsigned char But3Pressed : 1;
unsigned char But4Pressed : 1;
unsigned char But5Pressed : 1;
unsigned char But6Pressed : 1;
unsigned char But7Pressed : 1;
unsigned char But8Pressed : 1;
} BUTMSK_T;
BUTMSK_T Buttons; // Buffer for up to 8 buttons
#define RA4_PRESSED() (Buttons.But1Pressed)
#define RB0_PRESSED() (Buttons.But2Pressed)
#define BOTH_PRESSED() ((Buttons.But1Pressed) && (Buttons.But2Pressed))
#define BUT_PRESSED() ((Buttons.But1Pressed) || (Buttons.But2Pressed) ||
(Buttons.But3Pressed) || (Buttons.But4Pressed) ||
(Buttons.But5Pressed) || (Buttons.But6Pressed) ||
(Buttons.But7Pressed) || (Buttons.But8Pressed))
#define SET_RA4() Buttons.But1Pressed = 1
#define RESET_RA4() Buttons.But1Pressed = 0
#define SET_RB0() Buttons.But2Pressed = 1
#define RESET_RB0() Buttons.But2Pressed = 0
/// @brief Index for multiple buttons or press states.
/* enum PressedButton
{ RA4_PRESSED =1 ,
RB0_PRESSED =2 ,
BOTH_PRESSED=3}; */
void CheckButtons(void); // Routine used to debounce and determine button press.
UINT8_T GetButtons(void); // Service routine returns which button has been pressed.
void ButtonsInit(void);
#endif
administrator: přejmenováno z "“h” soubory v C"