![]() |
PU2CLR RDA5807 Arduino Library 1.1.8
Arduino Library for RDA5807 Devices - By Ricardo Lima Caratti
|
Functions | |
void | RDA5807::setFrequencyToBeginBand () |
Tunes the receiver at the first channel/frequency of the current band. | |
void | RDA5807::setFrequencyToEndBand () |
Tunes the receiver at the last channel/frequency of the current band. | |
uint16_t | RDA5807::getMaximunFrequencyOfTheBand () |
gets the maximun frequency of the current band | |
uint16_t | RDA5807::getMinimumFrequencyOfTheBand () |
gets the minimum frequency of the current band | |
uint8_t | RDA5807::getBand () |
Returns the current band. | |
uint8_t | RDA5807::getSpace () |
Returns the current Band Space. | |
bool | RDA5807::isFmTrue () |
Returns true if the current channel is a station. | |
bool | RDA5807::isFmReady () |
Returns true if the FM is ready. | |
void | RDA5807::setSoftBlendEnable (bool value) |
Sets Soft Blend. | |
void | RDA5807::setAFC (bool value) |
Sets AFC true or false. | |
void | RDA5807::setChannel (uint16_t channel) |
Sets the channel. | |
void | RDA5807::setFrequency (uint16_t frequency) |
Sets the frequency. | |
void | RDA5807::setDirectFrequency (uint16_t frequency) |
Sets the frequency using the reg08 (direct frequency) | |
void | RDA5807::setFrequencyMode (uint8_t value) |
Sets the frequency mode. If 1, then freq setting changed. | |
void | RDA5807::setFrequencyUp () |
Increments the current frequency. | |
void | RDA5807::setFrequencyDown () |
Decrements the current frequency. | |
uint16_t | RDA5807::getFrequency () |
Gets the current frequency. | |
uint16_t | RDA5807::getRealChannel () |
Gets the current channel stored in 0x0A status register. | |
uint16_t | RDA5807::getRealFrequency () |
Gets the current frequency bases on the current channel. | |
void | RDA5807::seek (uint8_t seek_mode, uint8_t direction) |
Seek function. | |
void | RDA5807::seek (uint8_t seek_mode, uint8_t direction, void(*showFunc)()) |
Seek function. | |
void | RDA5807::setSeekThreshold (uint8_t value) |
Sets RSSI Seek Threshold. | |
void | RDA5807::setBand (uint8_t band=0) |
Sets the FM band. See table below. | |
void | RDA5807::setBand3_50_65_Mode (uint8_t band3Mode) |
Sets the band 3 mode: 50 to 65 MHZ or 65 to 76 MHz. | |
uint8_t | RDA5807::getBand3Status () |
Gets the status of the Band3. | |
void | RDA5807::setSpace (uint8_t space=0) |
Sets the FM channel space. | |
void | RDA5807::setStep (uint8_t step=100) |
Sets the FM Step;. | |
void | RDA5807::setFmDeemphasis (uint8_t de) |
Sets De-emphasis. | |
|
inline |
Tunes the receiver at the first channel/frequency of the current band.
If the current band is 0, the lowest frequency is 87Mhz (8700)
|
inline |
Tunes the receiver at the last channel/frequency of the current band.
If the current band is 0, the highest frequency is 108MHz (10800)
|
inline |
gets the maximun frequency of the current band
|
inline |
gets the minimum frequency of the current band
|
inline |
|
inline |
|
inline |
|
inline |
void RDA5807::setSoftBlendEnable | ( | bool | value | ) |
void RDA5807::setAFC | ( | bool | value | ) |
void RDA5807::setChannel | ( | uint16_t | channel | ) |
Sets the channel.
This method tunes the rteceiver in a given channel.
The channel can be calculated by using the follow formula
channel = (desired frequency - start band frequency) / space channel in use / 10.0);
channel |
Definition at line 338 of file RDA5807.cpp.
References RDA5807::waitAndFinishTune().
void RDA5807::setFrequency | ( | uint16_t | frequency | ) |
Sets the frequency.
Tunes the receiver at a given frequency. Example:
frequency | - an integer with the frequency value (Example: 7600=76MHz, 10790 = 107,90MHz) |
Definition at line 372 of file RDA5807.cpp.
void RDA5807::setDirectFrequency | ( | uint16_t | frequency | ) |
Sets the frequency using the reg08 (direct frequency)
valid when frequency mode is 1
frequency |
Definition at line 385 of file RDA5807.cpp.
void RDA5807::setFrequencyMode | ( | uint8_t | value | ) |
Sets the frequency mode. If 1, then freq setting changed.
value | ( default = 0 or 1) |
Definition at line 397 of file RDA5807.cpp.
void RDA5807::setFrequencyUp | ( | ) |
Increments the current frequency.
The increment uses the band space as step. See array: uint16_t fmSpace[4] = {100/10, 200/10, 50/10, 25/10};
Definition at line 424 of file RDA5807.cpp.
void RDA5807::setFrequencyDown | ( | ) |
Decrements the current frequency.
The drecrement uses the band space as step. See array: uint16_t fmSpace[4] = {20, 10, 5, 1};
Definition at line 439 of file RDA5807.cpp.
uint16_t RDA5807::getFrequency | ( | ) |
uint16_t RDA5807::getRealChannel | ( | ) |
Gets the current channel stored in 0x0A status register.
Definition at line 468 of file RDA5807.cpp.
uint16_t RDA5807::getRealFrequency | ( | ) |
Gets the current frequency bases on the current channel.
The current channel is stored in the 0x0A register. This value is updated after a tune or seek operation.
The current frequency can be calculated by the formula below
Band | Formula |
---|---|
0 | Frequency = Channel Spacing (kHz) x READCHAN[9:0]+ 87.0 MHz |
1 or 2 | Frequency = Channel Spacing (kHz) x READCHAN[9:0]+ 76.0 MHz |
3 | Frequency = Channel Spacing (kHz) x READCHAN[9:0]+ 65.0 MHz |
Definition at line 490 of file RDA5807.cpp.
void RDA5807::seek | ( | uint8_t | seek_mode, |
uint8_t | direction | ||
) |
Seek function.
look for next or previous station available. Example:
seek_mode | if 0, wrap at the upper or lower band limit and continue seeking; 1 = stop seeking at the upper or lower band limit |
direction | if 0, seek down; if 1, seek up. |
Definition at line 518 of file RDA5807.cpp.
void RDA5807::seek | ( | uint8_t | seek_mode, |
uint8_t | direction, | ||
void(*)() | showFunc | ||
) |
Seek function.
Seeks a station up or down.
Seek up or down a station and call a function defined by the user to show the frequency during the seek process.
Seek begins at the current channel, and goes in the direction specified with the SEEKUP bit. Seek operation stops when a channel is qualified as valid according to the seek parameters, the entire band has been searched (SKMODE = 0), or the upper or lower band limit has been reached (SKMODE = 1).
The STC bit is set high when the seek operation completes and/or the SF/BL bit is set high if the seek operation was unable to find a channel qualified as valid according to the seek parameters. The STC and SF/BL bits must be set low by setting the SEEK bit low before the next seek or tune may begin.
The SEEK bit is set low and the STC bit is set high when the seek operation completes.
It is important to say you have to implement a show frequency function. This function have to get the frequency via getFrequency function.
Example:
seek_mode | Seek Mode; 0 = Wrap at the upper or lower band limit and continue seeking (default); 1 = Stop seeking at the upper or lower band limit. |
direction | Seek Direction; 0 = Seek down (default); 1 = Seek up. |
showFunc | function that you have to implement to show the frequency during the seeking process. Set NULL if you do not want to show the progress. |
Definition at line 559 of file RDA5807.cpp.
References RDA5807::waitAndFinishTune().
void RDA5807::setSeekThreshold | ( | uint8_t | value | ) |
void RDA5807::setBand | ( | uint8_t | band = 0 | ) |
Sets the FM band. See table below.
FM band table
Value | Decimal | Description |
---|---|---|
00 | 0 | 87–108 MHz (US/Europe) |
01 | 1 | 76–91 MHz (Japan) |
10 | 2 | 76–108 MHz (world wide) |
11 | 3 | 65 –76 MHz (East Europe) or 50-65MHz (see bit 9 of gegister 0x07) |
if you are using the band 3 with 50 to 65 MHz setup, the setFrequencyUp, setFrequencyDown, setFrequencyToBeginBand and setFrequencyToEndBand
will not work properly. In this case, you have control the limits of the band by yourself.
band | FM band index. See table above. |
Definition at line 621 of file RDA5807.cpp.
void RDA5807::setBand3_50_65_Mode | ( | uint8_t | band3Mode | ) |
Sets the band 3 mode: 50 to 65 MHZ or 65 to 76 MHz.
It works only for Band 3. So if you are on band 3 (default 65 – 76 MHz East Europe) you can change the range to 50-65MHz.
ATTENTION: The functions setFrequencyToBeginBand and setFrequencyToEnBand do not work for 50-65MHz setup. You have to control it by yourself.
ATTENTION: Also, you must control the band limits from 50 to 65 MHz. The setFrequencyUp and setFrequencyDown do not work properly.
band3Mode | if 1, 65 – 76 MHz; if 0, 50-65MHz |
Definition at line 635 of file RDA5807.cpp.
uint8_t RDA5807::getBand3Status | ( | ) |
Gets the status of the Band3.
Gets the status of the Band3
Definition at line 649 of file RDA5807.cpp.
void RDA5807::setSpace | ( | uint8_t | space = 0 | ) |
Sets the FM channel space.
You can define the frequency step in kHz (see table below)
Channel space table
Value | Decimal | Description |
---|---|---|
00 | 0 | 100KHz |
01 | 1 | 200KHz |
10 | 2 | 50KHz |
11 | 3 | 25KHz |
space | FM channel space. See table above. |
Definition at line 691 of file RDA5807.cpp.
void RDA5807::setStep | ( | uint8_t | step = 100 | ) |
Sets the FM Step;.
step | 25, 50, 100 or 200 kHz |
Definition at line 705 of file RDA5807.cpp.
void RDA5807::setFmDeemphasis | ( | uint8_t | de | ) |
Sets De-emphasis.
Default is 75 μs (used in USA); 50 μs is used in Europe, Australia, Japan.
de | 0 = 75 μs; 1 = 50 μs |
Definition at line 746 of file RDA5807.cpp.