WConstants
Dependents: ZZ_SSL_Main_L476 Sample_program_Font72
WConstants.h@0:35d94fa8cf10, 2017-06-01 (annotated)
- Committer:
- Allar
- Date:
- Thu Jun 01 08:04:21 2017 +0000
- Revision:
- 0:35d94fa8cf10
night;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Allar | 0:35d94fa8cf10 | 1 | /* $Id: WConstants.h 1156 2011-06-07 04:01:16Z bhagman $ |
Allar | 0:35d94fa8cf10 | 2 | || |
Allar | 0:35d94fa8cf10 | 3 | || @author Hernando Barragan <b@wiring.org.co> |
Allar | 0:35d94fa8cf10 | 4 | || @url http://wiring.org.co/ |
Allar | 0:35d94fa8cf10 | 5 | || @contribution Brett Hagman <bhagman@wiring.org.co> |
Allar | 0:35d94fa8cf10 | 6 | || @contribution Alexander Brevig <abrevig@wiring.org.co> |
Allar | 0:35d94fa8cf10 | 7 | || |
Allar | 0:35d94fa8cf10 | 8 | || @description |
Allar | 0:35d94fa8cf10 | 9 | || | Main constant and macro definitions for Wiring. |
Allar | 0:35d94fa8cf10 | 10 | || | |
Allar | 0:35d94fa8cf10 | 11 | || | Wiring Common API |
Allar | 0:35d94fa8cf10 | 12 | || # |
Allar | 0:35d94fa8cf10 | 13 | || |
Allar | 0:35d94fa8cf10 | 14 | || @license Please see cores/Common/License.txt. |
Allar | 0:35d94fa8cf10 | 15 | || |
Allar | 0:35d94fa8cf10 | 16 | */ |
Allar | 0:35d94fa8cf10 | 17 | |
Allar | 0:35d94fa8cf10 | 18 | #ifndef WCONSTANTS_H |
Allar | 0:35d94fa8cf10 | 19 | #define WCONSTANTS_H |
Allar | 0:35d94fa8cf10 | 20 | |
Allar | 0:35d94fa8cf10 | 21 | #include <stdint.h> |
Allar | 0:35d94fa8cf10 | 22 | |
Allar | 0:35d94fa8cf10 | 23 | // Wiring API version for libraries |
Allar | 0:35d94fa8cf10 | 24 | // this is passed in at compile-time |
Allar | 0:35d94fa8cf10 | 25 | #ifndef WIRING |
Allar | 0:35d94fa8cf10 | 26 | #define WIRING 101 |
Allar | 0:35d94fa8cf10 | 27 | #endif |
Allar | 0:35d94fa8cf10 | 28 | |
Allar | 0:35d94fa8cf10 | 29 | // passed in at compile-time |
Allar | 0:35d94fa8cf10 | 30 | #ifndef F_CPU |
Allar | 0:35d94fa8cf10 | 31 | //#define F_CPU 16000000L |
Allar | 0:35d94fa8cf10 | 32 | //#warning "F_CPU was not defined. Default to 16 MHz." |
Allar | 0:35d94fa8cf10 | 33 | #endif |
Allar | 0:35d94fa8cf10 | 34 | |
Allar | 0:35d94fa8cf10 | 35 | /************************************************************* |
Allar | 0:35d94fa8cf10 | 36 | * Constants |
Allar | 0:35d94fa8cf10 | 37 | *************************************************************/ |
Allar | 0:35d94fa8cf10 | 38 | |
Allar | 0:35d94fa8cf10 | 39 | #define LOW 0x0 |
Allar | 0:35d94fa8cf10 | 40 | #define HIGH 0x1 |
Allar | 0:35d94fa8cf10 | 41 | //#define HIGH 0xFF |
Allar | 0:35d94fa8cf10 | 42 | |
Allar | 0:35d94fa8cf10 | 43 | #define INPUT 0x0 |
Allar | 0:35d94fa8cf10 | 44 | #define OUTPUT 0x1 |
Allar | 0:35d94fa8cf10 | 45 | //#define OUTPUT 0xFF |
Allar | 0:35d94fa8cf10 | 46 | |
Allar | 0:35d94fa8cf10 | 47 | #define CHANGE 1 |
Allar | 0:35d94fa8cf10 | 48 | #define FALLING 2 |
Allar | 0:35d94fa8cf10 | 49 | #define RISING 3 |
Allar | 0:35d94fa8cf10 | 50 | |
Allar | 0:35d94fa8cf10 | 51 | #define LSBFIRST 0x0 |
Allar | 0:35d94fa8cf10 | 52 | #define MSBFIRST 0x1 |
Allar | 0:35d94fa8cf10 | 53 | |
Allar | 0:35d94fa8cf10 | 54 | #define true 0x1 |
Allar | 0:35d94fa8cf10 | 55 | #define false 0x0 |
Allar | 0:35d94fa8cf10 | 56 | #define TRUE 0x1 |
Allar | 0:35d94fa8cf10 | 57 | #define FALSE 0x0 |
Allar | 0:35d94fa8cf10 | 58 | #define null NULL |
Allar | 0:35d94fa8cf10 | 59 | |
Allar | 0:35d94fa8cf10 | 60 | #define DEC 10 |
Allar | 0:35d94fa8cf10 | 61 | #define HEX 16 |
Allar | 0:35d94fa8cf10 | 62 | #define OCT 8 |
Allar | 0:35d94fa8cf10 | 63 | #define BIN 2 |
Allar | 0:35d94fa8cf10 | 64 | #define BYTE 0 |
Allar | 0:35d94fa8cf10 | 65 | |
Allar | 0:35d94fa8cf10 | 66 | #define PI (3.1415926535897932384626433832795) |
Allar | 0:35d94fa8cf10 | 67 | #define TWO_PI (6.283185307179586476925286766559) |
Allar | 0:35d94fa8cf10 | 68 | #define HALF_PI (1.5707963267948966192313216916398) |
Allar | 0:35d94fa8cf10 | 69 | #define EPSILON (0.0001) |
Allar | 0:35d94fa8cf10 | 70 | #define DEG_TO_RAD (0.017453292519943295769236907684886) |
Allar | 0:35d94fa8cf10 | 71 | #define RAD_TO_DEG (57.295779513082320876798154814105) |
Allar | 0:35d94fa8cf10 | 72 | |
Allar | 0:35d94fa8cf10 | 73 | |
Allar | 0:35d94fa8cf10 | 74 | /************************************************************* |
Allar | 0:35d94fa8cf10 | 75 | * Digital Constants |
Allar | 0:35d94fa8cf10 | 76 | *************************************************************/ |
Allar | 0:35d94fa8cf10 | 77 | |
Allar | 0:35d94fa8cf10 | 78 | #define PORT0 0 |
Allar | 0:35d94fa8cf10 | 79 | #define PORT1 1 |
Allar | 0:35d94fa8cf10 | 80 | #define PORT2 2 |
Allar | 0:35d94fa8cf10 | 81 | #define PORT3 3 |
Allar | 0:35d94fa8cf10 | 82 | #define PORT4 4 |
Allar | 0:35d94fa8cf10 | 83 | #define PORT5 5 |
Allar | 0:35d94fa8cf10 | 84 | #define PORT6 6 |
Allar | 0:35d94fa8cf10 | 85 | #define PORT7 7 |
Allar | 0:35d94fa8cf10 | 86 | #define PORT8 8 |
Allar | 0:35d94fa8cf10 | 87 | #define PORT9 9 |
Allar | 0:35d94fa8cf10 | 88 | |
Allar | 0:35d94fa8cf10 | 89 | |
Allar | 0:35d94fa8cf10 | 90 | /************************************************************* |
Allar | 0:35d94fa8cf10 | 91 | * Useful macros |
Allar | 0:35d94fa8cf10 | 92 | *************************************************************/ |
Allar | 0:35d94fa8cf10 | 93 | |
Allar | 0:35d94fa8cf10 | 94 | /*#define int(x) ((int)(x)) |
Allar | 0:35d94fa8cf10 | 95 | #define char(x) ((char)(x)) |
Allar | 0:35d94fa8cf10 | 96 | #define long(x) ((long)(x)) |
Allar | 0:35d94fa8cf10 | 97 | #define byte(x) ((uint8_t)(x)) |
Allar | 0:35d94fa8cf10 | 98 | #define float(x) ((float)(x)) |
Allar | 0:35d94fa8cf10 | 99 | #define boolean(x) ((uint8_t)((x)==0?false:true)) |
Allar | 0:35d94fa8cf10 | 100 | */ |
Allar | 0:35d94fa8cf10 | 101 | |
Allar | 0:35d94fa8cf10 | 102 | #define word(...) makeWord(__VA_ARGS__) |
Allar | 0:35d94fa8cf10 | 103 | |
Allar | 0:35d94fa8cf10 | 104 | #define sq(x) ((x)*(x)) |
Allar | 0:35d94fa8cf10 | 105 | //#define abs(x) ((x)>0?(x):-(x)) |
Allar | 0:35d94fa8cf10 | 106 | #define min(a,b) ((a)<(b)?(a):(b)) |
Allar | 0:35d94fa8cf10 | 107 | #define max(a,b) ((a)>(b)?(a):(b)) |
Allar | 0:35d94fa8cf10 | 108 | //#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) |
Allar | 0:35d94fa8cf10 | 109 | #define radians(deg) ((deg)*DEG_TO_RAD) |
Allar | 0:35d94fa8cf10 | 110 | #define degrees(rad) ((rad)*RAD_TO_DEG) |
Allar | 0:35d94fa8cf10 | 111 | #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) |
Allar | 0:35d94fa8cf10 | 112 | |
Allar | 0:35d94fa8cf10 | 113 | #define bit(x) (1UL<<(x)) |
Allar | 0:35d94fa8cf10 | 114 | #define setBits(x, y) ((x)|=(y)) |
Allar | 0:35d94fa8cf10 | 115 | #define clearBits(x, y) ((x)&=(~(y))) |
Allar | 0:35d94fa8cf10 | 116 | //#define setBit(x, y) setBits((x), (bit((y)))) |
Allar | 0:35d94fa8cf10 | 117 | //#define clearBit(x, y) clearBits((x), (bit((y)))) |
Allar | 0:35d94fa8cf10 | 118 | |
Allar | 0:35d94fa8cf10 | 119 | #define bitsSet(x,y) (((x) & (y)) == (y)) |
Allar | 0:35d94fa8cf10 | 120 | #define bitsClear(x,y) (((x) & (y)) == 0) |
Allar | 0:35d94fa8cf10 | 121 | |
Allar | 0:35d94fa8cf10 | 122 | #define bitRead(value, bit) (((value) >> (bit)) & 0x01) |
Allar | 0:35d94fa8cf10 | 123 | #define bitSet(value, bit) ((value) |= (1UL << (bit))) |
Allar | 0:35d94fa8cf10 | 124 | #define bitClear(value, bit) ((value) &= ~(1UL << (bit))) |
Allar | 0:35d94fa8cf10 | 125 | #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) |
Allar | 0:35d94fa8cf10 | 126 | |
Allar | 0:35d94fa8cf10 | 127 | #define lowByte(x) ((uint8_t) ((x) & 0x00ff)) |
Allar | 0:35d94fa8cf10 | 128 | #define highByte(x) ((uint8_t) ((x)>>8)) |
Allar | 0:35d94fa8cf10 | 129 | |
Allar | 0:35d94fa8cf10 | 130 | |
Allar | 0:35d94fa8cf10 | 131 | #define clockCyclesPerMicrosecond() (F_CPU / 1000000L) |
Allar | 0:35d94fa8cf10 | 132 | #define clockCyclesToMicroseconds(a) ((a) / clockCyclesPerMicrosecond()) |
Allar | 0:35d94fa8cf10 | 133 | #define microsecondsToClockCycles(a) ((a) * clockCyclesPerMicrosecond()) |
Allar | 0:35d94fa8cf10 | 134 | |
Allar | 0:35d94fa8cf10 | 135 | |
Allar | 0:35d94fa8cf10 | 136 | |
Allar | 0:35d94fa8cf10 | 137 | /************************************************************* |
Allar | 0:35d94fa8cf10 | 138 | * Typedefs |
Allar | 0:35d94fa8cf10 | 139 | *************************************************************/ |
Allar | 0:35d94fa8cf10 | 140 | |
Allar | 0:35d94fa8cf10 | 141 | typedef unsigned int word; |
Allar | 0:35d94fa8cf10 | 142 | typedef uint8_t byte; |
Allar | 0:35d94fa8cf10 | 143 | typedef uint8_t boolean; |
Allar | 0:35d94fa8cf10 | 144 | typedef void (*voidFuncPtr)(void); |
Allar | 0:35d94fa8cf10 | 145 | |
Allar | 0:35d94fa8cf10 | 146 | #endif |
Allar | 0:35d94fa8cf10 | 147 | // WCONSTANTS_H |