/////////////////////////////////////////////////////////// // SystemFactory.cpp // Implementation of the Class SystemFactory // Created on: 29-1-2011 20:58:19 // Original author: Ueno /////////////////////////////////////////////////////////// #include "SystemFactory.h" #include "DumpMemory.h" #include "ADC.h" #include #include "EE_LIB/HAL/IO/IOPin.h" #include "EE_LIB/HAL/IntervalTimer/TimerWD.h" #include "EE_LIB/HAL/Interrupt/Priority.h" #include "EE_LIB/HAL/IO/Pod.h" #if defined(DMA_M) #include "EE_LIB/HAL/Communication/SCIUsingDMA.h" #endif #if defined(SCI_M) #include "EE_LIB/HAL/Communication/SCIUsingInterrupt.h" #endif #include "EE_LIB/OSWrapper/Task/OSTimer.h" #include "EE_LIB/OSWrapper/Task/TaskFactory.h" #include "EE_LIB/Util/Primitive/Format.h" #include "EE_LIB/Unit/Communication/Com.h" #include "EE_LIB/Util/CommandInterpreter/CommandInterpreter.h" #include "EE_LIB/Util/CommandInterpreter/ExceptionCommand.h" using APPLI::SystemFactory; SystemFactory::SystemFactory(){} SystemFactory::~SystemFactory(){} void SystemFactory::wait() { volatile int a,b,c,ii,jj; for(a=10,b=20,jj=0; jj<7; jj++) {for(ii=0;ii<5000; ii++) {c=c*a+b;}} } void SystemFactory::startup() { EE_LIB::OSWrapper::Task::OSTimer osTimer; EE_LIB::HAL::IntervalTimer::TimerWD timer(EE_LIB::HAL::IntervalTimer::TimerWD::Timer0,500000UL,EE_LIB::HAL::Interrupt::PRIORITY_LOW,&osTimer); // 500uS周期 EE_LIB::HAL::Communication::SCI *sci; EE_LIB::HAL::IO::IOPin pin(EE_LIB::HAL::IO::IOPORT8,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); //=============== SCIの生成 ================ { EE_LIB::HAL::Communication::SCI::CommunicationParam cp; EE_LIB::HAL::Communication::SCI::SCIId id=EE_LIB::HAL::Communication::SCI::SCI1; cp.cm=EE_LIB::HAL::Communication::SCI::SYNCHRONUS_TOTNOAL; cp.bps=EE_LIB::HAL::Communication::SCI::BPS_57600; cp.dl=EE_LIB::HAL::Communication::SCI::DL_8BIT; cp.sb=EE_LIB::HAL::Communication::SCI::SB1; cp.parity=EE_LIB::HAL::Communication::SCI::P_NONE; cp.mp=EE_LIB::HAL::Communication::SCI::MP_DISABLE; sci=new EE_LIB::HAL::Communication::SCIUsingInterrupt(id,cp); } // ============= 通信ポートの生成 ================== EE_LIB::Unit::Communication::Com com(sci,&osTimer); // ============= コマンドインタラプタの生成 ================== EE_LIB::Util::CommandInterpreter::ExceptionCommand ec; EE_LIB::Util::CommandInterpreter::CommandInterpreter ci(&com,&ec,"EE2368>","*** EE_Type_S 2368 Checker V1.0 ***"); DumpMemory dumpMemory; ci.addCommand(&dumpMemory); EE_LIB::OSWrapper::Task::TaskFactory::createTask(&ci,2,EE_LIB::OSWrapper::Task::Task::TP_Middle,&osTimer); // 2ms周期のタスク // ============= IOポートのテスト ================== EE_LIB::HAL::IO::Pod in; EE_LIB::HAL::IO::Pod out; bool bNG=false; bool bNG_Not_Reset=false; unsigned short i; unsigned short value; // Port1・Port2のテスト EE_LIB::HAL::IO::IOPin p20(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p21(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p22(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p23(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p24(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p25(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p26(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p27(EE_LIB::HAL::IO::IOPORT2,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p10(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p11(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p12(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p13(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p14(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p15(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p16(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p17(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&p20); in.add(&p21); in.add(&p22); in.add(&p23); in.add(&p24); in.add(&p25); in.add(&p26); in.add(&p27); out.add(&p10); out.add(&p11); out.add(&p12); out.add(&p13); out.add(&p14); out.add(&p15); out.add(&p16); out.add(&p17); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("Port1 to Port2 NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("Port1 to Port2 NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("Port1 to Port2 OK !"); com.send(&format,true); } // Port3・Port5のテスト bNG=false; EE_LIB::HAL::IO::IOPin p30(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p32(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p34(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p35(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p50(EE_LIB::HAL::IO::IOPORT5,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p51(EE_LIB::HAL::IO::IOPORT5,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p52(EE_LIB::HAL::IO::IOPORT5,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p53(EE_LIB::HAL::IO::IOPORT5,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&p35); in.add(&p34); in.add(&p32); in.add(&p30); out.add(&p50); out.add(&p51); out.add(&p52); out.add(&p53); for(i=0; i<16; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("Port5 to Port3 NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<16; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("Port5 to Port3 NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("Port5 to Port3 OK !"); com.send(&format,true); } // Port4・PortAのテスト bNG=false; EE_LIB::HAL::IO::IOPin pa0(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa1(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa2(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa3(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa4(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa5(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa6(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pa7(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p40(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p41(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p42(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p43(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p44(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p45(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p46(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p47(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); in.clear(); out.clear(); in.add(&p40); in.add(&p41); in.add(&p42); in.add(&p43); in.add(&p44); in.add(&p45); in.add(&p46); in.add(&p47); out.add(&pa0); out.add(&pa1); out.add(&pa2); out.add(&pa3); out.add(&pa4); out.add(&pa5); out.add(&pa6); out.add(&pa7); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortA to Port4 NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortA to Port4 NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortA to Port4 OK !"); com.send(&format,true); } // Port8,Port9,PF7のテスト bNG=false; EE_LIB::HAL::IO::IOPin p81(EE_LIB::HAL::IO::IOPORT8,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p83(EE_LIB::HAL::IO::IOPORT8,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p94(EE_LIB::HAL::IO::IOPORT9,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p95(EE_LIB::HAL::IO::IOPORT9,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pf7(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); in.clear(); out.clear(); out.add(&p81); out.add(&p83); in.add(&p95); in.add(&p94); in.add(&pf7); for(i=0; i<4; i++) { out.set(i); value=in.get(); if(value != (i+ (i&1)*4) ) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("Port8,Port9,PF7 NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<4; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("Port8,Port9,PF7 NG ! out=%02x in=%02x",i+ (i&1)*4,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("Port8,Port9,PF7 OK !"); com.send(&format,true); } // PortB・PortCのテスト bNG=false; EE_LIB::HAL::IO::IOPin pc0(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc1(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc2(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc3(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc4(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc5(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc6(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc7(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb0(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb1(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb2(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb3(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb4(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb5(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb6(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pb7(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&pc0); in.add(&pc1); in.add(&pc2); in.add(&pc3); in.add(&pc4); in.add(&pc5); in.add(&pc6); in.add(&pc7); out.add(&pb0); out.add(&pb1); out.add(&pb2); out.add(&pb3); out.add(&pb4); out.add(&pb5); out.add(&pb6); out.add(&pb7); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortB to PortC NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortB to PortC NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortB to PortC OK !"); com.send(&format,true); } // PortD・PortEのテスト bNG=false; EE_LIB::HAL::IO::IOPin pe0(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe1(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe2(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe3(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe4(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe5(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe6(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe7(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd0(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd1(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd2(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd3(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd4(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd5(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd6(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pd7(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&pe0); in.add(&pe1); in.add(&pe2); in.add(&pe3); in.add(&pe4); in.add(&pe5); in.add(&pe6); in.add(&pe7); out.add(&pd0); out.add(&pd1); out.add(&pd2); out.add(&pd3); out.add(&pd4); out.add(&pd5); out.add(&pd6); out.add(&pd7); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortD to PortE NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortD to PortE NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortD to PortE OK !"); com.send(&format,true); } // PortF・PortGのテスト bNG=false; EE_LIB::HAL::IO::IOPin pg0(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg1(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg2(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg3(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg4(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg5(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg6(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pf0(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf1(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf2(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf3(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf4(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf5(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf6(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&pg0); in.add(&pg1); in.add(&pg2); in.add(&pg3); in.add(&pg4); in.add(&pg5); in.add(&pg6); out.add(&pf0); out.add(&pf1); out.add(&pf2); out.add(&pf3); out.add(&pf4); out.add(&pf5); out.add(&pf6); for(i=0; i<128; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortF to PortG NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<128; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortF to PortG NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortF to PortG OK !"); com.send(&format,true); } // ADCのテスト EE_LIB::HAL::IO::ADC adc; ADC adcTask(&adc); EE_LIB::OSWrapper::Task::TaskFactory::createTask(&adcTask,10,EE_LIB::OSWrapper::Task::Task::TP_Middle,&osTimer); // 10ms周期のタスク out.clear(); out.add(&pa0); out.add(&pa1); out.add(&pa2); out.add(&pa3); out.add(&pa4); out.add(&pa5); out.add(&pa6); out.add(&pa7); bNG=false; for(i=0; i<30; i++) { unsigned short j; unsigned short ch[8]; pin.set(0); out.set(255); wait(); for(j=0; j<8; j++) { ch[j]=adc.get(j); if(ch[j]<1000) {bNG=true;}} if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("ADC NG !! 1023 : 0=%-4d 1=%-4d 2=%-4d 3=%-4d 4=%-4d 5=%-4d 6=%-4d 7=%-4d" ,ch[0],ch[1],ch[2],ch[3],ch[4],ch[5],ch[6],ch[7]); com.send(&format,true); break; } pin.set(1); out.set(0); wait(); for(j=0; j<8; j++) { ch[j]=adc.get(j); if(ch[j]>10) {bNG=true;}} if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("ADC NG !! 0000 : 0=%-4d 1=%-4d 2=%-4d 3=%-4d 4=%-4d 5=%-4d 6=%-4d 7=%-4d" ,ch[0],ch[1],ch[2],ch[3],ch[4],ch[5],ch[6],ch[7]); com.send(&format,true); break; } } if(bNG==false) { EE_LIB::Util::Primitive::Format format("ADC test OK !"); com.send(&format,true); } if(bNG_Not_Reset==false) { EE_LIB::Util::Primitive::Format format("All Test Passed !"); com.send(&format,true); } while(-1) { pin.set(0); wait(); pin.set(1); wait(); } }