📄 pmsmtables.h
字号:
/* This file has been prepared for Doxygen automatic documentation generation.*/
/*! \file *********************************************************************
*
* \brief
* Motor control tables.
*
* This file contains the table definitions used for motor control.
*
* \par Application note:
* AVR447: Sinusoidal driving of three-phase permanent motor using
* ATmega48/88/168
*
* \par Documentation
* For comprehensive code documentation, supported compilers, compiler
* settings and supported devices see readme.html
*
* \author
* Atmel Corporation: http://www.atmel.com \n
* Support email: avr@atmel.com
*
* $Name: RELEASE_1_0 $
* $Revision: 1.4 $
* $RCSfile: PMSMtables.h,v $
* $Date: 2006/03/16 11:57:20 $ \n
******************************************************************************/
#ifndef _PMSM_TABLES_H_
#define _PMSM_TABLES_H_
/*! \brief Sine wave modulation table
*
* Table containing modulation values for all three phases.
* The table is organized as [U1, V1, W1, U2, V2, W2, ...]
* for forward driving, and [U1, W1, V1, U2, W2, V2, ...]
* for reverse driving.
*/
__flash const uint8_t sineTable[SINE_TABLE_LENGTH * 3] = {
0, 0, 221,
8, 0, 225,
17, 0, 229,
25, 0, 232,
33, 0, 236,
42, 0, 239,
50, 0, 241,
58, 0, 244,
66, 0, 246,
74, 0, 248,
82, 0, 250,
90, 0, 252,
98, 0, 253,
105, 0, 254,
113, 0, 254,
120, 0, 255,
128, 0, 255,
135, 0, 255,
142, 0, 254,
149, 0, 254,
155, 0, 253,
162, 0, 252,
168, 0, 250,
174, 0, 248,
180, 0, 246,
186, 0, 244,
192, 0, 241,
197, 0, 239,
202, 0, 236,
207, 0, 232,
212, 0, 229,
217, 0, 225,
221, 0, 221,
225, 0, 217,
229, 0, 212,
232, 0, 207,
236, 0, 202,
239, 0, 197,
241, 0, 192,
244, 0, 186,
246, 0, 180,
248, 0, 174,
250, 0, 168,
252, 0, 162,
253, 0, 155,
254, 0, 149,
254, 0, 142,
255, 0, 135,
255, 0, 127,
255, 0, 120,
254, 0, 113,
254, 0, 105,
253, 0, 98,
252, 0, 90,
250, 0, 82,
248, 0, 74,
246, 0, 66,
244, 0, 58,
241, 0, 50,
239, 0, 42,
236, 0, 33,
232, 0, 25,
229, 0, 17,
225, 0, 8,
221, 0, 0,
225, 8, 0,
229, 17, 0,
232, 25, 0,
236, 33, 0,
239, 42, 0,
241, 50, 0,
244, 58, 0,
246, 66, 0,
248, 74, 0,
250, 82, 0,
252, 90, 0,
253, 98, 0,
254, 105, 0,
254, 113, 0,
255, 120, 0,
255, 127, 0,
255, 135, 0,
254, 142, 0,
254, 149, 0,
253, 155, 0,
252, 162, 0,
250, 168, 0,
248, 174, 0,
246, 180, 0,
244, 186, 0,
241, 192, 0,
239, 197, 0,
236, 202, 0,
232, 207, 0,
229, 212, 0,
225, 217, 0,
221, 221, 0,
217, 225, 0,
212, 229, 0,
207, 232, 0,
202, 236, 0,
197, 239, 0,
192, 241, 0,
186, 244, 0,
180, 246, 0,
174, 248, 0,
168, 250, 0,
162, 252, 0,
155, 253, 0,
149, 254, 0,
142, 254, 0,
135, 255, 0,
128, 255, 0,
120, 255, 0,
113, 254, 0,
105, 254, 0,
98, 253, 0,
90, 252, 0,
82, 250, 0,
74, 248, 0,
66, 246, 0,
58, 244, 0,
50, 241, 0,
42, 239, 0,
33, 236, 0,
25, 232, 0,
17, 229, 0,
8, 225, 0,
0, 221, 0,
0, 225, 8,
0, 229, 17,
0, 232, 25,
0, 236, 33,
0, 239, 42,
0, 241, 50,
0, 244, 58,
0, 246, 66,
0, 248, 74,
0, 250, 82,
0, 252, 90,
0, 253, 98,
0, 254, 105,
0, 254, 113,
0, 255, 120,
0, 255, 128,
0, 255, 135,
0, 254, 142,
0, 254, 149,
0, 253, 155,
0, 252, 162,
0, 250, 168,
0, 248, 174,
0, 246, 180,
0, 244, 186,
0, 241, 192,
0, 239, 197,
0, 236, 202,
0, 232, 207,
0, 229, 212,
0, 225, 217,
0, 221, 221,
0, 217, 225,
0, 212, 229,
0, 207, 232,
0, 202, 236,
0, 197, 239,
0, 192, 241,
0, 186, 244,
0, 180, 246,
0, 174, 248,
0, 168, 250,
0, 162, 252,
0, 155, 253,
0, 149, 254,
0, 142, 254,
0, 135, 255,
0, 128, 255,
0, 120, 255,
0, 113, 254,
0, 105, 254,
0, 98, 253,
0, 90, 252,
0, 82, 250,
0, 74, 248,
0, 66, 246,
0, 58, 244,
0, 50, 241,
0, 42, 239,
0, 33, 236,
0, 25, 232,
0, 17, 229,
0, 8, 225
};
/*! \brief Divistion table used to obtain sine table increment without
* performing a division at high motor speed.
*
* This table contains 8.8 fixed point step size values
* for 'ticks' less than 256.
*/
__flash const uint16_t divisionTable[256] = {
0,
((SINE_TABLE_LENGTH / 6) << 8) / 1,
((SINE_TABLE_LENGTH / 6) << 8) / 2,
((SINE_TABLE_LENGTH / 6) << 8) / 3,
((SINE_TABLE_LENGTH / 6) << 8) / 4,
((SINE_TABLE_LENGTH / 6) << 8) / 5,
((SINE_TABLE_LENGTH / 6) << 8) / 6,
((SINE_TABLE_LENGTH / 6) << 8) / 7,
((SINE_TABLE_LENGTH / 6) << 8) / 8,
((SINE_TABLE_LENGTH / 6) << 8) / 9,
((SINE_TABLE_LENGTH / 6) << 8) / 10,
((SINE_TABLE_LENGTH / 6) << 8) / 11,
((SINE_TABLE_LENGTH / 6) << 8) / 12,
((SINE_TABLE_LENGTH / 6) << 8) / 13,
((SINE_TABLE_LENGTH / 6) << 8) / 14,
((SINE_TABLE_LENGTH / 6) << 8) / 15,
((SINE_TABLE_LENGTH / 6) << 8) / 16,
((SINE_TABLE_LENGTH / 6) << 8) / 17,
((SINE_TABLE_LENGTH / 6) << 8) / 18,
((SINE_TABLE_LENGTH / 6) << 8) / 19,
((SINE_TABLE_LENGTH / 6) << 8) / 20,
((SINE_TABLE_LENGTH / 6) << 8) / 21,
((SINE_TABLE_LENGTH / 6) << 8) / 22,
((SINE_TABLE_LENGTH / 6) << 8) / 23,
((SINE_TABLE_LENGTH / 6) << 8) / 24,
((SINE_TABLE_LENGTH / 6) << 8) / 25,
((SINE_TABLE_LENGTH / 6) << 8) / 26,
((SINE_TABLE_LENGTH / 6) << 8) / 27,
((SINE_TABLE_LENGTH / 6) << 8) / 28,
((SINE_TABLE_LENGTH / 6) << 8) / 29,
((SINE_TABLE_LENGTH / 6) << 8) / 30,
((SINE_TABLE_LENGTH / 6) << 8) / 31,
((SINE_TABLE_LENGTH / 6) << 8) / 32,
((SINE_TABLE_LENGTH / 6) << 8) / 33,
((SINE_TABLE_LENGTH / 6) << 8) / 34,
((SINE_TABLE_LENGTH / 6) << 8) / 35,
((SINE_TABLE_LENGTH / 6) << 8) / 36,
((SINE_TABLE_LENGTH / 6) << 8) / 37,
((SINE_TABLE_LENGTH / 6) << 8) / 38,
((SINE_TABLE_LENGTH / 6) << 8) / 39,
((SINE_TABLE_LENGTH / 6) << 8) / 40,
((SINE_TABLE_LENGTH / 6) << 8) / 41,
((SINE_TABLE_LENGTH / 6) << 8) / 42,
((SINE_TABLE_LENGTH / 6) << 8) / 43,
((SINE_TABLE_LENGTH / 6) << 8) / 44,
((SINE_TABLE_LENGTH / 6) << 8) / 45,
((SINE_TABLE_LENGTH / 6) << 8) / 46,
((SINE_TABLE_LENGTH / 6) << 8) / 47,
((SINE_TABLE_LENGTH / 6) << 8) / 48,
((SINE_TABLE_LENGTH / 6) << 8) / 49,
((SINE_TABLE_LENGTH / 6) << 8) / 50,
((SINE_TABLE_LENGTH / 6) << 8) / 51,
((SINE_TABLE_LENGTH / 6) << 8) / 52,
((SINE_TABLE_LENGTH / 6) << 8) / 53,
((SINE_TABLE_LENGTH / 6) << 8) / 54,
((SINE_TABLE_LENGTH / 6) << 8) / 55,
((SINE_TABLE_LENGTH / 6) << 8) / 56,
((SINE_TABLE_LENGTH / 6) << 8) / 57,
((SINE_TABLE_LENGTH / 6) << 8) / 58,
((SINE_TABLE_LENGTH / 6) << 8) / 59,
((SINE_TABLE_LENGTH / 6) << 8) / 60,
((SINE_TABLE_LENGTH / 6) << 8) / 61,
((SINE_TABLE_LENGTH / 6) << 8) / 62,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -