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

 
 
> Работа с массивами.
Jenya7
сообщение Feb 8 2015, 09:12
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Что то запутался я.
Код
uint32_t LOGGER_GetDelta(uint32_t address, unsigned char *delta_h_l)
{
    uint32_t low_byte, high_byte;
    
    // start read
     SPI_CSlow();
    // send command
    SPI_SendByte(SPIEEPROM_CMD_READ);
    // send address
    SPI_SendByte(address>>8);
    SPI_SendByte(address&0x00FF);
    // read contents of memory address
    SPI_TransferByte(0x00);
    low_byte = majority32const(&USART1->RXDATA);
    SPI_TransferByte(0x00);
    high_byte = majority32const(&USART1->RXDATA);
    // stop read
    SPI_CShigh();

    *delta_h_l = low_byte;
    *(delta_h_l+1) = high_byte;

    return ((high_byte << 8) | low_byte);
}

Смотрю в дебаггере low_byte, high_byte получают правильные данные а *delta_h_l, *(delta_h_l+1) не получает ничего.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Opex
сообщение Feb 8 2015, 09:39
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574



Нужно low_byte и high_byte привести к типу unsigned char перед записью в массив.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Feb 8 2015, 09:42
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Opex @ Feb 8 2015, 14:39) *
Нужно low_byte и high_byte привести к типу unsigned char перед записью в массив.

пробовал
Код
*delta_h_l = (unsigned char)low_byte;
*(delta_h_l+1) = (unsigned char)high_byte;

не помогает
Go to the top of the page
 
+Quote Post



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

 


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


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