www.pudn.com > DSP2812formotorcontrol.rar > DSP281x_Hall3.h


/* ================================================================================== 
File name:        DSP281x_Hall3.H                      
                     
Originator:	Digital Control Systems Group 
			Texas Instruments 
Description:   
Header file containing data type and object definitions and  
initializers. Also contains prototypes for the functions in DSP281x_HALL3.C. 
 
Target: TMS320F281x family 
 
===================================================================================== 
 History: 
------------------------------------------------------------------------------------- 
 04-15-2005	Version 3.20: Using DSP281x v. 1.00 or higher  
---------------------------------------------------------------------------------- */ 
 
#ifndef __DSP281X_HALL3_H__ 
#define __DSP281X_HALL3_H__ 
 
#include "DSP281x_BMSK.h" 
 
/*----------------------------------------------------------------------------- 
 Initialization states for T2CON and CAPCONA  
------------------------------------------------------------------------------*/ 
#define HALL3_INIT_STATE    0xB0FC 
 
/*----------------------------------------------------------------------------- 
Define the structure of the Capture Driver Object  
------------------------------------------------------------------------------*/ 
typedef struct { Uint16 CmtnTrigHall;     // Output: Commutation trigger for Mod6cnt input (0 or 0x7FFF) 
                 Uint16 CapCounter;       // Variable: Running count of detected edges on CAP1,2,3 
                 Uint16 DebounceCount;    // Variable: Counter/debounce delay current value 
                 Uint16 DebounceAmount;   // Parameter: Counter delay amount to validate/debounce GPIO readings 
                 Uint16 HallGpio;         // Variable: Most recent logic level on CAP/GPIO 
                 Uint16 HallGpioBuffer;   // Variable: Buffer of last logic level on CAP/GPIO while being debounced 
                 Uint16 HallGpioAccepted; // Variable: Debounced logic level on CAP/GPIO 
                 Uint16 EdgeDebounced;    // Variable: Trigger from Debounce function to Hall_Drv, if = 0x7FFF edge is debounced 
                 Uint16 HallMap[6];       // Variable: CAP/GPIO logic levels for HallMapPointer = 0-5 
                 Uint16 CapFlag;          // Variable: CAP flags, indicating which CAP detected the edge 
                 Uint16 StallCount;       // Variable: If motor stalls, this counter overflow triggers  
                                          //           commutation to start rotation. Rotation is defined as 
                                          //           an edge detection of a hall signal. 
                 Uint16 HallMapPointer;   // Input/Output (see note below): During hall map creation, this variable points to the  
                                          //            current commutation state.  After map creation, it  
                                          //            points to the next commutation state. 
                 int16 Revolutions;       // Parameter: Running counter, with a revolution defined as 1-cycle  
                                          //            of the 6 hall states 
                 void (*init)();          // Pointer to the init function  
                 void (*read)();          // Pointer to the read function  
               } HALL3; 
 
/* Note: 
- When HallMapPointer is as an input, it is defined by MOD6_CNT. 
- When HallMapPointer is as an output, during hall map creation,  
  this variable points to the current commutation state.   
  After map creation, it points to the next commutation state. 
*/ 
/*----------------------------------------------------------------------------- 
Define a handle for the HALL3 object 
------------------------------------------------------------------------------*/ 
typedef HALL3 *HALL3_handle; 
 
/*------------------------------------------------------------------------------ 
Default Initializer for the F281X_EV1 HALL3 Object 
------------------------------------------------------------------------------*/ 
#define F281XEV1HALL3   { 0,  \ 
                          0,  \ 
                          0,  \ 
                         10,  \ 
                          0,  \ 
                          0,  \ 
                          0,  \ 
                          0,  \ 
              {0,0,0,0,0,0},  \ 
                          0,  \ 
                     0xFFFF,  \ 
                          0,  \ 
                        -10,  \ 
					    (void (*)(Uint32))F281X_EV1_HALL3_Init,  \ 
                        (void (*)(Uint32))F281X_EV1_HALL3_Read  \ 
                         } 
 
/*------------------------------------------------------------------------------ 
Target Independent Default Initializer HALL3 Object 
------------------------------------------------------------------------------*/ 
#define HALL3_DEFAULTS F281XEV1HALL3 
 
/*------------------------------------------------------------------------------ 
Prototypes for the functions in DSP281X_HALL3.C 
------------------------------------------------------------------------------*/ 
void F281X_EV1_HALL3_Init(HALL3_handle); 
void F281X_EV1_HALL3_Read(HALL3_handle);                                              
void F281X_EV1_HALL3_Determine_State(HALL3_handle); 
void F281X_EV1_HALL3_Debounce(HALL3_handle); 
void F281X_EV1_HALL3_Next_State_Ptr(HALL3_handle); 
void F281X_EV1_HALL3_Create_Map(HALL3_handle); 
 
#endif // __DSP281X_HALL3_H__