15.08.2012, 21:53
|
#801
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Рассмотрение незнания разработчиком своего средства разработки, как преимущества протеуса - это нехороший диагноз.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 15.08.2012 в 22:08.
|
|
|
|
15.08.2012, 23:28
|
#802
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от tempora
|
Рассмотрение незнания разработчиком своего средства разработки, как преимущества протеуса - это нехороший диагноз.
|
Эк завернуто! Учитесь, стюденты!
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
15.08.2012, 23:43
|
#803
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Да какое там "учитесь", если он трижды не понял, что ему сказали... прямо, как по писаному - "Чукча не читатель, Чукча - писатель."
__________________
There's always more than one way to skin a cat.
|
|
|
|
23.08.2012, 11:00
|
#804
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Доброго! Уважаемые!
Есть вопросик)
нужно получить целое число от деления количества байт в месива
[HTML]char len;
char data[];
len=(sizeof(data))/3;
[/HTML]
Подскажите где ошибка
|
|
|
|
23.08.2012, 11:37
|
#805
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Нужно определиться с массивом:
так char data[20];
или так char data[]={1,2,3};
ну или вот так char N; char data[N];
|
|
|
|
23.08.2012, 12:03
|
#806
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
массив определен
PHP код:
|
volatile char data[]={0xB1,0x9A,0xFF,0x2B,0x79,0xEE,0x31,0x46,0x32,0x2 E,0x83,0xDD,0x1B,0x00,0x00,0x01,0x00};
....
char EncodeData(char *data)
{
char len, len1, i;
char a0, a1, a2;
char b0, b1, b2, b3;
char index=0;
len=sizeof(data)/3;
//putchar3(len);
for(i=0; i‹len; i++)
{
a0 = data[i*3];
a1 = data[i*3+1];
a2 = data[i*3+2];
b0 = a0 &(0x3F);
b1 = ((a1 & 0x0F)‹‹2)|(a0››6);
b2 = ((a2 & 0x03)‹‹4)|(a1››4);
b3 = a2››2;
sms[index]=encodeTable[b0];
index++;
sms[index]=encodeTable[b1];
index++;
sms[index]=encodeTable[b2];
index++;
sms[index]=encodeTable[b3];
index++;
}
return *sms;
}
|
|
|
|
|
23.08.2012, 12:27
|
#807
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Тогда в чем проблема? Я взял кусок твоего примера - компилируется и работает...
Не понятно как объявлен массив? Объяви его глобально... Иначе из функии не достанешь.
Последний раз редактировалось mimuh64; 23.08.2012 в 12:32.
|
|
|
|
23.08.2012, 13:10
|
#808
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
Подскажите где ошибка
|
У Вас параметр data есть указатель на char, а совсем не массив. А какой размер переменной типа указатель? 4 байта в лучшем случае.
Нужно передавать ссылку на массив
Код:
|
char EncodeData(char data[]) |
И хорошо бы придумывать разные имена для формальных параметров и действительных переменных. А то у Вас всё data и data ...
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
23.08.2012, 14:19
|
#809
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
ТОЧНООО)
Yurkin2007 Мерси боку)
а параметры переименую)))
|
|
|
|
23.08.2012, 15:58
|
#810
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
Мерси боку)
|
Не торопитесь, в последних советах - засада на засаде.
Засады по порядку...
Сообщение от mimuh64
|
Нужно определиться с массивом: ... ну или вот так
Код:
|
char N; char data[N]; |
|
Ну, и какого же размера будет массив?
Сообщение от mimuh64
|
Я взял кусок твоего примера - компилируется и работает...
|
Компилироваться, он компилируется, но не работает.
Сообщение от Yurkin2007
|
У Вас параметр data есть указатель на char, а совсем не массив. Нужно передавать ссылку на массив
Код:
|
char EncodeData(char data[]) |
...
|
Предложенное объявление параметра ничем не отличается от того, которое оно призвано исправить - оба объявления являются ссылками на char.
Зря вы избегаете изучения предмета - столько времени тратите впустую, вместо того, чтобы прочесть учебник. В данном случае очень важно понимать раздел " Ссылки и массивы".
P.S. Да, и смысл выражения sizeof(‹some array›) вами тоже понят ошибочно - это не количество элементов массива.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 23.08.2012 в 16:01.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:25.
|
|