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

 
 
> Помогите прочесь адрес, mega16 + nanopan3561
$ilent
сообщение Feb 27 2006, 12:06
Сообщение #1


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

Группа: Новичок
Сообщений: 116
Регистрация: 14-02-06
Из: Москва. Перово
Пользователь №: 14 296



На руках имеется некий трансмиттер нанопар3561 который общается с контроллером по SPI. У него по адресу 0х01 лежит идентификатор встроенного контроллера.
Формат протокола следующий:
<instruction><address><data>
<instruction> - 0x81 - запись одного байта
<instruction> - 0х01 - чтение одного байта
Как я понимаю:

unsigned char nano_data_trans[]=
{
0x01, 0x01
};

char i;
char pin;
char len_nano_data = sizeof(nano_data_trans) / sizeof(nano_data_trans[0]);

void int0_isr(void)
{
spi_init();
for ( i=0; i<len_nano_data; i++)
{
SPDR = nano_data_trans[i];
while (!(SPSR & (1<<SPIF)));
}
pin = SPDR;
}

после отправки инструкции и адреса переменная "pin" должна содержать искомый ответ, но второй конец этой палки заключается в клоках контроллера: их всего два на каждый передаваемый байт, где взять третий для привязки ответа?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Mar 20 2006, 15:49
Сообщение #2


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Код
void transmit(char* p, int len)
{
while(len) //пока длина не ноль
   {
   while (!(SPSR & (1<<SPIF))); //проверили готовность
   SPDR = *p; // отравить данные по адресу р
   p++;          // след. адрес
   i--;             // уменьшить длину
   }
}

main()
{
char array_A[] = {...};
char array_B[] = {...};

transmit(char array_A, sizeof(char array_A));
transmit(char array_B, sizeof(char array_B));

}


Возможны некоторые неточности, но идея полжна быть ясна.

Сообщение отредактировал beer_warrior - Mar 20 2006, 15:51


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- $ilent   Помогите прочесь адрес   Feb 27 2006, 12:06
- - ArtemK   Отправляйте на SPI и третий байт. Когда контроллер...   Feb 27 2006, 12:47
- - $ilent   Логика ясна, но не лепа. Что же это получается, ес...   Feb 27 2006, 13:22
|- - BVU   Цитата($ilent @ Feb 27 2006, 16:22) ...   Feb 27 2006, 13:33
- - ArtemK   ЦитатаЧто же это получается, если мне нужно прочес...   Feb 27 2006, 13:43
- - $ilent   Появился новый вопрос: есть некий массив и его дли...   Mar 20 2006, 13:51
- - $ilent   Цитата(beer_warrior)Возможны некоторые неточности,...   Mar 21 2006, 07:04
- - $ilent   Подскажите пожалуйста на счёт битов защиты и конфи...   Mar 22 2006, 08:08
|- - Igor26   Цитата($ilent @ Mar 22 2006, 11:08) ...   Mar 22 2006, 09:42
|- - $ilent   Цитата(Igor26 @ Mar 22 2006, 12:42) Вы на...   Mar 22 2006, 10:40
|- - Igor26   Цитата($ilent @ Mar 22 2006, 13:40) ...   Mar 22 2006, 11:45
|- - $ilent   Цитата(Igor26 @ Mar 22 2006, 14:45) Тогда...   Mar 22 2006, 12:03
|- - Igor26   Цитата($ilent @ Mar 22 2006, 15:03) ...   Mar 22 2006, 12:15
|- - $ilent   Цитата(Igor26 @ Mar 22 2006, 15:15) Так т...   Mar 22 2006, 13:36
- - $ilent   Появилась еще одна проблемка: массив который мне н...   Apr 21 2006, 10:09
- - $ilent   Нашёл сам, всем спасибо...   Apr 21 2006, 11:12
- - $ilent   Появился еще один вопрос: Кодесть 2 массива: ...   May 3 2006, 07:07
- - $ilent   помогите приз в слудующем вопросе: за счёт того вы...   Jun 30 2006, 10:16


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

 


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


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