RXduino  1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
wiring.h
説明を見る。
1 /*******************************************************************************
2 * RXduinoライブラリ & 特電HAL
3 *
4 * このソフトウェアは特殊電子回路株式会社によって開発されたものです。
5 * 当社Webサイトを通じてダウンロードすることによって使用許諾されます。
6 * このファイルを第三者へ開示・再配布・貸与・譲渡することはできません。
7 * このソフトウェアはあるがままの状態で提供され、内容および動作についての保障はあ
8 * りません。弊社はファイルの内容および実行結果についていかなる責任も負いません。
9 * お客様は、お客様の製品開発のために当ソフトウェアのソースコードを自由に参照し、
10 * 引用していただくことができます。
11 * コンパイル・リンク後のオブジェクトファイル(ELF ファイルまたはMOT,SRECファイル)
12 * であって、デバッグ情報が削除されている場合は第三者に再配布することができます。
13 * (C) Copyright 2011-2014 TokushuDenshiKairo Inc. 特殊電子回路株式会社
14 * http://rx.tokudenkairo.co.jp/
15 *******************************************************************************/
16 
17 #ifndef WIRING_H_
18 #define WIRING_H_
19 /**************************************************************************/
23 #define PI 3.1415926535
24 #define HALF_PI 1.5707963267
25 #define TWO_PI 6.2831853071
26 #define DEG_TO_RAD 0.0174532925
27 #define RAD_TO_DEG 57.295779513
28 #define min(a,b) ((a)<(b)?(a):(b))
29 #define max(a,b) ((a)>(b)?(a):(b))
30 
31 // undefine stdlib's abs if encountered
32 #ifdef abs
33 #undef abs
34 #endif
35 
36 
37 
38 
39 /*********************************************************************/
45 //inline unsigned long bit(unsigned long b);
46 #define bit(b) (1UL << (b))
47 
48 /*********************************************************************/
54 //inline unsigned char lowByte(unsigned long w);
55 #define lowByte(w) ((uint8_t) ((w) & 0xff))
56 
57 /*********************************************************************/
63 //inline unsigned char highByte(unsigned long w);
64 #define highByte(w) ((uint8_t) ((w) >> 8))
65 
66 /*********************************************************************/
73 //inline unsigned long bitRead(unsigned long value, int bit);
74 #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
75 
76 /*********************************************************************/
83 //inline void bitSet(unsigned long value, int bit);
84 #define bitSet(value, bit) ((value) |= (1UL << (bit)))
85 
86 /*********************************************************************/
93 //inline void bitClear(unsigned long value, int bit);
94 #define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
95 
96 /*********************************************************************/
103 #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
104 //inline void bitWrite(unsigned long value, int bit, int bitvalue);
105 
106 /*********************************************************************/
113 #define min(a,b) ((a)<(b)?(a):(b))
114 
115 /*********************************************************************/
122 #define max(a,b) ((a)>(b)?(a):(b))
123 
124 /*********************************************************************/
130 //inline int abs(int x);
131 #define abs(x) ((x)>0?(x):-(x))
132 
133 /*********************************************************************/
142 //inline int constrain(int amt, int low, int high);
143 #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
144 
145 /*********************************************************************/
152 //inline long round(double x);
153 #define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
154 
155 /*********************************************************************/
161 //inline double radians(double deg);
162 #define radians(deg) ((deg)*DEG_TO_RAD)
163 
164 /*********************************************************************/
170 //inline double degrees(double rad);
171 #define degrees(rad) ((rad)*RAD_TO_DEG)
172 
173 /*********************************************************************/
179 //inline int sq(int x);
180 #define sq(x) ((x)*(x))
181 
182 /*********************************************************************/
188 #define log10(x) (log(x)/log(10))
189 
190 
191 /*********************************************************************/
205 #define map(x,in_min,in_max,out_min,out_max) \
206 (((x) - (in_min)) * ((out_max) - (out_min)) / ((in_max) - (in_min)) + (out_min))
207 
208 // 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
209 // 以下の関数,マクロはwiring.hに定義されているものであるが,ここではコメントアウトしている
210 /*
211 #define SERIAL 0x0
212 #define DISPLAY 0x1
213 
214 #define LSBFIRST 0
215 #define MSBFIRST 1
216 
217 #define CHANGE 1
218 #define FALLING 2
219 #define RISING 3
220 
221 #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
222 #define INTERNAL1V1 2
223 #define INTERNAL2V56 3
224 #else
225 #define INTERNAL 3
226 #endif
227 #define DEFAULT 1
228 #define EXTERNAL 0
229 
230 #define abs(x) ((x)>0?(x):-(x))
231 #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
232 #define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
233 #define radians(deg) ((deg)*DEG_TO_RAD)
234 #define degrees(rad) ((rad)*RAD_TO_DEG)
235 #define sq(x) ((x)*(x))
236 
237 #define interrupts() sei()
238 #define noInterrupts() cli()
239 
240 #define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
241 #define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (F_CPU / 1000L) )
242 #define microsecondsToClockCycles(a) ( ((a) * (F_CPU / 1000L)) / 1000L )
243 
244 #define lowByte(w) ((uint8_t) ((w) & 0xff))
245 #define highByte(w) ((uint8_t) ((w) >> 8))
246 
247 #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
248 #define bitSet(value, bit) ((value) |= (1UL << (bit)))
249 #define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
250 #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
251 #define bit(b) (1UL << (b))
252 
253 typedef unsigned int word;
254 */
255 
256 #ifdef __cplusplus
257  extern "C" {
258 #endif
259 
260 #ifdef __cplusplus
261  }
262 #endif
263 
264 #endif /* WIRING_H_ */