iCar
マクロ定義 | 型定義 | 関数
board.h ファイル

APIs [詳解]

#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <math.h>
#include "WCharacter.h"
#include "WString.h"
#include "HardwareSerial.h"
#include "pins.h"

[ソースコード]

マクロ定義

#define _NOP()   asm volatile ("NOP")
 nop命令を生成する(nop命令=1クロック何も実行しない) [詳解]
 
#define bit(b)   (1UL << (b))
 指定ビットを1にした値を返す [詳解]
 
#define bitClear(value, bit)   ((value) &= ~(0x01UL << (bit)))
 指定したビットを0にする [詳解]
 
#define bitRead(value, bit)   ((((uint32_t)(value)) >> (bit)) & 0x01)
 valueから指定したビットを読み出す [詳解]
 
#define bitSet(value, bit)   ((value) |= (0x01UL << (bit)))
 指定したビットを1にする [詳解]
 
#define bitWrite(value, bit, bitvalue)   ((bitvalue) ? bitSet(value, bit) : bitClear(value, bit))
 指定したビットに値を書き込む [詳解]
 
#define constrain(amt, low, high)   (((amt) < (low)) ? (low) : ((amt) > (high) ? (high) : (amt)))
 入力値amtを上限・下限範囲に制限した値を返す [詳解]
 
#define DEFAULT   (0)
 analogReference用 基準電圧=デフォルト
 
#define DEG_TO_RAD   (0.017453292519943295769236907684886)
 
#define degrees(rad)   ((rad) * RAD_TO_DEG)
 ラジアンで表された角度を度に変換する
 
#define EULER   (2.718281828459045235360287471352)
 
#define EXTERNAL   (DEFAULT)
 analogReference用 基準電圧=外部電源 [詳解]
 
#define HALF_PI   (1.5707963267948966192313216916398)
 
#define HIGH   (0x01)
 digitalRead/digitalWrite用 電圧Hiレベル
 
#define highByte(w)   ((uint8_t)((((uint32_t)(w)) >> 8) & 0xFF))
 2バイトの内、上位のバイトを取得する
 
#define INPUT   (0x00)
 pinMode用 Pinを入力に設定
 
#define INPUT_PULLUP   (0x02)
 pinMode用 Pinを入力+プルアップに設定(プルアップ=配線未接続時Hiとなる)
 
#define INTERNAL   (DEFAULT)
 analogReference用 基準電圧=外部電源 [詳解]
 
#define interrupts()   asm volatile ("SETPSW I")
 割り込みを許可する [詳解]
 
#define LOW   (0x00)
 digitalRead/digitalWrite用 電圧Loレベル
 
#define lowByte(w)   ((uint8_t)((w) & 0xFF))
 2バイトの内、下位のバイトを取得する
 
#define max(a, b)   ((a) > (b) ? (a) : (b))
 引数で指定された2つの値のうち、大きいほうを返す [詳解]
 
#define min(a, b)   ((a) < (b) ? (a) : (b))
 引数で指定された2つの値のうち、小さいほうを返す [詳解]
 
#define noInterrupts()   asm volatile ("CLRPSW I")
 割り込みを禁止する [詳解]
 
#define OUTPUT   (0x01)
 pinMode用 Pinを出力に設定
 
#define PI   (3.1415926535897932384626433832795)
 
#define PROGMEM   const
 Arduino環境との互換性確保のためのマクロ
 
#define RAD_TO_DEG   (57.295779513082320876798154814105)
 
#define radians(deg)   ((deg) * DEG_TO_RAD)
 度単位で表された角度をラジアンに変換する
 
#define round(x)   (((x) >= 0) ? ((long)((x) + 0.5)) : ((long)((x) - 0.5)))
 入力値を四捨五入する
 
#define sq(x)   ((x) * (x))
 引数で指定された値を2乗する
 
#define TWO_PI   (6.283185307179586476925286766559)
 

型定義

typedef bool boolean
 
typedef uint8_t byte
 
typedef uint16_t word
 

関数

int analogRead (uint8_t pin)
 Pinの現在のアナログ入力値を取得する [詳解]
 
void analogReference (uint8_t mode)
 アナログ基準電圧を設定する [詳解]
 
void analogWrite (uint8_t pin, int val)
 Pinにアナログ出力値を設定する [詳解]
 
void delay (uint32_t ms)
 指定したミリ秒待機する [詳解]
 
void delayMicroseconds (uint32_t us)
 指定したマイクロ秒待機する [詳解]
 
int digitalRead (uint8_t pin)
 Pinの現在のデジタル入力値を取得する [詳解]
 
void digitalWrite (uint8_t pin, uint8_t val)
 Pinにデジタル出力値を設定する [詳解]
 
void loop ()
 プログラムのメイン処理 [詳解]
 
long map (long, long, long, long, long)
 引数で指定された値を線形補完した値を返す [詳解]
 
uint32_t micros (void)
 プログラム起動からのマイクロ秒を返す [詳解]
 
uint32_t millis (void)
 プログラム起動からのミリ秒を返す [詳解]
 
void noTone (uint8_t pin)
 toneで開始された矩形波の生成を停止 [詳解]
 
void pinMode (uint8_t pin, uint8_t mode)
 Pinのモードを設定する [詳解]
 
long random (long)
 0から指定した値 - 1までの乱数を生成する [詳解]
 
long random (long, long)
 0から指定した値 - 1までの乱数を生成する [詳解]
 
void randomSeed (unsigned long)
 乱数のシードを設定する [詳解]
 
void setup ()
 セットアップ処理 [詳解]
 
void tone (uint8_t pin, unsigned int frequency, unsigned long duration=0)
 指定した周波数の矩形波を生成 [詳解]
 

詳解

APIs

マクロ定義詳解

◆ _NOP

#define _NOP ( )    asm volatile ("NOP")

nop命令を生成する(nop命令=1クロック何も実行しない)

覚え書き
本関数は一定時間待機するためなどの用途に用いる

◆ bit

#define bit (   b)    (1UL << (b))

指定ビットを1にした値を返す

引数
bビット
覚え書き
bit(7)を呼び出した場合、戻り値は0x80(128)

◆ bitClear

#define bitClear (   value,
  bit 
)    ((value) &= ~(0x01UL << (bit)))

指定したビットを0にする

引数
value変数 (定数/戻り値の指定不可)
bit読み出しビット (0-31)
覚え書き
本関数はvalueで指定された変数を直接書換する valueには変数のみ指定可能

◆ bitRead

#define bitRead (   value,
  bit 
)    ((((uint32_t)(value)) >> (bit)) & 0x01)

valueから指定したビットを読み出す

引数
value
bit読み出しビット (0-31)
戻り値
0(false) / 1(true)

◆ bitSet

#define bitSet (   value,
  bit 
)    ((value) |= (0x01UL << (bit)))

指定したビットを1にする

引数
value変数 (定数/戻り値の指定不可)
bit読み出しビット (0-31)
覚え書き
本関数はvalueで指定された変数を直接書換する valueには変数のみ指定可能

◆ bitWrite

#define bitWrite (   value,
  bit,
  bitvalue 
)    ((bitvalue) ? bitSet(value, bit) : bitClear(value, bit))

指定したビットに値を書き込む

引数
value変数 (定数/戻り値の指定不可)
bit読み出しビット (0-31)
bitvalue書き込み値 (0 or 1)
覚え書き
本関数はvalueで指定された変数を直接書換する valueには変数のみ指定可能

◆ constrain

#define constrain (   amt,
  low,
  high 
)    (((amt) < (low)) ? (low) : ((amt) > (high) ? (high) : (amt)))

入力値amtを上限・下限範囲に制限した値を返す

引数
amt入力値
low下限値
high上限値
戻り値
amtをlowからhighの間に収めた値

◆ EXTERNAL

#define EXTERNAL   (DEFAULT)

analogReference用 基準電圧=外部電源

覚え書き
本マクロは互換性確保のために定義されており、DEFAULTの設定となる

◆ INTERNAL

#define INTERNAL   (DEFAULT)

analogReference用 基準電圧=外部電源

覚え書き
本マクロは互換性確保のために定義されており、DEFAULTの設定となる

◆ interrupts

#define interrupts ( )    asm volatile ("SETPSW I")

割り込みを許可する

覚え書き
割り込み禁止した場合は許可する必要がある

◆ max

#define max (   a,
 
)    ((a) > (b) ? (a) : (b))

