DMX library
Fork of DMX by
DMX.h
- Committer:
- okini3939
- Date:
- 2012-11-21
- Revision:
- 4:dd0544c80096
- Parent:
- 3:2eb66b4d99bd
- Child:
- 5:72039cd4c874
File content as of revision 4:dd0544c80096:
/* * DMX512 send/recv library * Copyright (c) 2011 Hiroshi Suga * Released under the MIT License: http://mbed.org/license/mit */ /** @file DMX.h * @brief DMX512 send/recv */ #ifndef DMX_H #define DMX_H #include "mbed.h" #define DMX_UART_DIRECT #define DMX_SIZE 512 #define DMX_TIME_BREAK 100 // 100us #define DMX_TIME_MAB 10 // 10us #define DMX_TIME_BETWEEN 10 // 10us enum DMX_MODE { DMX_MODE_BEGIN, DMX_MODE_START, DMX_MODE_BREAK, DMX_MODE_MAB, DMX_MODE_DATA, DMX_MODE_ERROR, DMX_MODE_STOP, }; /** DMX512 class (sender/client) */ class DMX { public: /** init DMX class * @param p_tx TX serial port (p9, p13, p28) * @param p_rx RX serial port (p10, p14, p27) */ DMX (PinName p_tx, PinName p_rx); /** Send the message * @param ch DMX data address (0-511) * @param data DMX data (0-255) */ void put (int ch, int data); /** Send the message * @param ch DMX data address (0-511) * @return DMX data (0-255) */ int get (int ch); /** Start DMX send */ void start (); /** Stop DMX send */ void stop (); volatile int is_recived, is_sent; protected: void int_timer (); void int_tx (); void int_rx (); Serial dmx; Timeout timeout01; __IO uint8_t *uart_lcr; __I uint8_t *uart_lsr; __IO uint8_t *uart_thr; __I uint8_t *uart_rbr; volatile DMX_MODE mode_tx, mode_rx; volatile int addr_tx, addr_rx; unsigned char data_tx[DMX_SIZE]; unsigned char data_rx[DMX_SIZE]; private: }; #endif