Dependencies:   mbed SDFileSystem

Files at this revision

API Documentation at this revision

Comitter:
plus_kamiya
Date:
Mon Sep 27 07:56:19 2010 +0000
Commit message:

Changed in this revision

FATFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.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
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 4da1d4eae011 FATFileSystem.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FATFileSystem.lib	Mon Sep 27 07:56:19 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_unsupported/code/fatfilesystem/
\ No newline at end of file
diff -r 000000000000 -r 4da1d4eae011 SDFileSystem.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Mon Sep 27 07:56:19 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/SDFileSystem/#b1ddfc9a9b25
diff -r 000000000000 -r 4da1d4eae011 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Sep 27 07:56:19 2010 +0000
@@ -0,0 +1,224 @@
+// Example to set up an interrupt based on the LPC TIMER0 match register, sford
+ 
+#include "mbed.h"
+#include "SDFileSystem.h"
+
+#define VERSION "LED Master version 0.0"
+
+void timer0_init(void);
+void timer1_init(void);
+void flipT0();
+void flipT1();
+
+#define FOLDER "/sd/"
+//#define FOLDER "/local/"
+#define STX 0x02
+#define ETX 0x03
+#define CR 0x0A
+#define LF 0x0D
+#define I2C_Hz 2500000      //I2C CLOCK
+#define SPI_Hz 2500000      //SPI CLOCK
+#define BAUD_RATE 19200     //RS-232C BaudRate
+#define NAME_SIZE 20        //FileName Length
+#define FILES_MAX 20        //FileList MAX
+#define DATA_SIZE 12        //I2C DataSize
+#define CMD_SIZE 3          //I2C CommandSize
+#define PMT_SIZE 4          //I2C ParametersSize
+#define W_DOT 256           //Display W_DotSize
+#define H_DOT 32            //Display H_DotSize
+#define SP_DOT 0            //Display SP_DotSize
+#define RX_SIZE 2048        //Comm ReceiveSize
+
+#define FILEHEADERSIZE 14   //Bitmap FileHeaderSize
+#define INFOHEADERSIZE 40   //Bitmap InfoHeaderSize
+#define HEADERSIZE (FILEHEADERSIZE+INFOHEADERSIZE)  //BitmapHeaderSize
+
+InterruptIn inp1(p21);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+DigitalOut out1(p22);
+DigitalOut out2(p23);
+
+Serial uart(p13, p14); // tx, rx
+SPI spi(p5, p6, p7); // mosi, miso, sck
+I2C i2c0(p9, p10); // sda, scl
+I2C i2c1(p28, p27); // sda, scl
+SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name
+LocalFileSystem local("local");
+
+static unsigned short Luminance0[DATA_SIZE] = {0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+static unsigned short Luminance1[DATA_SIZE] = {0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00};
+static unsigned short Luminance2[DATA_SIZE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF};
+static unsigned short Luminance3[DATA_SIZE] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00};
+static unsigned short Luminance4[DATA_SIZE] = {0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF};
+static unsigned short Luminance5[DATA_SIZE] = {0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+static unsigned short Luminance6[DATA_SIZE] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+static unsigned short Luminance7[DATA_SIZE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+static unsigned short tflag;
+static int offlineCnt;
+static int offlineColor;
+static int offlineChange;           //Display Offline
+static unsigned short offlineMode;
+static unsigned short imageflag;
+static int rxCnt;                   //Receive Count
+static int rxFlag;                  //1:Data Receive Complete 2:Data Transfer 3:Disylay Start
+static int rxDataFlag;              //RGB Receive Flag
+static int rxTime;                  //Receive TimeOver
+static int cmd;                     //1:Still Image 2:Left Flow 3:Right Flow 4:Down Flow 5:Up Flow
+static int imageNo;
+static int fileCnt;                 //FileList Count
+static char files[FILES_MAX][NAME_SIZE];
+static unsigned char rxData;
+static unsigned char rxCmd[CMD_SIZE+1];
+static unsigned char rxPmt[PMT_SIZE];
+static unsigned char rxStrR[RX_SIZE];
+static unsigned char rxStrG[RX_SIZE];
+static unsigned char rxStrB[RX_SIZE];
+static unsigned long rxLEDR[W_DOT];
+static unsigned long rxLEDG[W_DOT];
+static unsigned long rxLEDB[W_DOT];
+static unsigned long imgLEDR[W_DOT];
+static unsigned long imgLEDG[W_DOT];
+static unsigned long imgLEDB[W_DOT];
+static unsigned short i2cdata[DATA_SIZE];
+static unsigned short i2cdata2[DATA_SIZE];
+static int rotIndex;                //Rotational Position
+static int rotCntX;                 //Rotational CountX(WScroll)
+static int rotCntY;                 //Rotational CountY(HScroll)
+static int rotY;                    //Rotational YPosition
+static int rotSpeed;                //Rotational Flow Speed
+static int rotStop;                 //Rotational Stop Count
+static unsigned long nowCount;      //100usec Count
+
+void timer0_init(void)
+{ 
+    // power up TIMER0 (PCONP[1])
+    LPC_SC->PCONP |= 1 << 1; 
+
+    // reset and set TIMER0 to timer mode
+    LPC_TIM0->TCR = 0x2;  
+    LPC_TIM0->CTCR = 0x0; 
+    
+    // set no prescaler
+    LPC_TIM0->PR = 0;
+
+    // calculate period (1 interrupt every second)
+    uint32_t period = SystemCoreClock / 4; 
+
+    // set match register and enable interrupt    
+    LPC_TIM0->MR0 = period;
+    LPC_TIM0->MCR |= 1 << 0;    // interrupt on match
+    LPC_TIM0->MCR |= 1 << 1;    // reset on match
+
+    // enable the vector in the interrupt controller
+    NVIC_SetVector(TIMER0_IRQn, (uint32_t)&flipT0);
+    NVIC_EnableIRQ(TIMER0_IRQn);
+
+    // start the timer
+    LPC_TIM0->TCR = 1;
+}
+
+void timer1_init(void)
+{ 
+    // power up TIMER1 (PCONP[1])
+    LPC_SC->PCONP |= 1 << 0x16; 
+
+    // reset and set TIMER1 to timer mode
+    LPC_TIM1->TCR = 0x2;  
+    LPC_TIM1->CTCR = 0x0; 
+    
+    // set no prescaler
+    LPC_TIM1->PR = 0;
+
+    // calculate period (1 interrupt every second)
+    uint32_t period = SystemCoreClock / 4; 
+
+    // set match register and enable interrupt    
+    LPC_TIM1->MR0 = period / 2;
+    LPC_TIM1->MCR |= 1 << 0;    // interrupt on match
+    LPC_TIM1->MCR |= 1 << 1;    // reset on match
+
+    // enable the vector in the interrupt controller
+    NVIC_SetVector(TIMER1_IRQn, (uint32_t)&flipT1);
+    NVIC_EnableIRQ(TIMER1_IRQn);
+
+    // start the timer
+    LPC_TIM1->TCR = 1;
+}
+
+//**********************************************************************
+//Timer0 Init
+//**********************************************************************
+void flipT0()
+{
+    // do something!
+    led1 = !led1;
+    
+    // clear the TIMER0 interrupt
+    LPC_TIM0->IR = 1;
+}
+
+//**********************************************************************
+//Timer0 Init
+//**********************************************************************
+void flipT1()
+{
+    // do something!
+    led2 = !led2;
+    
+    // clear the TIMER2 interrupt
+    LPC_TIM1->IR = 1;
+}
+
+int main()
+{
+    volatile int i;
+    volatile int j;
+    int res;
+    unsigned long rdata;
+    unsigned long gdata;
+    unsigned long bdata;
+    char tmp[255];
+    char filename[99];
+
+    printf("[%s]\r\n", VERSION);
+
+    nowCount = 0;
+    fileCnt = 0;
+    rxCnt = -1;
+    rxFlag = 0;
+    rxDataFlag = 0;
+    tflag = 1;
+    cmd = 0x00;
+    rotIndex = 0;
+    rotCntX = 0;
+    rotCntY = 0;
+    rotY = 0;
+    rotSpeed = 40;
+    rotStop = 1;
+    offlineCnt = 0;
+    offlineColor = 0;
+    for (i = 0; i < RX_SIZE; i++) {
+        rxStrR[i] = 0;
+        rxStrG[i] = 0;
+        rxStrB[i] = 0;
+    }
+    for (i = 0; i < W_DOT; i++) {
+        rxLEDR[i] = 0;
+        rxLEDG[i] = 0;
+        rxLEDB[i] = 0;
+    }
+
+    timer0_init();
+    timer1_init();
+    // hang around!   
+    while(1) {
+        led4 = 1;
+        wait(0.2);
+        led4 = 0;
+        wait(0.2);
+    }
+}
diff -r 000000000000 -r 4da1d4eae011 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Sep 27 07:56:19 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0