parent
bc77d6a360
commit
85204f4a28
|
@ -190,7 +190,7 @@ Suffixes must be used for the various types:
|
|||
Enums must always be typedef'd.
|
||||
Enum values must be prefixed by the enum name.
|
||||
Structs which rely on ordering must use __attribute__((__packed__)).
|
||||
|
||||
Unions must use __attribute__((__packed__)).
|
||||
Bitfields:
|
||||
- must always use __attribute__((__packed__)).
|
||||
- must always follow the GCC rules regarding bitfields.
|
||||
|
@ -212,6 +212,7 @@ Examples:
|
|||
typedef struct vector_s vector_t;
|
||||
2:
|
||||
union types_u
|
||||
__attribute__((__packed__))
|
||||
{
|
||||
int i;
|
||||
unsigned u;
|
||||
|
@ -227,3 +228,37 @@ Examples:
|
|||
unsigned reserved : 2;
|
||||
unsigned alpha : 4;
|
||||
} img_desc_t;
|
||||
|
||||
|
||||
|
||||
11.0 - MACROS
|
||||
|
||||
Macros should only be used for condtional compilation and header protection
|
||||
where this is possible.
|
||||
For function like macros static inline functions should be defined.
|
||||
For variable like macros static const variables should be defined.
|
||||
For enums the enum type should always be used.
|
||||
|
||||
Examples:
|
||||
0:
|
||||
static const unsigned max(unsigned x, unsigned y)
|
||||
{ return (x > y ? x : y); }
|
||||
1:
|
||||
static const float pi = 3.14152f;
|
||||
2:
|
||||
typedef enum
|
||||
{
|
||||
fuzzy_no = 0,
|
||||
fuzzy_yes,
|
||||
fuzzy_maybe,
|
||||
} fuzzy_e;
|
||||
|
||||
Counter-examples:
|
||||
0:
|
||||
#define MAX(x, y) ((x) > (y) ? (x) : (y))
|
||||
1:
|
||||
#define PI 3.14152
|
||||
2:
|
||||
#define FUZZY_NO 0
|
||||
#define FUZZY_YES 1
|
||||
#define FUZZY_MAYBE 2
|
||||
|
|
|
@ -116,22 +116,22 @@ fix16_t fix16_tan(fix16_t inAngle)
|
|||
return fix16_sdiv(fix16_sin(inAngle), fix16_cos(inAngle));
|
||||
}
|
||||
|
||||
fix16_t fix16_asin(fix16_t inValue)
|
||||
fix16_t fix16_asin(fix16_t x)
|
||||
{
|
||||
if((inValue > fix16_one)
|
||||
|| (inValue < -fix16_one))
|
||||
if((x > fix16_one)
|
||||
|| (x < -fix16_one))
|
||||
return 0;
|
||||
|
||||
fix16_t tempOut;
|
||||
tempOut = (fix16_one - fix16_mul(inValue, inValue));
|
||||
tempOut = fix16_div(inValue, fix16_sqrt(tempOut));
|
||||
tempOut = fix16_atan(tempOut);
|
||||
return tempOut;
|
||||
fix16_t out;
|
||||
out = (fix16_one - fix16_mul(x, x));
|
||||
out = fix16_div(x, fix16_sqrt(out));
|
||||
out = fix16_atan(out);
|
||||
return out;
|
||||
}
|
||||
|
||||
fix16_t fix16_acos(fix16_t inValue)
|
||||
fix16_t fix16_acos(fix16_t x)
|
||||
{
|
||||
return ((fix16_pi >> 1) - fix16_asin(inValue));
|
||||
return ((fix16_pi >> 1) - fix16_asin(x));
|
||||
}
|
||||
|
||||
fix16_t fix16_atan2(fix16_t inY , fix16_t inX)
|
||||
|
@ -158,7 +158,9 @@ fix16_t fix16_atan2(fix16_t inY , fix16_t inX)
|
|||
} else {
|
||||
r = fix16_div( (inX + abs_inY), (abs_inY - inX));
|
||||
r_3 = fix16_mul(fix16_mul(r, r),r);
|
||||
angle = fix16_mul(0x00003240 , r_3) - fix16_mul(0x0000FB50,r) + THREE_PI_DIV_4;
|
||||
angle = fix16_mul(0x00003240 , r_3)
|
||||
- fix16_mul(0x0000FB50,r)
|
||||
+ THREE_PI_DIV_4;
|
||||
}
|
||||
if (inY < 0)
|
||||
{
|
||||
|
@ -174,7 +176,7 @@ fix16_t fix16_atan2(fix16_t inY , fix16_t inX)
|
|||
return angle;
|
||||
}
|
||||
|
||||
fix16_t fix16_atan(fix16_t inValue)
|
||||
fix16_t fix16_atan(fix16_t x)
|
||||
{
|
||||
return fix16_atan2(inValue, fix16_one);
|
||||
return fix16_atan2(x, fix16_one);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue