First Publish. Works fine.

Dependents:   unzen_sample_LPC4088_quickstart

Revision:
0:5ac19c994288
Child:
1:9710fb328a08
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/unzen_hal.h	Sun Apr 10 12:37:10 2016 +0000
@@ -0,0 +1,42 @@
+#ifndef _UNZEN_HAL_H_
+#define _UNZEN_HAL_H_
+
+#include "mbed.h"
+
+namespace unzen 
+{
+        // Set up I2S peripheral to ready to start.
+        // By this HAL, the I2S have to become : 
+        // - slave mode
+        // - clock must be ready
+        // - pins must be configured.
+        // - Interrupt enable.
+    void hal_i2s_setup();
+    
+        // Start I2S transfer. Interrupt starts  
+    void hal_i2s_start();
+ 
+    IRQn_Type hal_get_i2s_irq_id();
+    IRQn_Type hal_get_process_irq_id();
+    
+        // The returned value must be compatible with CMSIS NVIC_SetPriority() API.
+    unsigned int hal_get_lowest_priority_level();
+ 
+        // reutun the intenger value which tells how much data have to be transfered for each
+        // interrupt. For example, if the stereo 32bit data ( total 64 bit ) have to be sent, 
+        // have to return 2. 
+        // The special case is when the word needs to transmit by multiple interrupt, 
+        // must return 0.
+    unsigned int hal_data_per_sample();
+ 
+        // return true when the sample parameter is ready to read.
+        // return false when the sample is not ready to read.
+    bool hal_get_i2s_rx_data( int & sample);
+    
+        // return true when the sample was completely stored to send.
+        // return false when the same sample is required next time.
+    bool hal_set_i2s_tx_data( int sample );
+}
+
+
+#endif
\ No newline at end of file