引数で指定された2つの値のうち、大きいほうを返す

引数
a引数1
b引数2
戻り値
aかb大きいほうの値

◆ min

#define min (   a,
 
)    ((a) < (b) ? (a) : (b))

引数で指定された2つの値のうち、小さいほうを返す

引数
a引数1
b引数2
戻り値
aかb小さいほうの値

◆ noInterrupts

#define noInterrupts ( )    asm volatile ("CLRPSW I")

割り込みを禁止する

覚え書き
割り込み禁止した場合はinterruptsを呼び出して再度許可する必要がある
割り込み禁止時間が長い場合、デバイス動作が不安定となる場合があります

関数詳解

◆ analogRead()

int analogRead ( uint8_t  pin)

Pinの現在のアナログ入力値を取得する

引数
pinpin番号
戻り値
現在のアナログ入力値

◆ analogReference()

void analogReference ( uint8_t  mode)

アナログ基準電圧を設定する

引数
modeアナログ基準電圧 (DEFAULT/INTERNAL/EXTERNAL)
覚え書き
本関数は互換性確保のために定義されており、呼び出しても効果はない

◆ analogWrite()

void analogWrite ( uint8_t  pin,
int  val 
)

Pinにアナログ出力値を設定する

引数
pinpin番号
val出力値

◆ delay()

void delay ( uint32_t  ms)

指定したミリ秒待機する

引数
ms待機時間(ミリ秒)

◆ delayMicroseconds()

void delayMicroseconds ( uint32_t  us)

指定したマイクロ秒待機する

引数
us待機時間(マイクロ秒)

◆ digitalRead()

int digitalRead ( uint8_t  pin)

Pinの現在のデジタル入力値を取得する

引数
pinpin番号
戻り値
現在のPinの入力値 (HIGH / LOW)

◆ digitalWrite()

void digitalWrite ( uint8_t  pin,
uint8_t  val 
)

Pinにデジタル出力値を設定する

引数
pinpin番号
val出力値 (HIGH / LOW)

◆ loop()

void loop ( )

プログラムのメイン処理

覚え書き
本関数に制御を記述してください。本関数は繰り返し実行されます。

◆ map()

long map ( long  ,
long  ,
long  ,
long  ,
long   
)

引数で指定された値を線形補完した値を返す

引数
x入力値
in_min入力値最小値
in_max入力値最大値
out_min出力値最小値
out_max出力値最大値

◆ micros()

uint32_t micros ( void  )

プログラム起動からのマイクロ秒を返す

戻り値
プログラム起動からのマイクロ秒

◆ millis()

uint32_t millis ( void  )

プログラム起動からのミリ秒を返す

戻り値
プログラム起動からのミリ秒

◆ noTone()

void noTone ( uint8_t  pin)

toneで開始された矩形波の生成を停止

引数
pinpin番号

◆ pinMode()

void pinMode ( uint8_t  pin,
uint8_t  mode 
)

Pinのモードを設定する

引数
pinpin番号
modeモード (OUTPUT/INPUT/INPUT_PULLUP)
覚え書き
本関数は互換性確保のために定義されており、呼び出しても効果はない

◆ random() [1/2]

long random ( long  )

0から指定した値 - 1までの乱数を生成する

引数
howbig乱数最大値 + 1
覚え書き
howbigには[生成したい乱数最大値 + 1を指定する] (0~9までの乱数を生成する場合10を指定しなければならない)

◆ random() [2/2]

long random ( long  ,
long   
)

0から指定した値 - 1までの乱数を生成する

引数
howsmall乱数最小値
howbig乱数最大値 + 1
覚え書き
howbigには[生成したい乱数最大値 + 1を指定する] (0~9までの乱数を生成する場合10を指定しなければならない)

◆ randomSeed()

void randomSeed ( unsigned long  )

乱数のシードを設定する

引数
seed乱数のシード

◆ setup()

void setup ( )

セットアップ処理

覚え書き
ボードに電源を入れたときやリセットされたときに、一度だけ実行される。 変数の初期化やライブラリの準備に使用します。

◆ tone()

void tone ( uint8_t  pin,
unsigned int  frequency,
unsigned long  duration 
)

指定した周波数の矩形波を生成

引数
pinpin番号
frequency周波数[Hz]
duration出力時間 (0=無限) [Opt]