Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SDFileSystem
Revision 0:4da1d4eae011, committed 2010-09-27
- Comitter:
- plus_kamiya
- Date:
- Mon Sep 27 07:56:19 2010 +0000
- Commit message:
Changed in this revision
--- /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
--- /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
--- /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);
+ }
+}
--- /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