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