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

 
 
> avr155, Вопрос
alux
сообщение Jul 19 2007, 11:07
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Разбираюсь с этим апнотом. Не понятно, каким образом в функции Get_byte() происходит обнаружение приема последнего байта? Ведь переменная j, которая передается в качестве второго аргумента этой функции, и которая сравнивается с нулем, инкрементируется data_pack.size раз и по идее не станет равной нулю ни при каких условиях. Ну, разве что размер получаемых данных превысит 255. Или я чего-то не доганяю?
На всякий случай прилагаю апнот.

Может быть правильней было бы сделать так:
for(j=data_pack.size;((j)&&(state == SUCCESS));j--)
state = Get_byte(data_pack.data_ptr++,j);
Прикрепленные файлы
Прикрепленный файл  AVR155.zip ( 10.02 килобайт ) Кол-во скачиваний: 50
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alux
сообщение Jul 21 2007, 17:51
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Вот, немного подрихтовал:
Код
static const unsigned char __flash logo[]={....};
#define COUNT(logo) (sizeof(logo)/sizeof((logo)[0]))
const unsigned char __flash *pic;
unsigned int size;
unsigned char messageBuf[32];
pic = logo;
size=COUNT(logo);
  while(size)
  {
    BytesToSend=(size > 32) ? 32 : size;
    for(unsigned char i=1;i<BytesToSend;i++)
    {
      messageBuf[0] = (TWI_targetSlaveAddress<<TWI_ADR_BITS)|(FALSE<<TWI_READ_BIT);
      messageBuf[i] = *pic++;
    }
    TWI_Start_Transceiver_With_Data(messageBuf,BytesToSend);
    size -= BytesToSend;
  }

Если имя массива использовать в качестве указателя на первый элемент, можно ли использовать его вместо указателя *pic? Т.е. написать *(logo++) вместо *pic++.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 21 2007, 18:27
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(alux @ Jul 21 2007, 20:51) *
Если имя массива использовать в качестве указателя на первый элемент, можно ли использовать его вместо указателя *pic? Т.е. написать *(logo++) вместо *pic++.

Массив нельзя ++ ...
Его можно только индексировать, либо так

logo[x]

либо так

*(<тип>)(logo + x);
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alux   avr155   Jul 19 2007, 11:07
- - defunct   Цитата(alux @ Jul 19 2007, 14:07) Разбира...   Jul 19 2007, 15:18
|- - alux   Цитата(defunct @ Jul 19 2007, 18:18) Это ...   Jul 20 2007, 06:03
- - WHALE   я уже года 2 работаю с AVR315,глюков не замечал(кр...   Jul 20 2007, 08:33
|- - alux   Если использовать avr315, как просто получить и/ил...   Jul 20 2007, 11:53
|- - defunct   Цитата(alux @ Jul 20 2007, 14:53) Если ис...   Jul 20 2007, 12:10
|- - alux   Цитата(defunct @ Jul 20 2007, 15:10) усло...   Jul 20 2007, 15:13
|- - defunct   Цитата(alux @ Jul 20 2007, 18:13) Значит ...   Jul 20 2007, 18:23
|- - alux   Цитата(defunct @ Jul 20 2007, 21:23) Вы с...   Jul 20 2007, 18:30
|- - defunct   Цитата(alux @ Jul 20 2007, 21:30) Покажит...   Jul 20 2007, 19:18
|- - alux   я имел в виду пример кода, как отправить большой м...   Jul 20 2007, 20:33
|- - defunct   Цитата(alux @ Jul 20 2007, 23:33) я имел ...   Jul 20 2007, 21:15
|- - alux   Цитата(defunct @ Jul 21 2007, 00:15) При ...   Jul 20 2007, 21:53
|- - defunct   Цитата(alux @ Jul 21 2007, 00:53) Как узн...   Jul 20 2007, 23:54
||- - alux   Цитата(defunct @ Jul 21 2007, 21:27) Масс...   Jul 23 2007, 16:31
||- - Сергей Борщ   Цитата(alux @ Jul 23 2007, 19:31) Что Вы ...   Jul 23 2007, 17:18
|- - ReAl   Цитата(alux @ Jul 21 2007, 20:51) Если и...   Jul 22 2007, 18:36
- - alux   Не получается у меня загрузить картинку в индикато...   Jul 23 2007, 08:21
- - alux   Скажите, пожалуйста, стоит ли заморачиваться с апп...   Jul 23 2007, 18:44
- - defunct   Цитата(alux @ Jul 23 2007, 21:44) Если да...   Jul 23 2007, 20:43


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:15
Рейтинг@Mail.ru


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