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
fix16
signed int fix16
Definition:
include.h:45
Generated by
1.8.12