Interrupts must stay enabled on Horus when pushing audio buffer from audio thread (this affected 1ms interrupt)
This commit is contained in:
@@ -808,7 +808,7 @@ void AudioQueue::wakeup()
|
||||
|
||||
// push the buffer if needed
|
||||
if (size > 0) {
|
||||
__disable_irq();
|
||||
audioDisableIrq();
|
||||
// TRACE("pushing buffer %d\n", bufferWIdx);
|
||||
bufferWIdx = nextBufferIdx(bufferWIdx);
|
||||
buffer->size = size;
|
||||
@@ -819,7 +819,7 @@ void AudioQueue::wakeup()
|
||||
}
|
||||
#endif
|
||||
audioPushBuffer(buffer);
|
||||
__enable_irq();
|
||||
audioEnableIrq();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -377,6 +377,8 @@ void usbSerialPutc(uint8_t c);
|
||||
// Audio driver
|
||||
void audioInit(void);
|
||||
void audioConsumeCurrentBuffer(void);
|
||||
#define audioDisableIrq() // interrupts must stay enabled on Horus
|
||||
#define audioEnableIrq() // interrupts must stay enabled on Horus
|
||||
#define setSampleRate(freq)
|
||||
void setScaledVolume(uint8_t volume);
|
||||
void setVolume(uint8_t volume);
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
void audioInit( void ) ;
|
||||
void audioEnd( void ) ;
|
||||
#define audioConsumeCurrentBuffer()
|
||||
#define audioDisableIrq() __disable_irq()
|
||||
#define audioEnableIrq() __enable_irq()
|
||||
|
||||
void setSampleRate( uint32_t frequency ) ;
|
||||
|
||||
|
||||
@@ -458,6 +458,8 @@ void setScaledVolume(uint8_t volume);
|
||||
void setVolume(uint8_t volume);
|
||||
int32_t getVolume(void);
|
||||
#define audioConsumeCurrentBuffer()
|
||||
#define audioDisableIrq() __disable_irq()
|
||||
#define audioEnableIrq() __enable_irq()
|
||||
|
||||
// Haptic driver
|
||||
void hapticInit(void);
|
||||
|
||||
Reference in New Issue
Block a user