WConstants

Dependents:   ZZ_SSL_Main_L476 Sample_program_Font72

Committer:
Allar
Date:
Thu Jun 01 08:04:21 2017 +0000
Revision:
0:35d94fa8cf10
night;

Who changed what in which revision?

UserRevisionLine numberNew 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