トランジスタ技術2015年6月号mbedラジコン・カーp182 リスト3 音声合成LSIのmbedメイン・プログラム

Dependencies:   mbed

Committer:
YoshihitoShimada
Date:
Mon Jun 01 02:43:44 2015 +0000
Revision:
0:32f0c58ff820
AquesTalk pico test program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YoshihitoShimada 0:32f0c58ff820 1 #include "mbed.h"
YoshihitoShimada 0:32f0c58ff820 2 #pragma once
YoshihitoShimada 0:32f0c58ff820 3
YoshihitoShimada 0:32f0c58ff820 4 #define AQTK_I2C_ADDR (0x2E<<1)
YoshihitoShimada 0:32f0c58ff820 5 #define AQTK_STARTUP_WAIT_MS 80
YoshihitoShimada 0:32f0c58ff820 6 #define AQTK_POLL_WAIT_MS 10
YoshihitoShimada 0:32f0c58ff820 7
YoshihitoShimada 0:32f0c58ff820 8 /** ATP3012 class
YoshihitoShimada 0:32f0c58ff820 9 *
YoshihitoShimada 0:32f0c58ff820 10 * AquesTalk pico LSI I2C interface
YoshihitoShimada 0:32f0c58ff820 11 * Example:
YoshihitoShimada 0:32f0c58ff820 12 * @code
YoshihitoShimada 0:32f0c58ff820 13 * #include "ATP3012.h"
YoshihitoShimada 0:32f0c58ff820 14 * ATP3012 talk(P0_10,P0_11); // I2C sda scl
YoshihitoShimada 0:32f0c58ff820 15 *
YoshihitoShimada 0:32f0c58ff820 16 * int main() {
YoshihitoShimada 0:32f0c58ff820 17 * talk.Synthe("konnichiwa.");
YoshihitoShimada 0:32f0c58ff820 18 * for(int n = 1; ; n++) {
YoshihitoShimada 0:32f0c58ff820 19 * char buf[32];
YoshihitoShimada 0:32f0c58ff820 20 * snprintf(buf, sizeof(buf), "<NUMK VAL=%d>.", n);
YoshihitoShimada 0:32f0c58ff820 21 * talk.Synthe(buf);
YoshihitoShimada 0:32f0c58ff820 22 * }
YoshihitoShimada 0:32f0c58ff820 23 * }
YoshihitoShimada 0:32f0c58ff820 24 * @endcode
YoshihitoShimada 0:32f0c58ff820 25 *
YoshihitoShimada 0:32f0c58ff820 26 */
YoshihitoShimada 0:32f0c58ff820 27 class ATP3012 {
YoshihitoShimada 0:32f0c58ff820 28 public:
YoshihitoShimada 0:32f0c58ff820 29 /** Create a AquesTalk pico LSI I2C interface
YoshihitoShimada 0:32f0c58ff820 30 *
YoshihitoShimada 0:32f0c58ff820 31 * @param sda I2C data pin
YoshihitoShimada 0:32f0c58ff820 32 * @param scl I2C clock pin
YoshihitoShimada 0:32f0c58ff820 33 * @param addr I2C address
YoshihitoShimada 0:32f0c58ff820 34 */
YoshihitoShimada 0:32f0c58ff820 35 ATP3012(PinName sda, PinName scl, int addr = AQTK_I2C_ADDR);
YoshihitoShimada 0:32f0c58ff820 36 bool IsActive(int timeout_ms = 500);
YoshihitoShimada 0:32f0c58ff820 37 void Synthe(const char* msg);
YoshihitoShimada 0:32f0c58ff820 38 void Write(const char* msg);
YoshihitoShimada 0:32f0c58ff820 39 bool IsBusy();
YoshihitoShimada 0:32f0c58ff820 40 private:
YoshihitoShimada 0:32f0c58ff820 41 int _addr;
YoshihitoShimada 0:32f0c58ff820 42 I2C _i2c;
YoshihitoShimada 0:32f0c58ff820 43 Timer _poll_wait;
YoshihitoShimada 0:32f0c58ff820 44 };
YoshihitoShimada 0:32f0c58ff820 45