提交 8e948096 编写于 作者: M me-no-dev

Rename sd->sigmadelta in HAL

Change is to not be mistaken with SD Card
上级 5977877d
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
## Development Status ## Development Status
Most of the framework is implemented. Most noticable is the missing analogWrite. While analogWrite is on it's way, there are a few other options that you can use: Most of the framework is implemented. Most noticable is the missing analogWrite. While analogWrite is on it's way, there are a few other options that you can use:
- 16 channels [LEDC](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-ledc.h) which is PWM - 16 channels [LEDC](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-ledc.h) which is PWM
- 8 channels [SigmaDelta](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-sd.h) which uses SigmaDelta modulation - 8 channels [SigmaDelta](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-sigmadelta.h) which uses SigmaDelta modulation
- 2 channels [DAC](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-dac.h) which gives real analog output - 2 channels [DAC](https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-dac.h) which gives real analog output
## Installation Instructions ## Installation Instructions
......
...@@ -31,53 +31,53 @@ ...@@ -31,53 +31,53 @@
xSemaphoreHandle _sd_sys_lock; xSemaphoreHandle _sd_sys_lock;
#endif #endif
uint32_t sdSetup(uint8_t channel, uint32_t freq) //chan 0-7 freq 1220-312500 uint32_t sigmaDeltaSetup(uint8_t channel, uint32_t freq) //chan 0-7 freq 1220-312500
{ {
if(channel > 7) { if(channel > 7) {
return 0; return 0;
} }
#if !CONFIG_DISABLE_HAL_LOCKS
static bool tHasStarted = false; static bool tHasStarted = false;
if(!tHasStarted) { if(!tHasStarted) {
tHasStarted = true; tHasStarted = true;
#if !CONFIG_DISABLE_HAL_LOCKS
_sd_sys_lock = xSemaphoreCreateMutex(); _sd_sys_lock = xSemaphoreCreateMutex();
#endif
} }
gpio_sd_dev_t * gpio_sd_dev = (volatile gpio_sd_dev_t *)(DR_REG_GPIO_SD_BASE); #endif
uint32_t prescale = (10000000/(freq*32)) - 1; uint32_t prescale = (10000000/(freq*32)) - 1;
if(prescale > 0xFF) { if(prescale > 0xFF) {
prescale = 0xFF; prescale = 0xFF;
} }
SD_MUTEX_LOCK(); SD_MUTEX_LOCK();
gpio_sd_dev->channel[channel].prescale = prescale; SIGMADELTA.channel[channel].prescale = prescale;
gpio_sd_dev->cg.clk_en = 0; SIGMADELTA.cg.clk_en = 0;
gpio_sd_dev->cg.clk_en = 1; SIGMADELTA.cg.clk_en = 1;
SD_MUTEX_UNLOCK(); SD_MUTEX_UNLOCK();
return 10000000/((prescale + 1) * 32); return 10000000/((prescale + 1) * 32);
} }
void sdWrite(uint8_t channel, uint8_t duty) //chan 0-7 duty 8 bit void sigmaDeltaWrite(uint8_t channel, uint8_t duty) //chan 0-7 duty 8 bit
{ {
if(channel > 7) { if(channel > 7) {
return; return;
} }
duty += 128; duty += 128;
gpio_sd_dev_t * gpio_sd_dev = (volatile gpio_sd_dev_t *)(DR_REG_GPIO_SD_BASE);
SD_MUTEX_LOCK(); SD_MUTEX_LOCK();
gpio_sd_dev->channel[channel].duty = duty; SIGMADELTA.channel[channel].duty = duty;
SD_MUTEX_UNLOCK(); SD_MUTEX_UNLOCK();
} }
uint8_t sdRead(uint8_t channel) //chan 0-7 uint8_t sigmaDeltaRead(uint8_t channel) //chan 0-7
{ {
if(channel > 7) { if(channel > 7) {
return 0; return 0;
} }
gpio_sd_dev_t * gpio_sd_dev = (volatile gpio_sd_dev_t *)(DR_REG_GPIO_SD_BASE); SD_MUTEX_LOCK();
return gpio_sd_dev->channel[channel].duty - 128; uint8_t duty = SIGMADELTA.channel[channel].duty - 128;
SD_MUTEX_UNLOCK();
return duty;
} }
void sdAttachPin(uint8_t pin, uint8_t channel) //channel 0-7 void sigmaDeltaAttachPin(uint8_t pin, uint8_t channel) //channel 0-7
{ {
if(channel > 7) { if(channel > 7) {
return; return;
...@@ -86,7 +86,7 @@ void sdAttachPin(uint8_t pin, uint8_t channel) //channel 0-7 ...@@ -86,7 +86,7 @@ void sdAttachPin(uint8_t pin, uint8_t channel) //channel 0-7
pinMatrixOutAttach(pin, GPIO_SD0_OUT_IDX + channel, false, false); pinMatrixOutAttach(pin, GPIO_SD0_OUT_IDX + channel, false, false);
} }
void sdDetachPin(uint8_t pin) void sigmaDeltaDetachPin(uint8_t pin)
{ {
pinMatrixOutDetach(pin, false, false); pinMatrixOutDetach(pin, false, false);
} }
...@@ -56,7 +56,7 @@ void vPortYield( void ); ...@@ -56,7 +56,7 @@ void vPortYield( void );
#include "esp32-hal-spi.h" #include "esp32-hal-spi.h"
#include "esp32-hal-i2c.h" #include "esp32-hal-i2c.h"
#include "esp32-hal-ledc.h" #include "esp32-hal-ledc.h"
#include "esp32-hal-sd.h" #include "esp32-hal-sigmadelta.h"
#include "esp32-hal-timer.h" #include "esp32-hal-timer.h"
#include "esp_system.h" #include "esp_system.h"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册