| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #ifndef _TM1637_H
- #define _TM1637_H 1
- #include "stdint.h"
- #include "pico/stdlib.h"
- #include "hardware/pio.h"
- #define MINUS_SEG 0b01000000 // Minus
- #define DOT_SEG 0b10000000 // DOT
- #define STOP_COND 0x100 // ストップコンディションにする
- #define TM1637_MAX_COL 6 // TM1637の最大カラム数は6
- #define TM1637_MAX_CONTRAST 0b111
- #define TM1637_AUTOINC 0b01000000 // Data set Auto Increment
- #define TM1637_DATASET 0b01000100 // Data set
- #define TM1637_ADDRSET 0b11000000 // ADDR SET
- #define TM1637_DISPOFF 0b10000000 // Display Off
- #define TM1637_DISPON 0b10001000 // Display On
- #define TM1637_ERR_INVALID_PARAM -1
- #define TM1637_ERR_NACK -2
- typedef struct TM1637st {
- PIO pio; // PIOインスタンス
- uint sm; // ステートマシン番号
- uint offset; // オフセットアドレス
- uint8_t contrast; // コントラスト値
- uint8_t colmns; // このユニットのカラム数
- bool initialized; // 初期化完了フラグ
- struct TM1637st *next; // 次の構造体へのポインタ
- } TM1637_t;
- /*
- TM1637_t *TM1637_init(uint8_t sda_base_pin, int col, uint8_t cont);
- TM1637を初期化しハンドルを返す
- パラメータ:
- uint8_t sda_base_pin: TM1637のSDAが接続されているGPIO。SDAの次のGPIOにSCLKを接続すること
- uint8_t col: 接続しているTM1637モジュールのカラム数
- uint8_t cont: コントラスト値(0~7)
- 戻り値:
- TM1637_tのポインタ。NULLは初期化失敗
- */
- TM1637_t *TM1637_init(uint8_t sda_base_pin, uint8_t col, uint8_t cont);
- /*
- int TM1637_set_contrast(TM1637_t *p, uint8_t cont);
- パラメータ:
- TM1637_t *p: TM1637_tのポインタ
- uint8_t cont: コントラスト値
- 戻り値:
- 0なら成功、負の値なら失敗
- */
- int TM1637_set_contrast(TM1637_t *p, uint8_t cont);
- /*
- int TM1637_putchar(TM1637_t *p, char c, bool dot, uint8_t col);
- 1文字出力
- パラメータ:
- TM1637_t *p: TM1637_tのポインタ
- bool dot: ドットセグメントをオンにするならtrue
- uint8_t col: 表示するカラム
- 戻り値:
- 0なら成功、負の値なら失敗
- */
- int TM1637_putchar(TM1637_t *p, char c, bool dot, uint8_t col);
- /*
- int TM1637_putstr(TM1637_t *t, char *str);
- 文字列表示
- パラメータ:
- TM1637_t *p: TM1637_tのポインタ
- char *str: 表示する文字列
- 戻り値:
- 0なら成功、負の値なら失敗
- */
- int TM1637_putstr(TM1637_t *t, char *str);
- #endif
|