![](/media/cache/profiles/09bd2862fe3035ad3223816b439045e3.50x50_q85.jpg)
BoardOrange Test Program 2013/08/13 SD -> SDHC 対応
Dependencies: EthernetNetIf FATFileSystem HTTPServer MSCFileSystem_Lib TextLCD mbed
Fork of BoardOrange_Test by
main.cpp
- Committer:
- MasudaToshio
- Date:
- 2013-08-13
- Revision:
- 1:ddba0c9b886a
- Parent:
- 0:90601632692f
File content as of revision 1:ddba0c9b886a:
#include "mbed.h" #include "string" //////////////////////////////////////// //////// general setting //////// //////////////////////////////////////// //#define USE_TextLCD_20x4 #define USE_FIXED_IP //////////////////////////////////////// //////// For TextLCD //////// //////////////////////////////////////// #include "TextLCD.h" #ifdef USE_TextLCD_20x4 //TextLCD lcd( p24, p26, p27, p28, p29, p30, TextLCD::LCD20x4 ); // rs, e, d0-d3 #else TextLCD lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3 #endif //////////////////////////////////////// //////// For SD_card //////// //////////////////////////////////////// #include "SDHCFileSystem.h" SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs //////////////////////////////////////// //////// For USB storage //////// //////////////////////////////////////// #include "MSCFileSystem.h" MSCFileSystem usb("usb"); //////////////////////////////////////// //////// For Ethernet test //////// //////////////////////////////////////// #include "EthernetNetIf.h" #include "HTTPServer.h" #ifdef USE_FIXED_IP EthernetNetIf eth( IpAddr(192,168,0,7), //IP Address IpAddr(255,255,255,0), //Network Mask IpAddr(192,168,0,1), //Gateway IpAddr(192,168,0,1) //DNS ); #else EthernetNetIf eth; #endif HTTPServer svr; LocalFileSystem web("local"); void test_TextLCD( void ); void test_file_write( char *title, char *path ); void test_httpserver( void ); int position( void ); int main() { test_TextLCD(); wait( 1 ); test_file_write( "SD card", "/sd/star_bd.txt" ); wait( 1 ); test_file_write( "USB storage", "/usb/star_bd.txt" ); wait( 1 ); test_httpserver(); } void test_TextLCD( void ) { // TextLCD test #ifdef USE_TextLCD_20x4 lcd.locate( 0, 0 ); for ( int i = 0, c = '0'; i < 20; i++, c++ ) lcd.putc( c ); for ( int i = 0, c = 'A'; i < 20; i++, c++ ) lcd.putc( c ); for ( int i = 0, c = 'a'; i < 20; i++, c++ ) lcd.putc( c ); for ( int i = 0, c = '0' - 10; i < 20; i++, c++ ) lcd.putc( c ); exit( 0 ); wait( 300 ); lcd.cls(); #endif // USE_TextLCD_20x4 lcd.locate( 0, 0 ); lcd.printf( "TextLCD: OK?" ); lcd.locate( 0, 1 ); lcd.printf( "" ); } void test_file_write( char *title, char *path ) { // SD card test lcd.locate( 0, position() ); lcd.printf( "%s: ", title ); FILE *fp = fopen( path, "w" ); if ( fp == NULL ) { lcd.printf( "error" ); error( "Could not open file for write\n" ); } fprintf( fp, "The mbed writing a file through the star board orange (%s)!", title ); fclose( fp ); lcd.printf( "OK." ); } void test_httpserver( void ) { DigitalOut led1( LED1 ); lcd.locate( 0, position() ); lcd.printf( "HTTP srv: " ); Base::add_rpc_class<DigitalOut>(); printf("Setting up...n"); EthernetErr ethErr = eth.setup(); if ( ethErr ) { lcd.printf( "error" ); error( "error @ eth.setup()\n" ); } lcd.printf("OK "); FSHandler::mount("/local", "/"); //Mount /webfs path on web root path FSHandler::mount("/sd", "/sd"); //Mount /webfs path on web sd path FSHandler::mount("/usb", "/usb"); //Mount /webfs path on web usb path svr.addHandler<FSHandler>("/"); //Default handler svr.addHandler<FSHandler>("/sd"); svr.addHandler<FSHandler>("/usb"); //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm svr.bind(80); lcd.locate( 5, position() -1 ); lcd.printf("Listening"); Timer tm; tm.start(); //Listen indefinitely while (true) { Net::poll(); if (tm.read()>.5) { led1=!led1; //Show that we are alive tm.start(); } } } int position( void ) { static int p = 0; #ifdef USE_TextLCD_20x4 return( ++p % 4 ); #else return( ++p % 2 ); #endif }