This program will run for https://www.sparkfun.com/products/760 as well as https://www.sparkfun.com/products/759 products from sparkfun

Dependencies:   mbed

Revision:
0:ad2e87d4b20e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Apr 20 20:05:35 2013 +0000
@@ -0,0 +1,225 @@
+#include "mbed.h"
+
+void draw_pattern(int pattern);
+DigitalOut myled(LED1);
+SPI spi(p5, p6, p7); // mosi, miso, sclk
+DigitalOut cs(p14);
+SPI spi1(p11, p12, p13);
+DigitalOut cs1(p18);
+
+/*volatile uint8_t arrow_green_right[] = {
+    0, 0, 0, 1, 1, 1, 0, 0,    
+    0, 0, 0, 1, 1, 1, 0, 0, 
+    0, 0, 0, 1, 1, 1, 0, 0, 
+    0, 0, 0, 1, 1, 1, 0, 0,    
+    0, 0, 0, 1, 1, 1, 0, 0, 
+    0, 1, 0, 1, 1, 1, 0, 1, 
+    0, 0, 1, 1, 1, 1, 1, 0, 
+    0, 0, 0, 1, 1, 1, 0, 0, 
+};*/
+
+volatile uint8_t arrow_red_left[] = {
+    0, 0, 0, 224, 224, 224, 0, 0,    
+    0, 0, 224, 224, 224, 224, 224, 0, 
+    0, 224, 0, 224, 224, 224, 0, 224, 
+    0, 0, 0, 224, 224, 224, 0, 0,    
+    0, 0, 0, 224, 224, 224, 0, 0, 
+    0, 0, 0, 224, 224, 224, 0, 0, 
+    0, 0, 0, 224, 224, 224, 0, 0, 
+    0, 0, 0, 224, 224, 224, 0, 0, 
+};
+
+volatile uint8_t arrow_blue_left[] = {
+    0, 0, 0, 3, 3, 3, 0, 0,    
+    0, 0, 3, 3, 3, 3, 3, 0, 
+    0, 3, 0, 3, 3, 3, 0, 3, 
+    0, 0, 0, 3, 3, 3, 0, 0,    
+    0, 0, 0, 3, 3, 3, 0, 0, 
+    0, 0, 0, 3, 3, 3, 0, 0, 
+    0, 0, 0, 3, 3, 3, 0, 0, 
+    0, 0, 0, 3, 3, 3, 0, 0, 
+};
+
+volatile uint8_t arrow_white_left[] = {
+    0, 0, 0, 95, 95, 95, 0, 0,    
+    0, 0, 95, 95, 95, 95, 95, 0, 
+    0, 95, 0, 95, 95, 95, 0, 95, 
+    0, 0, 0, 95, 95, 95, 0, 0,    
+    0, 0, 0, 95, 95, 95, 0, 0, 
+    0, 0, 0, 95, 95, 95, 0, 0, 
+    0, 0, 0, 95, 95, 95, 0, 0, 
+    0, 0, 0, 95, 95, 95, 0, 0, 
+};
+
+volatile uint8_t arrow_white_up[] = {
+    0, 0, 0, 0, 0, 0, 0, 0,    
+    0, 0, 0, 0, 0, 95, 0, 0, 
+    0, 0, 0, 0, 0, 0, 95, 0, 
+    0, 95, 95, 95, 95, 95, 95, 95,    
+    0, 95, 95, 95, 95, 95, 95, 95, 
+    95, 95, 95, 95, 95, 95, 95, 95, 
+    0, 0, 0, 0, 0, 0, 95, 0, 
+    0, 0, 0, 0, 0, 95, 0, 0, 
+};
+
+volatile uint8_t arrow_blue_up[] = {
+    0, 0, 0, 0, 0, 0, 0, 0,    
+    0, 0, 0, 0, 0, 3, 0, 0, 
+    0, 0, 0, 0, 0, 0, 3, 0, 
+    0, 3, 3, 3, 3, 3, 3, 3,    
+    0, 3, 3, 3, 3, 3, 3, 3, 
+    3, 3, 3, 3, 3, 3, 3, 3, 
+    0, 0, 0, 0, 0, 0, 3, 0, 
+    0, 0, 0, 0, 0, 3, 0, 0, 
+};
+
+volatile uint8_t arrow_white_down[] = {
+     0, 0, 0, 0, 95, 0, 0, 0,   
+     0, 0, 0, 95, 0, 0, 0, 0,
+     0, 0, 95, 95, 95, 95, 95, 95,
+     95, 95, 95, 95, 95, 95, 95, 95,    
+     95, 0, 95, 95, 95, 95, 95, 95,
+     95, 0, 0, 95, 0, 0, 0, 0,
+     0, 0, 0, 0, 95, 0, 0, 0,
+     0, 0, 0, 0, 0, 0, 0, 0,
+};
+
+volatile uint8_t arrow_blue_down[] = {
+     0, 0, 0, 0, 3, 0, 0, 0,   
+     0, 0, 0, 3, 0, 0, 0, 0,
+     0, 0, 3, 3, 3, 3, 3, 3,
+     3, 3, 3, 3, 3, 3, 3, 3,    
+     3, 0, 3, 3, 3, 3, 3, 3,
+     3, 0, 0, 3, 0, 0, 0, 0,
+     0, 0, 0, 0, 3, 0, 0, 0,
+     0, 0, 0, 0, 0, 0, 0, 0,
+};
+int main() 
+{
+    // Setup the spi for 8 bit data, high steady state clock,
+    // second edge capture, with a 100kHz clock rate
+    spi.format(8,3);
+    spi.frequency(100000);
+    /*cs = 0;
+    wait(0.5);
+    spi.write(0x25);
+    spi.write(2);
+    wait(0.5);
+    cs=1;*/
+    spi1.format(8,3);
+    spi1.frequency(100000);
+    //draw_pattern(0);
+    //draw_pattern(1);
+    draw_pattern(2);
+    draw_pattern(3);
+}
+
+
+void draw_pattern(int pattern)
+{
+    switch(pattern)
+    {
+        case 0:
+        {
+            while(1)
+              {
+              cs = 0;
+              //cs1 = 0;
+              myled = 0;
+              wait_ms(0.5); 
+              for(int k = 0; k<65;k++ )
+              {
+                spi.write(arrow_blue_down[k+1]);
+                //spi1.write(arrow_blue_up[k+1]);
+              }
+              wait_ms(0.5);
+              cs = 1;
+              //cs1 = 1;
+              }
+              
+             /* {
+              cs = 0;
+              //cs1 = 0;
+              myled = 0;
+              wait_ms(0.5); 
+              for(int k = 0; k<65;k++ )
+              {
+                spi.write(arrow_blue_up[k+1]);
+                //spi1.write(arrow_blue_up[k+1]);
+              }
+              wait_ms(0.5);
+              cs = 1;
+              //cs1 = 1;
+              }*/
+              
+              
+        }
+        case 1:
+        {
+            int i=0;
+            do
+            {
+              cs = 0;
+              //cs1 = 0;
+              myled = 1;
+              wait_ms(0.5); 
+              for(int k=0;k<65;k++)
+              {
+                spi.write(arrow_red_left[k+1]);
+                //spi1.write(image[k+1]);
+              }
+              wait_ms(0.5);
+              cs = 1;
+              myled=0;
+              wait(1);
+              i++;
+            }while(i<10);
+            break;
+        }
+        case 2:
+        {
+            int i=0;
+            do
+            {
+              cs1 = 0;
+              //cs1 = 0;
+              myled = 1;
+              wait_ms(0.5); 
+              for(int k=0;k<65;k++)
+              {
+                spi1.write(arrow_white_up[k+1]);
+                //spi1.write(image[k+1]);
+              }
+              wait_ms(0.5);
+              cs1 = 1;
+              myled=0;
+              wait(1);
+              i++;
+            }while(i<10);
+            break;
+        }
+        
+        case 3:
+        {
+            int i=0;
+            do
+            {
+              cs = 0;
+              //cs1 = 0;
+              myled = 1;
+              wait_ms(0.5); 
+              for(int k=0;k<65;k++)
+              {
+                spi.write(arrow_white_down[k+1]);
+                //spi1.write(image[k+1]);
+              }
+              wait_ms(0.5);
+              cs = 1;
+              myled=0;
+              wait(1);
+              i++;
+            }while(i<10);
+            break;
+        }
+     }
+}