SMPTE timedode (LTC) decode library for mbed

Dependents:   LTC_SMPTE_sample

SMPTE timedode (LTC) decode library

SMPTEタイムコードをデコード(受信)・エンコード(送信)するライブラリです。

平衡/不平衡/サウンド等によるLTC信号は、適当な回路で整形して入力してください。
出力は適当なドライバ回路を設けてください。

簡易的なプログラムのため、細かいフラグなどは無視しています。

LPC1768 専用、Timer 2 を占有します。

Sample

Import programLTC_SMPTE_sample

SMPTE timedode (LTC) decode library for mbed https://developer.mbed.org/users/okini3939/code/LTC_SMPTE/

Committer:
okini3939
Date:
Mon May 14 08:50:39 2018 +0000
Revision:
2:13a89fffbb75
Parent:
1:63ceee4bfd05
Supported 24, 25fps, Fix algorithm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:8d19e2158eb4 1 /**
okini3939 0:8d19e2158eb4 2 * SMPTE timedode (LTC) decode library for mbed
okini3939 0:8d19e2158eb4 3 * Copyright (c) 2015 Suga
okini3939 0:8d19e2158eb4 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:8d19e2158eb4 5 */
okini3939 0:8d19e2158eb4 6 /** @file
okini3939 0:8d19e2158eb4 7 * @brief SMPTE timedode (LTC) decode library for mbed
okini3939 0:8d19e2158eb4 8 */
okini3939 0:8d19e2158eb4 9
okini3939 0:8d19e2158eb4 10 #ifndef _LTC_SMPTE_H_
okini3939 0:8d19e2158eb4 11 #define _LTC_SMPTE_H_
okini3939 0:8d19e2158eb4 12
okini3939 0:8d19e2158eb4 13 #include "mbed.h"
okini3939 0:8d19e2158eb4 14
okini3939 0:8d19e2158eb4 15 class LTC_SMPTE {
okini3939 0:8d19e2158eb4 16 public:
okini3939 1:63ceee4bfd05 17 enum LTC_TYPE {
okini3939 1:63ceee4bfd05 18 LTC_INPUT,
okini3939 1:63ceee4bfd05 19 LTC_OUTPUT
okini3939 1:63ceee4bfd05 20 };
okini3939 1:63ceee4bfd05 21
okini3939 1:63ceee4bfd05 22 LTC_SMPTE (PinName pin, enum LTC_TYPE type = LTC_INPUT);
okini3939 0:8d19e2158eb4 23
okini3939 0:8d19e2158eb4 24 void read (int *hour, int *min, int *sec, int *frame, int *dir = NULL);
okini3939 0:8d19e2158eb4 25 int isReceived ();
okini3939 0:8d19e2158eb4 26
okini3939 1:63ceee4bfd05 27 void write (int hour, int min, int sec, int frame, int dir = 0);
okini3939 1:63ceee4bfd05 28
okini3939 1:63ceee4bfd05 29 static LTC_SMPTE *_inst;
okini3939 1:63ceee4bfd05 30 void isr_ticker ();
okini3939 1:63ceee4bfd05 31
okini3939 0:8d19e2158eb4 32 protected:
okini3939 1:63ceee4bfd05 33 InterruptIn *_input;
okini3939 0:8d19e2158eb4 34 Timer _timer;
okini3939 1:63ceee4bfd05 35 DigitalOut *_output;
okini3939 0:8d19e2158eb4 36
okini3939 0:8d19e2158eb4 37 int mode;
okini3939 0:8d19e2158eb4 38 int oneflg;
okini3939 0:8d19e2158eb4 39 int count;
okini3939 0:8d19e2158eb4 40 int bit;
okini3939 0:8d19e2158eb4 41 char code[10];
okini3939 0:8d19e2158eb4 42 int hour, min, sec, frame;
okini3939 2:13a89fffbb75 43 int drop, direction, fps;
okini3939 0:8d19e2158eb4 44 int received;
okini3939 0:8d19e2158eb4 45
okini3939 1:63ceee4bfd05 46 enum LTC_TYPE type;
okini3939 1:63ceee4bfd05 47 int phase, zeroflg;
okini3939 1:63ceee4bfd05 48
okini3939 0:8d19e2158eb4 49 void isr_change ();
okini3939 0:8d19e2158eb4 50 void parse_code ();
okini3939 0:8d19e2158eb4 51
okini3939 0:8d19e2158eb4 52 };
okini3939 0:8d19e2158eb4 53
okini3939 0:8d19e2158eb4 54 #endif