Open NEOVIS78 opened 4 days ago
// LCD + SRAM using pins = ConfigurePins<CfgPinsBase::NE3, CfgPinsBase::NE4, CfgPinsBase::NOE, CfgPinsBase::NWE, CfgPinsBase::AddrA0_A19, CfgPinsBase::Data16, CfgPinsBase::NBL>; // LCD // using pins = ConfigurePins<CfgPinsBase::NE4, CfgPinsBase::NOE, CfgPinsBase::NWE, CfgPinsBase::AddrA0_A6, CfgPinsBase::Data16>; pins::Init();
using timing1 = Timing<8, 0, 8>; using exttiming1 = Timing<15, 0, 24>; using options = SRAMOptions< MemoryType::SRAM, FsmcOptions::Bank4 | FsmcOptions::DataAddressMuxDisable | FsmcOptions::MemBusWidth16 | FsmcOptions::WriteOperationEnable | FsmcOptions::ExtendedModeEnable >; using fmc1 = Fsmc<options, timing1, exttiming1>; if (fmc1::Init() != 0) { for (;;) { Led1::Toggle(); delay_ms(250); } } using timing2 = Timing<15, 0, 15>; using exttiming2 = Timing<>; using options2 = SRAMOptions< MemoryType::SRAM, FsmcOptions::Bank3 | FsmcOptions::DataAddressMuxDisable | FsmcOptions::MemBusWidth16 | FsmcOptions::WriteOperationEnable >; using fmc2 = Fsmc<options2, timing2, exttiming2>; if (fmc2::Init() != 0) { for (;;) { Led1::Toggle(); delay_ms(150); } }
It works fine. I optimize the code.
f1.zip
Something like that optimized.
// LCD + SRAM using pins = ConfigurePins<CfgPinsBase::NE3, CfgPinsBase::NE4, CfgPinsBase::NOE, CfgPinsBase::NWE, CfgPinsBase::AddrA0_A19, CfgPinsBase::Data16, CfgPinsBase::NBL>; // LCD // using pins = ConfigurePins<CfgPinsBase::NE4, CfgPinsBase::NOE, CfgPinsBase::NWE, CfgPinsBase::AddrA0_A6, CfgPinsBase::Data16>; pins::Init();