Nucleo by Cach

Dependencies:   C12832 CANnucleo LM75B mbed

Fork of CANnucleo_Hello by Zoltan Hudak

Files at this revision

API Documentation at this revision

Comitter:
jcourtois
Date:
Fri Jan 29 16:58:28 2016 +0000
Parent:
9:8352cfe17ab1
Commit message:
Test

Changed in this revision

C12832.lib Show annotated file Show diff for this revision Revisions of this file
LM75B.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 8352cfe17ab1 -r d295b0df4b82 C12832.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/C12832.lib	Fri Jan 29 16:58:28 2016 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/chris/code/C12832/#7de323fa46fe
diff -r 8352cfe17ab1 -r d295b0df4b82 LM75B.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LM75B.lib	Fri Jan 29 16:58:28 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/neilt6/code/LM75B/#fc27dc535ea9
diff -r 8352cfe17ab1 -r d295b0df4b82 main.cpp
--- a/main.cpp	Wed Dec 23 10:38:02 2015 +0000
+++ b/main.cpp	Fri Jan 29 16:58:28 2016 +0000
@@ -22,15 +22,17 @@
 
 #include "mbed.h"
 #include "CAN.h"
+#include "C12832.h"
+#include "LM75B.h"
 
 #define BOARD1    1                 // comment out this line when compiling for board #2
 
 #if defined(BOARD1)
     #define RX_ID   0x100
-    #define TX_ID   0x101
+    #define TX_ID   0x7FF
 #else
     #define RX_ID   0x101
-    #define TX_ID   0x100
+    #define TX_ID   0x7FF
 #endif
 
 // See wiki page <https://developer.mbed.org/users/hudakz/code/CAN_Nucleo_Hello/>
@@ -42,6 +44,15 @@
     DigitalOut  led(LED1);
 #endif
 
+    DigitalIn fire(D4);
+    C12832 lcd(D11, D13, D12, D7, D10);
+    LM75B sensor(D14,D15);
+    AnalogIn pot1 (A0);
+    AnalogIn pot2 (A1);
+    PwmOut r (D5);
+    PwmOut g (D8);
+    PwmOut b (D9);
+      
 int             ledReceived;
 Timer           timer;
 CAN             can(PA_11, PA_12);  // CAN Rx pin name, CAN Tx pin name, Automatic recovery from bus-off state enabled by default
@@ -57,6 +68,7 @@
  * @param   
  * @retval  
  */
+ 
 void onMsgReceived() {
     msgAvailable = true;
 }
@@ -70,7 +82,7 @@
 int main() {
     can.frequency(1000000);                     // set bit rate to 1Mbps
     can.attach(&onMsgReceived, CAN::RxIrq);     // attach 'CAN receive-complete' interrupt handler
-    
+    char buff_2[8];
 #if defined(BOARD1)
     #if defined(TARGET_STM32F103C8T6)
         led = 0;    // turn LED on
@@ -85,24 +97,39 @@
         led = 0;    // turn LED off
     #endif
 #endif
-
+    lcd.cls();
     while(1) {
-        if(timer.read() >= 1.0) {               // check for timeout
+        wait (0.1);
+        lcd.cls();
+        lcd.locate(0,3);
+        lcd.printf("%d %d %d",char(sensor.temp()),char(pot1*255.0), char(pot2*255.0));
+        lcd.locate(0,14);
+        lcd.printf("I:%dF:%dl:%d Data:", rxMsg.id, rxMsg.type, rxMsg.len);
+        for(int i = 0; i < rxMsg.len; i++)
+        {
+            lcd.printf("%x", buff_2[i]);
+        }
+        if(fire) {               // check for timeout
             timer.stop();                       // stop timer
             timer.reset();                      // reset timer (to avaoid repeated send)
             counter++;                          // increment counter
             txMsg.clear();                      // clear Tx message storage
             txMsg.id = TX_ID;                   // set ID
-            txMsg << counter;                   // append first data item (make sure that CAN message total data lenght <= 8 bytes!)
-            txMsg << led.read();                // append second data item (make sure that CAN message total data lenght <= 8 bytes!)
+            txMsg << char(sensor.temp());                   // append first data item (make sure that CAN message total data lenght <= 8 bytes!)
+            txMsg << char(0x00);
+            txMsg << char(pot1*255.0);                // append second data item (make sure that CAN message total data lenght <= 8 bytes!)
+            txMsg << char(pot2*255.0); 
             can.write(txMsg);                   // transmit message
             printf("CAN message sent\r\n");
             
+           
+            
             #if defined(TARGET_STM32F103C8T6)
                 led = 1;                        // turn LED off
             #else
                 led = 0;                        // turn LED off
             #endif
+            while(fire);
         }
         if(msgAvailable) {
             msgAvailable = false;               // reset flag for next use
@@ -112,9 +139,19 @@
             printf("  Type   = %d\r\n", rxMsg.type);
             printf("  Format = %d\r\n", rxMsg.format);
             printf("  Length = %d\r\n", rxMsg.len);
-            printf("  Data   =");            
+            printf("  Data   =");      
+            lcd.locate(0,14);
+            lcd.printf("I:%dF:%dl:%d", rxMsg.id, rxMsg.type, rxMsg.len);    
+            
             for(int i = 0; i < rxMsg.len; i++)
-                printf(" %x", rxMsg.data[i]);
+            {
+                lcd.printf(" %x", rxMsg.data[i]);
+                buff_2[i] =  rxMsg.data[i];
+            }   
+            r = (rxMsg.data[0]/255.0);
+            g = (rxMsg.data[1]/255.0);
+            b = (rxMsg.data[2]/255.0);
+            if(rxMsg.data[0] == 1) lcd.cls();
             printf("\r\n");            
             if(rxMsg.id == RX_ID) {             // if ID matches
                 rxMsg >> counter;               // extract first data item