ECE4760 - Laser Projector (ipb7, jcc384, pfc38)  1
Raster Laser Projection
include.h
Go to the documentation of this file.
1 #ifndef _INCLUDE_H
2 #define _INCLUDE_H
3 
4 #define _SUPPRESS_PLIB_WARNING 1
5 #define _DISABLE_OPENADC10_CONFIGPORT_WARNING
6 
7 // for microcontroller
8 #include <plib.h>
9 // serial stuff
10 //#include <stdio.h>
11 // for standard library
12 #include <stdlib.h>
13 #include <math.h>
14 // for sane types (e.g. uint8_t and bool)
15 #include <stdint.h>
16 #include <stdbool.h>
17 
18 
20 /* ARRAY LENGTH */
22 
23 // only works on arrays (not on pointers). Don't get confused.
24 #define ARRAY_LEN(a) (sizeof(a)/sizeof(a[0]))
25 
27 /* PULL UP/DOWN */
29 
30 // PORT B
31 #define EnablePullDownB(bits) CNPUBCLR=bits; CNPDBSET=bits;
32 #define DisablePullDownB(bits) CNPDBCLR=bits;
33 #define EnablePullUpB(bits) CNPDBCLR=bits; CNPUBSET=bits;
34 #define DisablePullUpB(bits) CNPUBCLR=bits;
35 //PORT A
36 #define EnablePullDownA(bits) CNPUACLR=bits; CNPDASET=bits;
37 #define DisablePullDownA(bits) CNPDACLR=bits;
38 #define EnablePullUpA(bits) CNPDACLR=bits; CNPUASET=bits;
39 #define DisablePullUpA(bits) CNPUACLR=bits;
40 
42 /* FIXED POINT */
44 
45 typedef signed int fix16 ;
46 #define multfix16(a,b) ((fix16)(((( signed long long)(a))*(( signed long long)(b)))>>16)) //multiply two fixed 16:16
47 #define float2fix16(a) ((fix16)((a)*65536.0)) // 2^16
48 #define fix2float16(a) ((float)(a)/65536.0)
49 #define fix2int16(a) ((int)((a)>>16))
50 #define int2fix16(a) ((fix16)((a)<<16))
51 #define divfix16(a,b) ((fix16)((((signed long long)(a)<<16)/(b))))
52 #define sqrtfix16(a) (float2fix16(sqrt(fix2float16(a))))
53 #define absfix16(a) abs(a)
54 
55 #endif
signed int fix16
Definition: include.h:45