Update files.
This commit is contained in:
commit
3c1e42ac53
20 files changed
+2433
No files matched your search
@@ -0,0 +1,129 @@
|
||||
#pragma once
|
||||
//
|
||||
// FILE: KT0803.h
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.3.1
|
||||
// PURPOSE: Arduino Library for KT0803 and KT0803K FM transmitter
|
||||
// URL: https://github.com/RobTillaart/KT0803
|
||||
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "Wire.h"
|
||||
|
||||
|
||||
#define KT0803_LIB_VERSION (F("0.3.1"))
|
||||
|
||||
|
||||
class KT0803
|
||||
{
|
||||
public:
|
||||
KT0803(TwoWire * wire = &Wire);
|
||||
|
||||
bool begin(float freq = 90.0, bool mute = true);
|
||||
bool isConnected();
|
||||
|
||||
|
||||
// FM FREQUENCY (70-108)
|
||||
// KT0803 truncates to 0.1 MHz
|
||||
// KT0803K (L&M) truncates to 0.05 MHz
|
||||
bool setFrequency(float MHz);
|
||||
float getFrequency();
|
||||
|
||||
|
||||
// FM CHANNEL (1400-2160)
|
||||
// KT0803 only supports even channels
|
||||
// KT0803K (L&M) supports all channels
|
||||
bool setChannel(uint16_t channel);
|
||||
uint16_t getChannel();
|
||||
|
||||
|
||||
// GAIN
|
||||
bool setPGA(uint8_t pga); // 0-3 = 0..-12dB 4-7 = 0..12dB
|
||||
// 111: 12dB
|
||||
// 110: 8dB
|
||||
// 101: 4dB
|
||||
// 100: 0dB
|
||||
// 000: 0dB
|
||||
// 001: -4dB
|
||||
// 010: -8dB
|
||||
// 011: -12dB
|
||||
uint8_t getPGA();
|
||||
|
||||
bool setRFGain(uint8_t rfgain); // 0-15
|
||||
uint8_t getRFgain();
|
||||
|
||||
|
||||
// REGION SELECTION
|
||||
// first four are wrappers
|
||||
void setEurope() { setPHTCNST(true); };
|
||||
void setAustralia() { setPHTCNST(true); };
|
||||
void setUSA() { setPHTCNST(false); };
|
||||
void setJapan() { setPHTCNST(false); };
|
||||
bool setPHTCNST(bool on);
|
||||
bool getPHTCNST();
|
||||
|
||||
|
||||
// PILOT TONE ADJUST (PLTADJ)
|
||||
bool setPilotToneAdjust(uint8_t mode); // HIGH = 1 LOW = 0
|
||||
uint8_t getPilotToneAdjust();
|
||||
|
||||
|
||||
// MUTE software
|
||||
bool setMute(bool mute); // true == muted
|
||||
bool getMute(); // isMuted().
|
||||
|
||||
|
||||
// direct access to registers - debug / develop
|
||||
// to access not implemented functions.
|
||||
bool writeData(uint8_t reg, uint8_t data);
|
||||
int readData(uint8_t reg);
|
||||
|
||||
protected:
|
||||
|
||||
uint8_t _address = 0x3E; // fixed address for KT0803.
|
||||
TwoWire * _wire = NULL;
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DERIVED CLASSES
|
||||
//
|
||||
class KT0803K : public KT0803
|
||||
{
|
||||
public:
|
||||
KT0803K(TwoWire * wire = &Wire);
|
||||
|
||||
// CHANNEL
|
||||
bool setChannel(uint16_t channel);
|
||||
uint16_t getChannel();
|
||||
|
||||
// KT0803K SPECIFIC
|
||||
bool setMono();
|
||||
bool setStereo();
|
||||
bool isStereo();
|
||||
|
||||
bool setBass(uint8_t bass); // 0..3 = 0, 5, 11, 17 dB
|
||||
uint8_t getBass();
|
||||
|
||||
bool powerOK();
|
||||
bool silenceDetected();
|
||||
};
|
||||
|
||||
|
||||
class KT0803M : public KT0803K
|
||||
{
|
||||
public:
|
||||
KT0803M(TwoWire * wire = &Wire);
|
||||
};
|
||||
|
||||
|
||||
class KT0803L : public KT0803K
|
||||
{
|
||||
public:
|
||||
KT0803L(TwoWire * wire = &Wire);
|
||||
};
|
||||
|
||||
|
||||
// -- END OF FILE --
|
||||
|
||||
Reference in new issue
Block a user