Периодически получается и напряжение изменяется, но чаще обмен не происходит.
Инициализация SPI:
Код
void init_spi(void)
{
SPCR = (0 << SPIE)|(1 << SPE)|(0 << DORD)|(1 << MSTR)|(0 << CPOL)|(1 << CPHA)|(1 << SPR1)|(1 << SPR0);
SPSR=0x00;
}
Ф. пересылки:
Код
#define CLEARBIT(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define SETBIT(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
void spi_master_transmit(uint8_t data)
{
transfer = false;
SPDR = data;
while(!(SPSR & (1<<SPIF)))
;
}
void change_one(uint8_t value)
{
uint8_t tmp1 = 0;
uint8_t tmp2 = 0;
CLEARBIT(PORT_SYNC, PIN_SYNC);
tmp1 += (value >> 4);
tmp2 = (value << 4);
spi_master_transmit(tmp1);
spi_master_transmit(tmp2);
SETBIT(PORT_SYNC, PIN_SYNC);
}
помогите, а ?
Прикрепленные файлы
ad5302.pdf ( 207.89 килобайт )
Кол-во скачиваний: 27