I2C Tester

Dependencies:   mbed-src

Files at this revision

API Documentation at this revision

Comitter:
jdiogo10
Date:
Thu Aug 06 17:05:41 2015 +0000
Commit message:
ESRG - JV

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-src.lib Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Aug 06 17:05:41 2015 +0000
@@ -0,0 +1,101 @@
+#include "mbed.h"
+ 
+#define SHT21_REG_DATA  (0x00) // Data Register
+#define SHT21_REG_CONF  (0x01) // Configuration Register
+#define SHT21_ADDR      (0xAA) // SHT21 address
+ 
+I2C i2c1(D14, D15); // This is I2C1 SDA, SCL
+//PwmOut attiny(D3);    // This is PWM2/2
+DigitalOut attiny(D3);  // This is PWM2/2
+Serial usart1(D10, D2); // This is USART1 TX, RX
+InterruptIn button(USER_BUTTON);    // This is USERBUTTON (PC_13)
+
+Ticker flipper;
+DigitalOut led(LED1);
+
+volatile bool button_pressed = false;
+
+//void usart1_RxIrq()
+//{
+//  if(usart1.readable())
+//  {
+//  }
+//}
+
+void pwmon()
+{
+    button_pressed = true;
+}
+
+void pwmoff()
+{
+    button_pressed = false;
+}
+
+void flip() 
+{
+  led = !led;
+    attiny = !attiny;
+}
+
+int main()
+{
+    bool set_pwm = false;
+    int data = 0;
+    char data_write[2];
+    char data_read[1];
+    
+    // Configure the Temperature sensor device SHT21:
+//  data_write[0] = SHT21_REG_CONF;
+//  data_write[1] = 0x00;
+//  i2c1.write(SHT21_ADDR, data_write, 2, 0);
+    
+    // Configure serial port
+    usart1.baud(115200);    // Baud rate
+    //usart1.attach(&usart1_RxIrq, Serial::RxIrq);      // RX interrupt handler
+    
+    // Configure button interrupt
+    button.fall(&pwmon);
+    button.rise(&pwmoff);
+    
+    while(1)
+    {
+        if(button_pressed)
+        {
+            data = 0;
+            
+            if(!set_pwm)
+            {
+                // Configure pwm
+//              attiny.period_ms(50);   // choose the period of the pwm    
+//              attiny.write(0.50f);    // 50% duty cycle
+
+                set_pwm = true;
+                led = 1;
+                attiny = 1;
+                
+                flipper.attach(&flip, 3.0); // the address of the function to be attached (flip) and the interval (3 seconds)
+            }
+        }
+        else
+        {
+//          attiny.write(0);    // Turn off the pwm         
+            flipper.detach();
+            
+            set_pwm = false;
+            attiny = 0;
+            led = 0;
+            
+            // Write and Read from the slave
+            data_write[0] = SHT21_REG_DATA;
+            data_write[1] = data;
+            i2c1.write(SHT21_ADDR, data_write, 2, false);
+            i2c1.read(SHT21_ADDR, data_read, 1, false);
+            
+            usart1.printf("Value = %d\n", data_read);
+            wait(2.0);
+            
+            data++;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-src.lib	Thu Aug 06 17:05:41 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-src/#248b0d2dd755