AVR Libc 1.6.7 で提供されているヘッダファイルと関数・マクロリスト
AVR Libc 日本語訳を作り始めました。のんびり更新していくつもりです。(協力者募集中)
標準的な関数
stdio.h 標準入出力
#include <stdio.h>
ファイル操作
関数プロトタイプ | 説明 |
---|
FILE * fdevopen (int(*put)(char, FILE *), int(*get)(FILE *)) | ファイル入出力オープン |
int fclose (FILE *__stream) | ファイル入出力クローズ |
int fflush (FILE *stream) | ファイル入出力フラッシュ |
size_t fread (void *__ptr, size_t __size, size_t __nmemb, FILE *__stream) | ファイル読み出し |
size_t fwrite (const void *__ptr, size_t __size, size_t __nmemb, FILE *__stream) | ファイル書き込み |
void clearerr (FILE *__stream) | エラー状態の解除 |
int feof (FILE *__stream) | ファイルの終了したか検出 |
int ferror (FILE *__stream) | ファイルの読み書きでエラーしたか検出 |
文字列フォーマット出力
関数プロトタイプ | 説明 |
---|
int printf (const char *__fmt,…) | フォーマット書式付き文字列出力 (stdoutへ) |
int vprintf (const char *__fmt, va_list __ap) | フォーマット書式付き文字列出力の可変引数版 (stdoutへ) |
int sprintf (char *__s, const char *__fmt,…) | フォーマット書式付き文字列出力( * __s へ文字列出力) |
int vsprintf (char *__s, const char *__fmt, va_list ap) | フォーマット書式付き文字列出力の可変引数版( * __s へ文字列出力) |
int snprintf (char *__s, size_t __n, const char *__fmt,…) | フォーマット書式付き文字列出力で出力文字数指定( * __s へ文字列出力) |
int vsnprintf (char *__s, size_t __n, const char *__fmt, va_list ap) | フォーマット書式付き文字列出力で出力文字数指定の可変引数版( * __s へ文字列出力) |
int fprintf (FILE *__stream, const char *__fmt,…) | フォーマット書式付き文字列出力(FILEへ出力) |
int vfprintf (FILE *__stream, const char *__fmt, va_list __ap) | フォーマット書式付き文字列出力の可変引数版(FILEへ出力) |
文字列フォーマット出力(プログラムメモリ版)
関数プロトタイプ | 説明 |
---|
int printf_P (const char *__fmt,…) | フォーマット書式付き文字列出力 (stdoutへ) |
int sprintf_P (char *__s, const char *__fmt,…) | フォーマット書式付き文字列出力( * __s へ文字列出力) |
int vsprintf_P (char *__s, const char *__fmt, va_list ap) | フォーマット書式付き文字列出力の可変引数版( * __s へ文字列出力) |
int snprintf_P (char *__s, size_t __n, const char *__fmt,…) | フォーマット書式付き文字列出力で出力文字数指定( * __s へ文字列出力) |
int vsnprintf_P (char *__s, size_t __n, const char *__fmt, va_list ap) | フォーマット書式付き文字列出力で出力文字数指定の可変引数版( * __s へ文字列出力) |
int fprintf_P (FILE *__stream, const char *__fmt,…) | フォーマット書式付き文字列出力(FILEへ出力) |
int vfprintf_P (FILE *__stream, const char *__fmt, va_list __ap) | フォーマット書式付き文字列出力の可変引数版(FILEへ出力) |
文字列フォーマット入力
関数プロトタイプ | 説明 |
---|
int scanf (const char *__fmt,…) | 書式付き入力変換 (stdinから) |
int vscanf (const char *__fmt, va_list __ap) | 書式付き入力変換の可変引数版 (stdinから) |
int sscanf (const char *__buf, const char *__fmt,…) | 書式付き入力変換 ( * __buf 文字列から) |
int fscanf (FILE *__stream, const char *__fmt,…) | 書式付き入力変換 (FILEから) |
int vfscanf (FILE *__stream, const char *__fmt, va_list __ap) | 書式付き入力変換の可変引数版 (FILEから) |
文字列フォーマット入力(プログラムメモリ版)
関数プロトタイプ | 説明 |
---|
int scanf_P (const char *__fmt,…) | 書式付き入力変換 (stdinから) |
int sscanf_P (const char *__buf, const char *__fmt,…) | 書式付き入力変換 ( * __buf 文字列から) |
int fscanf_P (FILE *__stream, const char *__fmt,…) | 書式付き入力変換 (FILEから) |
int vfscanf_P (FILE *__stream, const char *__fmt, va_list __ap) | 書式付き入力変換の可変引数版 (FILEから) |
文字出力
関数プロトタイプ | 説明 |
---|
int fputc (int __c, FILE *__stream) | 文字出力 (FILEへ) |
int puts (const char *__str) | 文字列出力 (stdoutへ) |
int fputs (const char *__str, FILE *__stream) | 文字列出力 (FILEへ) |
文字出力(プログラムメモリ版)
関数プロトタイプ | 説明 |
---|
int puts_P (const char *__str) | 文字列出力 (stdoutへ) |
int fputs_P (const char *__str, FILE *__stream) | 文字列出力 (FILEへ) |
文字入力
関数プロトタイプ | 説明 |
---|
int fgetc (FILE *__stream) | 文字入力 (FILEから) |
char * gets (char *__str) | 文字列入力 (stdinから) |
char * fgets (char *__str, int __size, FILE *__stream) | 文字列入力 (FILEから) |
int ungetc (int __c, FILE *__stream) | 入力ストリームへ文字を戻す (FILEへ) |
stdlib.h 標準ライブラリ
#include <stdlib.h>
変換
関数プロトタイプ | 説明 |
---|
int atoi (const char *__s) __ATTR_PURE__ | 文字列から整数int型へ変換 |
long atol (const char *__s) __ATTR_PURE__ | 文字列から整数long int型へ変換 |
double atof (const char *__nptr) | 文字列から浮動小数点float型へ変換 |
long strtol (const char *__nptr, char **__endptr, int __base) | 文字列から整数long int型へ変換 |
unsigned long strtoul (const char *__nptr, char **__endptr, int __base) | 文字列から整数unsigned long int型へ変換 |
double strtod (const char *__nptr, char **__endptr) | 文字列から浮動小数点double型へ変換 |
Non-standard (i.e. non-ISO C) functions.
関数プロトタイプ | 説明 |
---|
char * itoa (int __val, char *__s, int __radix) | 整数int型から文字列へ変換 |
char * utoa (unsigned int __val, char *__s, int __radix) | 整数unsigned int型から文字列へ変換 |
char * ltoa (long int __val, char *__s, int __radix) | 整数long int型から文字列へ変換 |
char * ultoa (unsigned long int __val, char *__s, int __radix) | 整数unsigned long int型から文字列へ変換 |
乱数
int rand (void) | 擬似乱数生成 |
void srand (unsigned int __seed) | 擬似乱数seed指定 |
int rand_r (unsigned long *__ctx) | seed指定の擬似乱数生成 |
Non-standard (i.e. non-ISO C) functions.
関数プロトタイプ | 説明 |
---|
long random (void) | 擬似乱数生成 |
void srandom (unsigned long __seed) | 擬似乱数seed指定 |
long random_r (unsigned long *__ctx) | seed指定の擬似乱数生成 |
変換
double型引数の変換関数
この関数は、標準ライブラリ(libc.a)に含まれておらず、数学ライブラリ(libm.a)に含まれています。
そのため、アプリケーションのリンク時に -lm オプションを指定する必要があります。
関数プロトタイプ | 説明 |
---|
char * dtostre (double __val, char *__s, unsigned char __prec, unsigned char __flags) | doubleから指数表示の文字列へ変換 |
char * dtostrf (double __val, signed char __width, unsigned char __prec, char *__s) | doubleから浮動小数表示の文字列へ変換 |
メモリ操作
関数プロトタイプ | 説明 |
---|
void * malloc (size_t __size) __ATTR_MALLOC__ | メモリ割当 |
void * calloc (size_t __nele, size_t __size) __ATTR_MALLOC__ | 初期化済みメモリ割当 |
void * realloc (void *__ptr, size_t __size) __ATTR_MALLOC__ | メモリ割当変更 |
void free (void *__ptr) | メモリ解放 |
数値変換系
関数プロトタイプ | 説明 |
---|
int abs (int __i) | int型絶対値 |
long labs (long __i) | long型絶対値 |
div_t div (int __num, int __denom) __asm__(“__divmodhi4”) | int型割り算で商と剰余を取得 |
ldiv_t ldiv (long __num, long __denom) __asm__(“__divmodsi4”) | long型割り算で商と剰余を取得 |
データ構造処理
void * bsearch (const void *__key, const void
*__base, size_t __nmemb, size_t __size, int(*__compar)(const void *,
const void *)) | 探索 |
void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) | クイックソート |
終了
void exit (int __status) __ATTR_NORETURN__ | 終了 |
void abort (void) __ATTR_NORETURN__ | 異常終了 |
alloca.h 自動開放メモリ割当
#include <alloca.h>
自動開放メモリ割当て
関数プロトタイプ | 説明 |
---|
void* alloca ( size_t __size ) | スタックにメモリ確保する |
setjmp.h ジャンプ処理
#include <setjmp.h>
ジャンプ処理
関数プロトタイプ | 説明 |
---|
int setjmp (jmp_buf __jmpb) | ジャンプ処理 |
void longjmp (jmp_buf __jmpb, int __ret) __ATTR_NORETURN__ | ジャンプ処理 |
ctype.h 文字処理
#include <ctype.h>
文字判定関数
関数プロトタイプ | 説明 |
---|
int isascii (int __c) | ASCII文字判定 |
int isalnum (int __c) | 英数字(A_Za_z0_9)判定 |
int isalpha (int __c) | 英字(A_Za_z)判定 |
int isupper (int __c) | 大文字(A_Z)判定 |
int islower (int __c) | 小文字(a_z)判定 |
int isdigit (int __c) | 数字(0_9)判定 |
int isxdigit (int __c) | 16進数文字(a_fA_F0_9)判定 |
int isblank (int __c) | 空白文字(Space or Tab)判定 |
int iscntrl (int __c) | 制御文字判定 |
int isgraph (int __c) | 表示可能文字判定(spaceのぞく) |
int isprint (int __c) | 表示可能文字判定(space含む) |
int ispunct (int __c) | 表示可能文字判定(英数字spaceのぞく) |
int isspace (int __c) | 空白文字判定(space/tab/vtab/改行/行頭復帰/改ページ) |
変換関数
関数プロトタイプ | 説明 |
---|
int toupper (int __c) | 大文字へ変換(a → A) |
int tolower (int __c) | 小文字へ変換(A → a) |
int toascii (int __c) | 7bit ASCII文字へ変換 |
string.h 文字列処理
#include <string.h>
ビット検出
関数プロトタイプ | 説明 |
---|
int ffs (int __val) | 最初(最下位)にセットされているビット位置の検出 |
int ffsl (long __val) | 最初(最下位)にセットされているビット位置の検出 |
int ffsll (long long __val) | 最初(最下位)にセットされているビット位置の検出 |
メモリ
プログラムメモリ版は、avr/pgmspace.hを参照
関数プロトタイプ | 説明 |
---|
void * memcpy (void *, const void *, size_t) | メモリ領域をコピー |
void * memccpy (void *, const void *, int, size_t) | メモリ領域をコピー (指定文字まで) |
void * memchr (const void *, int, size_t) __ATTR_PURE__ | メモリ内の文字検索 |
void * memrchr (const void *, int, size_t) __ATTR_PURE__ | メモリ内の文字検索 (指定アドレスから) |
int memcmp (const void *, const void *, size_t) __ATTR_PURE__ | メモリ領域の比較 |
void * memmem (const void *, size_t, const void *, size_t) __ATTR_PURE__ | 部分文字列の検索 |
void * memmove (void *, const void *, size_t) | メモリ領域の移動 |
void * memset (void *, int, size_t) | 指定メモリ領域全体に指定値をセット |
文字列処理
プログラムメモリ版は、avr/pgmspace.hを参照
関数プロトタイプ | 説明 |
---|
size_t strlen (const char *) __ATTR_PURE__ | 文字列の長さを求める |
size_t strnlen (const char *, size_t) __ATTR_PURE__ | 文字列の長さを求める (最大n文字) |
char * strcat (char *, const char *) | 文字列の連結 |
char * strncat (char *, const char *, size_t) | n文字の文字列の連結 |
size_t strlcat (char *, const char *, size_t) | n文字の文字列の連結 |
char * strcpy (char *, const char *) | 文字列の複写 |
char * strncpy (char *, const char *, size_t) | n文字の文字列の複写 |
size_t strlcpy (char *, const char *, size_t) | n文字の文字列の複写 |
int strcmp (const char *, const char *) __ATTR_PURE__ | 二つの文字列を比較 |
int strncmp (const char *, const char *, size_t) __ATTR_PURE__ | 先頭からn文字の二つの文字列を比較 |
int strcasecmp (const char *, const char *) __ATTR_PURE__ | 二つの文字列を大文字小文字を区別せず比較 |
int strncasecmp (const char *, const char *, size_t) __ATTR_PURE__ | 先頭からn文字の二つの文字列を大文字小文字を区別せず比較 |
char * strstr (const char *, const char *) __ATTR_PURE__ | 部分文字列の位置を検索 |
char * strcasestr (const char *, const char *) __ATTR_PURE__ | 部分文字列の位置を大文字小文字を区別せず検索 |
char * strchr (const char *, int) __ATTR_PURE__ | 文字を先頭から検索 |
char * strrchr (const char *, int) __ATTR_PURE__ | 文字を後方から検索 |
char * strchrnul (const char *, int) __ATTR_PURE__ | 文字を先頭から検索 (不一致時には最後のアドレスを返す) |
char * strpbrk (const char *__s, const char *__accept) __ATTR_PURE__ | 文字列から文字群を検索 |
size_t strspn (const char *__s, const char *__accept) __ATTR_PURE__ | 文字列から文字群が含まれる長さを求める |
size_t strcspn (const char *__s, const char *__reject) __ATTR_PURE__ | 文字列から文字群が含まれない長さを求める |
char * strdup (const char *s1) | 文字列の複製 |
char * strlwr (char *) | 文字列を小文字へ変換 |
char * strupr (char *) | 文字列を大文字へ変換 |
char * strrev (char *) | 文字列を逆順に変換 |
char * strsep (char **, const char *) | 文字列から区切り文字を取り出す |
char * strtok (char *, const char *) | 文字列を区切り文字で分解 |
char * strtok_r (char *, const char *, char **) | 文字列を区切り文字で分解 (リエントラント版) |
math.h 数値演算
libm.a をリンクすること。
#include <math.h>
三角関数
関数プロトタイプ | 説明 |
---|
double cos (double __x) | コサイン関数 |
double sin (double __x) | サイン関数 |
double tan (double __x) | タンジェント関数 |
double sinh (double __x) | ハイパボリック・サイン関数 |
double cosh (double __x) | ハイパボリック・コサイン関数 |
double tanh (double __x) | ハイパボリック・タンジェント関数 |
double asin (double __x) | アーク・サイン関数 |
double acos (double __x) | アーク・コサイン関数 |
double atan (double __x) | アーク・タンジェント関数 |
double atan2 (double __y, double __x) | アーク・タンジェント関数 |
数値処理
関数プロトタイプ | 説明 |
---|
double fabs (double __x) | double型絶対値 |
double fmod (double __x, double __y) | double型剰余演算 |
double modf (double __x, double *__iptr) | double型(x)を、整数部(iptr)・小数部(返値)へ分離 |
float modff (float __x, float *__iptr) | float型(x)を、整数部(iptr)・小数部(返値)へ分離 |
double floor (double __x) | 小数切り捨て (5.5 → 5.0) |
double ceil (double __x) | 小数切り上げ (5.5 → 6.0) |
double frexp (double __x, int *__pexp) | 仮数部と指数部の分離 |
double round (double __x) | 四捨五入 (int用) |
long lround (double __x) | 四捨五入 (long用) |
double trunc (double __x) | 最も近い整数値へ丸める |
long lrint (double __x) | 丸め方向へ丸める |
計算関数
関数プロトタイプ | 説明 |
---|
double sqrt (double __x) | 平方根を計算 |
double cbrt (double __x) | 立方根を計算 |
double hypot (double __x, double __y | ユークリッド距離 |
double square (double __x) | 二乗 (x * x) |
double pow (double __x, double __y) | べき乗を計算 |
double ldexp (double __x, int __exp) | 2のn乗を計算 |
double exp (double __x) | 指数関数を計算 |
double log (double __x) | 自然対数を計算 |
double log10 (double __x) | 常用対数を計算 |
値判定
関数プロトタイプ | 説明 |
---|
int isnan (double __x) | NaN判定 (NaNならば非ゼロ) |
static int isfinite (double __x) | 無限大判定 (無限大なら非ゼロ) |
int isinf (double __x) | 負の無限大判定 (無限大なら非ゼロ) |
int signbit (double __x) | 符号判定 (負なら非ゼロ) |
浮動小数点計算
関数プロトタイプ | 説明 |
---|
static double copysign (double __x, double __y) | XにYの符号を複写 |
double fma (double __x, double __y, double __z) | (x * y) + z を計算 |
double fdim (double __x, double __y) | 正の差を計算 |
double fmax (double __x, double __y) | 大きい方の値を返す |
double fmin (double __x, double __y) | 小さい方の値を返す |
AVR特有の関数
avr/sfr_defs.h
#include <avr/sfr_defs.h>
Bit manipulation
関数プロトタイプ | 説明 |
---|
#define _BV(bit) (1 << (bit)) | 指定ビットを1に |
IO register bit manipulation
関数プロトタイプ | 説明 |
---|
#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit)) | SFRレジスタへの指定ビットをセット(1にする) |
#define bit_is_clear(sfr, bit) (!(_SFR_BYTE(sfr) & _BV(bit))) | SFRレジスタへの指定ビットをクリア(0にする) |
#define loop_until_bit_is_set(sfr, bit) do { } while (bit_is_clear(sfr, bit)) | SFRレジスタの指定ビットがセットされるまでループ |
#define loop_until_bit_is_clear(sfr, bit) do { } while (bit_is_set(sfr, bit)) | FSFRレジスタの指定ビットがクリアされるまでループ |
avr/interrupt.h 割込関数
#include <avr/interrupt.h>
割込フラグのグローバル操作
グローバルな割込みフラグは、ステータス・レジスタ(SREG)で保持される。
関数プロトタイプ | 説明 |
---|
#define sei() | 割込許可 |
#define cli() | 割込無効 |
Macros for writing interrupt handler functions
関数プロトタイプ | 説明 |
---|
#define ISR(vector, attributes) | ISR(割込)関数 |
#define SIGNAL(vector) | SIGNAL関数 |
#define EMPTY_INTERRUPT(vector) | 空割込 |
#define ISR_ALIAS(vector, target_vector) | ISR(割込)エイリアス |
#define reti() | 割込終了(reti)関数 |
#define BADISR_vect | BADISRベクタ |
avr/eeprom.h 内蔵EEPROM制御
#include <avr/eeprom.h>
avr/eeprom.h 内蔵EEPROM制御の説明
EEPROM 1Byte(8bit) 操作
関数プロトタイプ | 説明 |
---|
uint8_t eeprom_read_byte (const uint8_t *__p) __ATTR_PURE__ | EEPROM 1Byte(8bit)読出し |
void eeprom_write_byte (uint8_t *__p, uint8_t __value) | EEPROM 1Byte(8bit)書き込み |
void eeprom_update_byte (uint8_t *__p, uint8_t __value) | EEPROM 1Byte(8bit)更新 |
EEPROM 2Byte(16bit) 操作
関数プロトタイプ | 説明 |
---|
uint16_t eeprom_read_word (const uint16_t *__p) __ATTR_PURE__ | EEPROM 2Byte(16bit)読出し |
void eeprom_write_word (uint16_t *__p, uint16_t __value) | EEPROM 2Byte(16bit)書き込み |
void eeprom_update_word (uint16_t *__p, uint16_t __value) | EEPROM 2Byte(16bit)更新 |
EEPROM 4Byte(32bit) 操作
関数プロトタイプ | 説明 |
---|
uint32_t eeprom_read_dword (const uint32_t *__p) __ATTR_PURE__ | EEPROM 4Byte(32bit)読出し |
void eeprom_write_dword (uint32_t *__p, uint32_t __value) | EEPROM 4Byte(32bit)書き込み |
void eeprom_update_dword (uint32_t *__p, uint32_t __value) | EEPROM 4Byte(32bit)更新 |
EEPROM float 操作
関数プロトタイプ | 説明 |
---|
float eeprom_read_float (const float *__p) __ATTR_PURE__ | EEPROM float読出し |
void eeprom_write_float (float *__p, float __value) | EEPROM float書き込み |
void eeprom_update_float (float *__p, float __value) | EEPROM float更新 |
EEPROM block 操作
関数プロトタイプ | 説明 |
---|
void eeprom_read_block (void *__dst, const void *__src, size_t __n) | EEPROM ブロック読出し |
void eeprom_write_block (const void *__src, void *__dst, size_t __n) | EEPROM ブロック書き込み |
void eeprom_update_block (const void *__src, void *__dst, size_t __n) | EEPROM ブロック更新 |
avr/pgmspace.h プログラムメモリスペース操作
#include <avr/pgmspace.h>
関数プロトタイプ | 説明 |
---|
#define PSTR(s) ((const PROGMEM char *)(s)) | |
#define pgm_read_byte_near(address_short) __LPM((uint16_t)(address_short)) | プログラムメモリBYTE読出し(near shortアドレス) |
#define pgm_read_word_near(address_short) __LPM_word((uint16_t)(address_short)) | プログラムメモリWORD読出し(near shortアドレス) |
#define pgm_read_dword_near(address_short) __LPM_dword((uint16_t)(address_short)) | プログラムメモリDWORD読出し(near shortアドレス) |
#define pgm_read_float_near(address_short) __LPM_float((uint16_t)(address_short)) | プログラムメモリFLOAT読出し(near shortアドレス) |
#define pgm_read_byte_far(address_long) __ELPM((uint32_t)(address_long)) | プログラムメモリBYTE読出し(far longアドレス) |
#define pgm_read_word_far(address_long) __ELPM_word((uint32_t)(address_long)) | プログラムメモリWORD読出し(far longアドレス) |
#define pgm_read_dword_far(address_long) __ELPM_dword((uint32_t)(address_long)) | プログラムメモリDWORD読出し(far longアドレス) |
#define pgm_read_float_far(address_long) __ELPM_float((uint32_t)(address_long)) | プログラムメモリFLOAT読出し(far longアドレス) |
#define pgm_read_byte(address_short) pgm_read_byte_near(address_short) | pgm_read_byte_near()と同じ |
#define pgm_read_word(address_short) pgm_read_word_near(address_short) | pgm_read_word_near()と同じ |
#define pgm_read_dword(address_short) pgm_read_dword_near(address_short) | pgm_read_dword_near()と同じ |
#define pgm_read_float(address_short) pgm_read_float_near(address_short) | pgm_read_float_near()と同じ |
#define PGM_P const prog_char * | プログラムメモリポインタ |
#define PGM_VOID_P const prog_void * ~プログラムメモリvoidポインタ | |
関数プロトタイプ | 説明 |
---|
void * memcpy_P (void *, PGM_VOID_P, size_t) | メモリ領域をコピー |
void * memccpy_P (void *, PGM_VOID_P, int __val, size_t) | メモリ領域をコピー (指定文字まで) |
PGM_VOID_P memchr_P (PGM_VOID_P, int __val, size_t __len) | メモリ内の文字検索 |
PGM_VOID_P memrchr_P (PGM_VOID_P, int __val, size_t __len) | メモリ内の文字検索 (指定アドレスから) |
int memcmp_P (const void *, PGM_VOID_P, size_t) __ATTR_PURE__ | メモリ領域の比較 |
void * memmem_P (const void *, size_t, PGM_VOID_P, size_t) __ATTR_PURE__ | 部分文字列の検索 |
関数プロトタイプ | 説明 |
---|
size_t strlen_P (PGM_P) | 文字列の長さを求める |
size_t strnlen_P (PGM_P, size_t) | 文字列の長さを求める (最大n文字) |
char * strcat_P (char *, PGM_P) | 文字列の連結 |
char * strncat_P (char *, PGM_P, size_t) | n文字の文字列の連結 |
size_t strlcat_P (char *, PGM_P, size_t) | n文字の文字列の連結 |
char * strcpy_P (char *, PGM_P) | 文字列の複写 |
char * strncpy_P (char *, PGM_P, size_t) | n文字の文字列の複写 |
size_t strlcpy_P (char *, PGM_P, size_t) | n文字の文字列の複写 |
int strcmp_P (const char *, PGM_P) __ATTR_PURE__ | 二つの文字列を比較 |
int strncmp_P (const char *, PGM_P, size_t) __ATTR_PURE__ | 先頭からn文字の二つの文字列を比較 |
int strcasecmp_P (const char *, PGM_P) __ATTR_PURE__ | 二つの文字列を大文字小文字を区別せず比較 |
int strncasecmp_P (const char *, PGM_P, size_t) __ATTR_PURE__ | 先頭からn文字の二つの文字列を大文字小文字を区別せず比較 |
char * strstr_P (const char *, PGM_P) __ATTR_PURE__ | 部分文字列の位置を検索 |
char * strcasestr_P (const char *, PGM_P) __ATTR_PURE__ | 部分文字列の位置を大文字小文字を区別せず検索 |
PGM_P strchr_P (PGM_P, int __val) | 文字を先頭から検索 |
PGM_P strrchr_P (PGM_P, int __val) | 文字を後方から検索 |
PGM_P strchrnul_P (PGM_P, int __val) | 文字を先頭から検索 (不一致時には最後のアドレスを返す) |
char * strpbrk_P (const char *__s, PGM_P __accept) __ATTR_PURE__ | 文字列から文字群を検索 |
size_t strspn_P (const char *__s, PGM_P __accept) __ATTR_PURE__ | 文字列から文字群が含まれる長さを求める |
size_t strcspn_P (const char *__s, PGM_P __reject) __ATTR_PURE__ | 文字列から文字群が含まれない長さを求める |
char * strsep_P (char **__sp, PGM_P __delim) | 文字列から区切り文字を取り出す |
char * strtok_P (char *s, PGM_P delim) | 文字列を区切り文字で分解 |
char * strtok_rP (char *__s, PGM_P __delim, char **__last) | 文字列を区切り文字で分解 (リエントラント版) |
avr/power.h モジュール電源制御
#include <avr/power.h>
関数プロトタイプ | 説明 |
---|
power_xxx_enable() | xxx用電源ON |
power_xxx_disable() | xxx用電源OFF |
avr/sleep.h SLEEP制御
#include <avr/sleep.h>
関数プロトタイプ | 説明 |
---|
void sleep_enable (void) | スリープ有効 |
void sleep_disable (void) | スリープ無効 |
void sleep_cpu (void) | スリープCPU |
関数プロトタイプ | 説明 |
---|
set_sleep_mode() | スリープモード設定 |
sleep_bod_disable() | スリープBOD無効 |
avr/wdt.h ウォッチドックタイマー
#include <avr/wdt.h>
関数プロトタイプ | 説明 |
---|
#define wdt_reset() __asm__ __volatile__ (“wdr”) | ウォッチドックタイマリセット |
#define wdt_enable(value) | ウォッチドックタイマ有効 |
#define wdt_disable() | ウォッチドックタイマ無効 |
ユーティリティ関数
util/crc16.h CRC16生成用
#include <util/crc16.h>
関数プロトタイプ | 説明 |
---|
static __inline__ uint16_t _crc16_update (uint16_t __crc, uint8_t __data) | CRC-16 |
static __inline__ uint16_t _crc_xmodem_update (uint16_t __crc, uint8_t __data) | CRC-XMODEM |
static __inline__ uint16_t _crc_ccitt_update (uint16_t __crc, uint8_t __data) | CRC-CCITT |
static __inline__ uint8_t _crc_ibutton_update (uint8_t __crc, uint8_t __data) | Dallas (Maxim) iButton 8-bit CRC |
util/delay.h 遅延関数
#include <util/delay.h>
関数プロトタイプ | 説明 |
---|
void _delay_ms (double __ms) | ms遅延 (最長 262.14 ms / F_CPU MHz) |
void _delay_us (double __us) | us遅延 (最長 768 us / F_CPU MHz) |
util/delay_basic.h 遅延関数基礎関数
#include <util/delay_basic.h>
関数プロトタイプ | 説明 |
---|
void _delay_loop_1 (uint8_t __count) | 8bit 遅延ループ |
void _delay_loop_2 (uint16_t __count) | 16bit 遅延ループ |
util/parity.h パリティビット用
#include <util/parity.h>
関数プロトタイプ | 説明 |
---|
#define parity_even_bit(val) | 偶数パリティ生成 |
util/setbaud.h USART通信速度設定
#include <util/setbaud.h>
関数プロトタイプ | 説明 |
---|
#define BAUD_TOL 2 | 許容誤差[%]設定 |
#define UBRR_VALUE | |
#define UBRRL_VALUE | UBRRLの設定(UBRR・BAUDと排他) |
#define UBRRH_VALUE | UBRRHの設定(UBRR・BAUDと排他) |
#define USE_2X 0 | 2x通信を使用するか(0:使用しない/1:使用する) |
#define BAUD 38400 | 通信レートの設定 |
参考
C99用のリファレンスシートも参考にしてください。