thanks to Zoltan Hudak publish the way to use stm32f103c8t6 on mbed. now you can use it with Wii IRcam

Dependencies:   mbed-STM32F103C8T6 mbed

Fork of Wii_IRCam_Test by Michael Shimniok

Revision:
2:43bff54a5f67
Parent:
1:150525e9c21f
diff -r 150525e9c21f -r 43bff54a5f67 main.cpp
--- a/main.cpp	Fri Dec 31 09:33:30 2010 +0000
+++ b/main.cpp	Tue May 23 17:30:11 2017 +0000
@@ -1,3 +1,4 @@
+#include "stm32f103c8t6.h"
 #include "mbed.h"
 
 // Adapted from kako's source code: http://www.kako.com/neta/2008-009/2008-009.html
@@ -12,9 +13,10 @@
 //
 
 DigitalOut myled(LED1);
-PwmOut servo(p21);
-Serial pc(USBTX, USBRX); // tx, rx
-I2C i2c(p9, p10);        // sda, scl
+//PwmOut servo(PA_0);
+
+//I2C i2c(PB_7, PB_6);        // sda, scl
+I2C i2c(PB_9, PB_8);        // sda, scl
 const int addr = 0xB0;   // define the I2C Address of camera
 
 void i2c_write2(int addr, char a, char b)
@@ -27,17 +29,6 @@
     wait(0.07); // delay 70ms    
 }
 
-void clock_init()
-{
-    // set up ~20-25MHz clock on p21
-    LPC_PWM1->TCR = (1 << 1);               // Reset counter, disable PWM
-    LPC_SC->PCLKSEL0 &= ~(0x3 << 12);  
-    LPC_SC->PCLKSEL0 |= (1 << 12);          // Set peripheral clock divider to /1, i.e. system clock
-    LPC_PWM1->MR0 = 4;                     // Match Register 0 is shared period counter for all PWM1
-    LPC_PWM1->MR6 = 2;                      // Pin 21 is PWM output 6, so Match Register 6
-    LPC_PWM1->LER |= 1;                     // Start updating at next period start
-    LPC_PWM1->TCR = (1 << 0) || (1 << 3);   // Enable counter and PWM
-}
 
 void cam_init()
 {
@@ -52,13 +43,15 @@
 }
 
 int main() {
+    Serial      pc(PA_2, PA_3);
+    confSysClock();
     char cmd[8];
     char buf[16];
     int Ix1,Iy1,Ix2,Iy2;
     int Ix3,Iy3,Ix4,Iy4;
     int s;
 
-    clock_init();
+
     
     // PC serial output    
     pc.baud(115200);
@@ -105,7 +98,21 @@
         // print the coordinate data
         //pc.printf("Ix1: %4d, Iy1: %4d\n", Ix1, Iy1 );
         //pc.printf("Ix2: %4d, Iy2: %4d\n", Ix2, Iy2 );
-        pc.printf("%d,%d,%d,%d,%d,%d,%d,%d\r\n", Ix1, Iy1, Ix2, Iy2, Ix3, Iy3, Ix4, Iy4);
+        //pc.printf("%d,%d,%d,%d,%d,%d,%d,%d\r\n", Ix1, Iy1, Ix2, Iy2, Ix3, Iy3, Ix4, Iy4);
+        if (Ix1 <1023 && Iy1<1023) {
+            //pc.printf("%d\r\n",Ix1);
+            if (Ix1 > 512) {
+                pc.printf("a");
+            } else {
+                pc.printf("d");
+            }
+            if (Iy1 > 512) {
+                pc.printf("w");
+            } else {
+                pc.printf("s");
+            }
+        }
+        
         
         wait(0.050);
     }