fmrds 2
This commit is contained in:
32
radio.c
32
radio.c
@@ -70,10 +70,10 @@ uint8_t radio_get_status(void) {
|
|||||||
|
|
||||||
#define RST_PIN PB4
|
#define RST_PIN PB4
|
||||||
|
|
||||||
void radio_wait_cts(void) {
|
|
||||||
|
uint8_t radio_read_cts(void) {
|
||||||
uint8_t cts = 0;
|
uint8_t cts = 0;
|
||||||
uint8_t rcount = 17;
|
uint8_t rcount = 20;
|
||||||
while ((cts &= BIT(STATUS_CTS_BIT)) == 0) {
|
|
||||||
i2c_start();
|
i2c_start();
|
||||||
i2c_write(RX_I2CADDR);
|
i2c_write(RX_I2CADDR);
|
||||||
i2c_write(CMD_GET_INTSTAT);
|
i2c_write(CMD_GET_INTSTAT);
|
||||||
@@ -85,7 +85,16 @@ void radio_wait_cts(void) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
i2c_read_nack();
|
||||||
i2c_stop();
|
i2c_stop();
|
||||||
|
return cts;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void radio_wait_cts(void) {
|
||||||
|
uint8_t cts = 0;
|
||||||
|
while ((cts &= BIT(STATUS_CTS_BIT)) == 0) {
|
||||||
|
cts = radio_read_cts();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,7 +109,6 @@ void radio_powerup_fmrds(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void radio_set_fm_freq(uint16_t freq) {
|
void radio_set_fm_freq(uint16_t freq) {
|
||||||
//uint8_t cts = 0x00;
|
|
||||||
|
|
||||||
i2c_start();
|
i2c_start();
|
||||||
i2c_write(RX_I2CADDR);
|
i2c_write(RX_I2CADDR);
|
||||||
@@ -111,9 +119,12 @@ void radio_set_fm_freq(uint16_t freq) {
|
|||||||
i2c_write(0);
|
i2c_write(0);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
uint8_t cts = 0x00;
|
||||||
|
|
||||||
i2c_restart();
|
i2c_restart();
|
||||||
i2c_write(RX_I2CADDR | BIT(I2CADDR_WRITE_BIT));
|
i2c_write(RX_I2CADDR | BIT(I2CADDR_WRITE_BIT));
|
||||||
while (cts == 0x00) {
|
|
||||||
|
while (cts == 0) {
|
||||||
cts = i2c_read_ack();
|
cts = i2c_read_ack();
|
||||||
cts &= BIT(STATUS_CTS_BIT);
|
cts &= BIT(STATUS_CTS_BIT);
|
||||||
}
|
}
|
||||||
@@ -142,7 +153,7 @@ void radio_set_rx_mute(void) {
|
|||||||
i2c_write(HI_BYTE(PROP_RX_HARD_MUTE));
|
i2c_write(HI_BYTE(PROP_RX_HARD_MUTE));
|
||||||
i2c_write(LO_BYTE(PROP_RX_HARD_MUTE));
|
i2c_write(LO_BYTE(PROP_RX_HARD_MUTE));
|
||||||
i2c_write(0x00);
|
i2c_write(0x00);
|
||||||
i2c_write(0x00 | BIT(PROP_HMUTE_R_BIT));
|
i2c_write(BIT(PROP_HMUTE_L_BIT));
|
||||||
i2c_stop();
|
i2c_stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,20 +191,17 @@ void radio_init(void) {
|
|||||||
radio_powerup_fmrds();
|
radio_powerup_fmrds();
|
||||||
radio_wait_cts();
|
radio_wait_cts();
|
||||||
|
|
||||||
|
|
||||||
uint16_t freq = 10010;
|
uint16_t freq = 10010;
|
||||||
radio_set_fm_freq(freq);
|
radio_set_fm_freq(freq);
|
||||||
radio_wait_cts();
|
radio_wait_cts();
|
||||||
|
|
||||||
|
radio_set_rx_mute();
|
||||||
|
radio_wait_cts();
|
||||||
|
|
||||||
uint8_t volume = 38;
|
uint8_t volume = 38;
|
||||||
radio_set_rx_volume(volume);
|
radio_set_rx_volume(volume);
|
||||||
radio_wait_cts();
|
radio_wait_cts();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
radio_set_rx_mute();
|
|
||||||
radio_wait_cts();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void radio_unmute(void) {}
|
|
||||||
void radio_volume(void) {}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user