Added delay function to driver

This commit is contained in:
dario
2024-04-15 22:50:13 +02:00
parent b6122a2dd8
commit ad76f8e12f
2 changed files with 18 additions and 5 deletions

View File

@@ -7,8 +7,9 @@
namespace sta
{
W25Qxx::W25Qxx(SPIDevice * device, AddressMode addrMode /* = AddressMode::_24BIT */)
W25Qxx::W25Qxx(SPIDevice * device, DelayUsFunc delay, AddressMode addrMode /* = AddressMode::_24BIT */)
: device_{device},
delay_{delay},
state_{ChipState::POWERED_DOWN},
addrMode_{addrMode}
{
@@ -18,6 +19,7 @@ namespace sta
uint8_t W25Qxx::init()
{
powerDown();
delay_(3);
if (!releasePowerDown())
{
@@ -172,7 +174,7 @@ namespace sta
}
}
uint8_t W25Qxx::busWrite(uint8_t instruction, const uint8_t * data /* = nullptr */, size_t length /* = 0 */, uint8_t * arguments /* = nullptr */, size_t arg_length /* = 0 */)
uint8_t W25Qxx::busWrite(uint8_t instruction, const uint8_t * data /* = nullptr */, size_t length /* = 0 */, uint8_t * arguments /* = nullptr */, size_t arg_length /* = 0 */, uint32_t delayCsHigh /*= 0 */)
{
device_->beginTransmission();
@@ -191,6 +193,11 @@ namespace sta
device_->transfer(data, length);
}
if (delayCsHigh != 0)
{
delay_(2);
}
device_->endTransmission();
return 1;
@@ -396,7 +403,7 @@ namespace sta
{
if (state_ == ChipState::POWERED_DOWN)
{
return busWrite(W25QXX_RELEASE_POWER_DOWN);
return busWrite(W25QXX_RELEASE_POWER_DOWN, nullptr, 0, nullptr, 0, 2);
}
return 0;