Сб мар 15, 2014 10:06:58
Сб мар 15, 2014 10:15:42
Пт апр 04, 2014 12:25:11
Вт апр 15, 2014 15:27:55
dt_andrew писал(а):никаким потенциометром проверить нельзя BUS_ENABLE - выбор протокола обмена
SPI или I2C
Ср май 21, 2014 14:12:12
Ср май 21, 2014 14:15:55
Ср май 21, 2014 14:30:37
Ср май 21, 2014 14:36:02
Ср май 21, 2014 15:22:42
Пн окт 06, 2014 02:09:04
Пн окт 06, 2014 06:14:39
Пн окт 06, 2014 08:45:26
Кстати, какие-то результаты по RDS у Вас уже есть?dt_andrew писал(а):уже месяца 2 бьюсь с 5807М
управление в корне отличается от 5807P
с плохой антенной об РДС можно забыть хотя на звук вроде все чисто играет
Пн окт 06, 2014 08:49:09
Вт дек 02, 2014 18:47:48
void send_freq(void)
{
if (valid_freq())
{
senddata[0] = 0xB0;
senddata[1] = 0x2A;
senddata[2] = 0x00;
senddata[3] = 0x1E;
senddata[4] = 0x00;
PLLfreq = 4 * (freq - 225000L) / 32768L;
senddata[0] = ((PLLfreq >> 8) & 0x3F);
senddata[1] = (PLLfreq & 0xFF);
MUTE_OFF;
} else {
MUTE_ON;
}
tea5768_write();
_delay_ms(60);
}
Пн янв 26, 2015 14:33:57
unsigned char i2c_write(unsigned char data)
{
register unsigned char bit = 0;
for(bit=0; bit<=7; bit++)
{
if( data & 0x80 )
{
SDA_1();
}
else
{
SDA_0();
}
SCL_1();
delay(I2C_DELAY);
SCL_0();
delay(I2C_DELAY);
data = (data<<1);
}
RELEASE_I2C_BUS();
delay(I2C_DELAY);
if ( bit_is_clear(I2C_SDA_PIN_REG, SDA_PIN) )
{
SCL_0();
delay(I2C_DELAY);
}
else
{
delay(I2C_TIMEOUT);
if( bit_is_clear(I2C_SDA_PIN_REG, SDA_PIN) )
{
SCL_0();
delay(I2C_DELAY);
}
else
{
return(I2C_ERROR_DEVICE_NOT_RESPONDING);
}
}
if( bit_is_clear(I2C_SDA_PIN_REG, SDA_PIN) )
{
delay(I2C_TIMEOUT);
if( bit_is_clear(I2C_SDA_PIN_REG, SDA_PIN) )
{
return(I2C_ERROR_DEVICE_BUSY);
}
}
return(I2C_NO_ERROR);
}
void LED_blink(unsigned char res[6])
{
unsigned char j, i = 0;
DDRA = 0xFF;
PORTA = 0x00;
for (i = 0; i<6 ; i++)
{
for (j = 0; j < res[i]; j++)
{
PORTA = 1 << PORTA0;
_delay_ms(250);
PORTA = 0 << PORTA0;
_delay_ms(250);
}
_delay_ms(1000);
}
return;
}
_delay_ms(5000);
senddata[0] = 0xB0;
senddata[1] = 0x2A;
senddata[2] = 0x00;
senddata[3] = 0x1E;
senddata[4] = 0x00;
MUTE_OFF;
freq = 105700000;
PLLfreq = 4 * (freq - 225000L) / 32768L;
senddata[0] = ((PLLfreq >> 8) & 0x3F);
senddata[1] = (PLLfreq & 0xFF);
_delay_ms(5000);
while(1)
{
//TODO:: Please write your application code
}
Вт фев 10, 2015 20:07:46
Пн мар 02, 2015 16:08:31
Пн мар 02, 2015 16:12:06
Пн мар 02, 2015 16:18:29
. Поэтому по умолчанию на земле, за 15мксек до сигнала СТАРТ на линии подымаю в 1, делаю операции на шине I2C, жду 15мксек и сажу в 0.Before any READ or WRITE operation the pin BUSENABLE has to be HIGH for at least 10 ms.
Пн мар 02, 2015 16:23:42