You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.6 KiB
45 lines
1.6 KiB
8 years ago
|
#ifndef _IHANDLERS_H
|
||
|
#define _IHANDLERS_H
|
||
|
|
||
|
extern volatile uint16_t pitch; // Pitch value
|
||
|
extern volatile uint16_t vol; // Volume value
|
||
|
extern volatile uint8_t vScaledVolume; // Volume byte
|
||
|
|
||
|
extern volatile uint16_t pitch_counter; // Pitch counter
|
||
|
extern volatile uint16_t pitch_counter_l; // Last value of pitch counter
|
||
|
|
||
|
extern volatile uint16_t vol_counter; // Pitch counter
|
||
|
extern volatile uint16_t vol_counter_l; // Last value of pitch counter
|
||
|
|
||
|
extern volatile uint16_t timer_overflow_counter; // counter for frequency measurement
|
||
|
|
||
|
|
||
|
extern volatile bool volumeValueAvailable; // Volume read flag
|
||
|
extern volatile bool pitchValueAvailable; // Pitch read flag
|
||
|
extern volatile bool reenableInt1; // Pitch read flag
|
||
|
|
||
|
extern volatile uint8_t vWavetableSelector;
|
||
|
extern volatile uint16_t vPointerIncrement; // Table pointer increment
|
||
|
|
||
|
inline void resetPitchFlag() { pitchValueAvailable = false; }
|
||
|
inline void resetVolFlag() { volumeValueAvailable = false; }
|
||
|
|
||
|
inline void savePitchCounter() { pitch_counter_l=pitch_counter; }
|
||
|
inline void saveVolCounter() { vol_counter_l=vol_counter; };
|
||
|
|
||
|
inline void setWavetableSampleAdvance(uint16_t val) { vPointerIncrement = val;}
|
||
|
|
||
|
inline void disableInt1() { EIMSK &= ~ (1 << INT1); }
|
||
|
inline void enableInt1() { if (reenableInt1) EIMSK |= (1 << INT1); }
|
||
|
|
||
|
void ihInitialiseTimer();
|
||
|
void ihInitialiseInterrupts();
|
||
|
void ihInitialisePitchMeasurement();
|
||
|
void ihInitialiseVolumeMeasurement();
|
||
|
void resetPitchFlag();
|
||
|
void resetVolFlag();
|
||
|
void savePitchCounter();
|
||
|
void saveVolCounter();
|
||
|
|
||
|
#endif // _IHANDLERS_H
|