Interrupts must stay enabled on Horus when pushing audio buffer from audio thread (this affected 1ms interrupt)

This commit is contained in:
Damjan Adamic
2016-09-11 21:53:45 +02:00
parent 0076dd99e0
commit cb08d37369
4 changed files with 8 additions and 2 deletions
+2 -2
View File
@@ -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();
}
}
}
+2
View File
@@ -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);
+2
View File
@@ -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 ) ;
+2
View File
@@ -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);