Skip to content

Instantly share code, notes, and snippets.

class TEA5767N {
private:
//...
byte transmission_data[5];
byte reception_data[5];
//...
public:
//...
@mroger
mroger / transm_const.cpp
Created August 23, 2014 00:48
Transmission data initialization and its call from constructor.
TEA5767N::TEA5767N() {
Wire.begin();
initializeTransmissionData();
}
void TEA5767N::initializeTransmissionData() {
transmission_data[FIRST_DATA] = 0;
transmission_data[SECOND_DATA] = 0;
transmission_data[THIRD_DATA] = 0xB0;
transmission_data[FOURTH_DATA] = 0x10;
@mroger
mroger / mute_transm.cpp
Last active August 29, 2015 14:05
Example showing how to mute changing only one bit.
void TEA5767N::mute() {
setSoundOff();
transmitData();
}
void TEA5767N::setSoundOff() {
transmission_data[FIRST_DATA] |= 0b10000000;
}
void TEA5767N::transmitData() {
@mroger
mroger / set_sound_on.cpp
Last active August 29, 2015 14:05
Snipet showing how to set the sound on.
void TEA5767N::setSoundOn() {
transmission_data[FIRST_DATA] &= 0b01111111;
}
@mroger
mroger / load_freq_status.cpp
Last active August 29, 2015 14:05
Shows how to update transmission data after status bytes are read in reception_data
void TEA5767N::loadFrequency() {
readStatus();
transmission_data[FIRST_DATA] = (transmission_data[FIRST_DATA] & 0xC0) | (reception_data[FIRST_DATA] & 0x3F);
transmission_data[SECOND_DATA] = reception_data[SECOND_DATA];
}
void TEA5767N::readStatus() {
Wire.requestFrom (TEA5767_I2C_ADDRESS, 5);
@mroger
mroger / select_frequency_hilo.cpp
Created August 23, 2014 02:37
Shows the algorithm to get que optimal Hi/Lo injection prior to a select frequency command.
void TEA5767N::selectFrequency(float frequency) {
calculateOptimalHiLoInjection(frequency);
transmitFrequency(frequency);
}
void TEA5767N::calculateOptimalHiLoInjection(float freq) {
byte signalHigh;
byte signalLow;
setHighSideLOInjection();
@mroger
mroger / set_frequency.cpp
Created August 23, 2014 02:44
Shows the calculation of the PLL information
void TEA5767N::transmitFrequency(float frequency) {
setFrequency(frequency);
transmitData();
}
void TEA5767N::setFrequency(float _frequency) {
frequency = _frequency;
unsigned int frequencyW;
if (hiInjection) {
@mroger
mroger / search_stop_level.cpp
Created August 23, 2014 13:11
Search stop level constants.
#define LOW_STOP_LEVEL 1
#define MID_STOP_LEVEL 2
#define HIGH_STOP_LEVEL 3
@mroger
mroger / set_search_up_down.cpp
Created August 23, 2014 13:39
Methods that set up and down search direction
void TEA5767N::setSearchUp() {
transmission_data[THIRD_DATA] |= 0b10000000;
}
void TEA5767N::setSearchDown() {
transmission_data[THIRD_DATA] &= 0b01111111;
}
@mroger
mroger / search_stop_levels.cpp
Created August 23, 2014 13:45
Setting search stop levels.
void TEA5767N::setSearchLowStopLevel() {
transmission_data[THIRD_DATA] &= 0b10011111;
transmission_data[THIRD_DATA] |= (LOW_STOP_LEVEL << 5);
}
void TEA5767N::setSearchMidStopLevel() {
transmission_data[THIRD_DATA] &= 0b10011111;
transmission_data[THIRD_DATA] |= (MID_STOP_LEVEL << 5);
}