Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Уроки СИ для AVR микроконроллеров

Непрочитано 15.08.2012, 21:53  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Рассмотрение незнания разработчиком своего средства разработки, как преимущества протеуса - это нехороший диагноз.
Реклама:
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 15.08.2012 в 22:08.
tempora вне форума  
Непрочитано 15.08.2012, 23:28  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от tempora Посмотреть сообщение
Рассмотрение незнания разработчиком своего средства разработки, как преимущества протеуса - это нехороший диагноз.
Эк завернуто! Учитесь, стюденты!
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 15.08.2012, 23:43  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Да какое там "учитесь", если он трижды не понял, что ему сказали... прямо, как по писаному - "Чукча не читатель, Чукча - писатель."
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 23.08.2012, 11:00  
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Доброго! Уважаемые!
Есть вопросик)
нужно получить целое число от деления количества байт в месива

[HTML]char len;
char data[];
len=(sizeof(data))/3;
[/HTML]
Подскажите где ошибка
papa_n вне форума  
Непрочитано 23.08.2012, 11:37  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Нужно определиться с массивом:
так char data[20];
или так char data[]={1,2,3};
ну или вот так char N; char data[N];
mimuh64 вне форума  
Непрочитано 23.08.2012, 12:03  
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию 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;
} 
papa_n вне форума  
Непрочитано 23.08.2012, 12:27  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Тогда в чем проблема? Я взял кусок твоего примера - компилируется и работает...
Не понятно как объявлен массив? Объяви его глобально... Иначе из функии не достанешь.
Миниатюры:
Нажмите на изображение для увеличения
Название: mmm.jpg
Просмотров: 110
Размер:	147.5 Кб
ID:	38004  

Последний раз редактировалось mimuh64; 23.08.2012 в 12:32.
mimuh64 вне форума  
Непрочитано 23.08.2012, 13:10  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от papa_n Посмотреть сообщение
Подскажите где ошибка
У Вас параметр data есть указатель на char, а совсем не массив. А какой размер переменной типа указатель? 4 байта в лучшем случае.
Нужно передавать ссылку на массив
Код:
char EncodeData(char data[])
И хорошо бы придумывать разные имена для формальных параметров и действительных переменных. А то у Вас всё data и data ...
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
papa_n (23.08.2012)
Непрочитано 23.08.2012, 14:19  
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
Хорошо Re: Уроки СИ для AVR микроконроллеров

ТОЧНООО)

Yurkin2007 Мерси боку)
а параметры переименую)))
papa_n вне форума  
Непрочитано 23.08.2012, 15:58  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию 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.
tempora вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


Часовой пояс GMT +4, время: 01:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.