mbedの基本的なI/O方法と実例。
この記事では音声合成LSI ATP3011F4-PU をSPIで使います。
興味があるところを読む
音声合成LSI ATP3011F4-PU をSPIで使う 2013/11/30
これもあまりに簡単。
使ったモジュールはこれ。
回路図はこちら。
プログラムはこちら。
SHでのSPIの時は本気で取り組んだけど、mbedはもうやんなっちゃうぐらい簡単。
SHっていったいなんだったんだ(^^;
//----------------------------------------------------------------------------------------
// mbedのSPIで音声合成LSI ATP3011F4-PU を使う 2013/12/15 oj3
// SPIのMODE=3, 周波数は1MHz, SSを使用
//----------------------------------------------------------------------------------------
static bool VoiceRdy(void);
// 出力開始
static void VoiceOut(const char *s, bool stopv=FALSE)
{
DGO_VoiceSs = 0; // CS=ON
// 前の発声を中断して発声するなら・・・
if (stopv == TRUE) {
const char *w = "$\r";
while (*w) {
SPI_a.write(*w++);
wait_ms(1);
}
while (VoiceRdy() == FALSE);
}
// 発声の終了を待つなら・・・
else while (VoiceRdy() == FALSE);
// 発声開始
while (*s) {
SPI_a.write(*s++);
wait_ms(1);
}
wait_us(5);
DGO_VoiceSs = 1; // CS=OFF
}
// 出力が終了したか調べる(終了時TRUE)
static bool VoiceRdy(void)
{
if (SPI_a.write(0xff) != '>') {
wait_ms(10);
return (SPI_a.write(0xff) == '>')? TRUE:FALSE;
}
return TRUE;
}
コメント