реклама на сайте
подробности

 
 
> Обмен по SPI, ad5302
Hellper
сообщение Mar 27 2009, 10:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 13-08-07
Из: Санкт-Петербург
Пользователь №: 29 745



Периодически получается и напряжение изменяется, но чаще обмен не происходит.

Инициализация 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
 


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01342 секунд с 7
ELECTRONIX ©2004-2016