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

 
 
> 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
ReAl
сообщение Jul 22 2007, 18:36
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



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


--------------------
Ну, я пошёл… Если что – звоните…
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
|- - defunct   Цитата(alux @ Jul 21 2007, 20:51) Если и...   Jul 21 2007, 18:27
||- - alux   Цитата(defunct @ Jul 21 2007, 21:27) Масс...   Jul 23 2007, 16:31
||- - Сергей Борщ   Цитата(alux @ Jul 23 2007, 19:31) Что Вы ...   Jul 23 2007, 17:18
- - 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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