Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Закрытая тема
Опции темы
Непрочитано 24.08.2012, 18:27   #851
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Вот, интересно, в последнем случае.
PHP код:
int SomeArrFunc(char ca[])
{
int i,n;
for(
n=0,i=0isizeof(ca);++i)
    {
        
n+=ca[i];
    }
    return 
n;

компилятор не ругается на то, что массив не определён, а втихаря заменяет на размер поинтера = 4, что даёт неправильный ответ. Можно легко пропустить эту ошибку.
А у ТС компилятор не пущает и вынуждает правильно считать размер массива снаружи функции.
Реклама:

Последний раз редактировалось dosikus; 24.08.2012 в 18:35.
Yurkin2007 вне форума  
Непрочитано 24.08.2012, 18:32   #852
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,268 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Yurkin2007, К чему вы растягиваете посты ????
Зачем лишние пробелы ?
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 24.08.2012 в 18:35.
dosikus вне форума  
Непрочитано 24.08.2012, 18:43   #853
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Yurkin2007 Посмотреть сообщение
а втихаря заменяет на размер поинтера = 4, что даёт неправильный ответ
Посмотрите еще раз на мой последний пост.
nonamedov вне форума  
Непрочитано 24.08.2012, 18:44   #854
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Цитата:
компилятор не ругается
Именно. Для того и наложен скриншот с результатом работы программы, чтобы на это указать.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Сказали "Спасибо" tempora
Yurkin2007 (24.08.2012)
Непрочитано 24.08.2012, 18:46   #855
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от dosikus Посмотреть сообщение
К чему вы растягиваете посты ????
Угу, я тоже заметил, если обрамить CODE/CODE, то растягивается на полэкрана, а с PHP/PHP всё пучком. Только цвета какие-то кривые.
Видимо, это связано с подавителем рекламы. Обычно в первый пост на странице вструмляется квадратный кусок рекламного баннера. Код CODE занимает широкий прямоугольник и поэтому браузер сдвигает его вниз, чтобы освободить место для баннера. Баннера Вы не видите, а только "пробелы". А код PHP занимает прямоугольник поуже и легко помещается на одном уровне с рекламой. Уже без дополнительный "пробелов".
Кстати, и текст в том посте тоже отформатирован под рекламу

Последний раз редактировалось Yurkin2007; 24.08.2012 в 19:07.
Yurkin2007 вне форума  
Непрочитано 25.08.2012, 15:55   #856
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Благодарственную ВСЕХ!!!
Внимательно изучив обсуждения и + поэкспериментировав я разобрался:
Вынес [HTML]len=sizeof(stroka);[/HTML]
из функции и передаю в неё только значение!


Есть другой вопросик может кто стыкался!
В той же функции проблема чтения масива. первые 6 элементов читает, а потом читает непонятно откуда, даже когда изменяю элементы масива[HTML]
for(i=0;i‹len0; i=i+1)
{
a0 = data[i*3];
putchar3(a0);
putchar3('\n');
a1 = data[i*3+1];
putchar3(a1);
putchar3('\n');
a2 = data[i*3+2];
putchar3(a2);
putchar3('\n');
[/HTML]

на выходе имеем [HTML]
B1 0A 9A 0A FF 0A 2B 0A 79 0A EE 0A 71 0A 46 0A 32 0A 54 0A 3C 0A DD [/HTML]
а масив
[HTML]char stroka[]={0xB1,0x9A,0xFF,0x2B,0x79,0xEE,0x31,0x46,0x32,0x2 E,0x83,0xDD[/HTML]
papa_n вне форума  
Непрочитано 25.08.2012, 16:27   #857
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Нужен фрагмент кода, который содержал бы в явном виде все определения и операторы, участвующие в работе алгоритма. Возможно, Вы опять намудрили с sizeof'ом.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 25.08.2012, 16:33   #858
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

papa_n , в твоей функции было деление len на 3. Сейчас этого не видно.
Если a0 = data[i*3]; тогда при i=6 индекс массива равен 18, таким образом ты выйдешь за границы массива.
mimuh64 вне форума  
Непрочитано 25.08.2012, 17:00   #859
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Вот кусок кода:
[HTML]char stroka[]={0xB1,0x9A,0xFF,0x2B,0x79,0xEE,0x31,0x46,0x32,0x2 E,0x83,0xDD,...[/HTML]
функция
[HTML]
char EncodeData(char data[])
{
char len0, i, index;
char a0, a1, a2;
char b0, b1, b2, b3;

len0=len/3-1;
//putchar3(len0);
for(i=0;i‹len0; i=i+1)
{
index=i*3;
a0 = data[index]; // вот тут проблема при index=6 берет 0x71 !!!
putchar3(a0); // debag a0
putchar3(index); // debad index
putchar3('\n');

index=i*3+1;
a1 = data[index];
putchar3(a1);
putchar3(index);
putchar3('\n');

index=i*3+2;
a2 = data[index];
putchar3(a2);
putchar3(index);
putchar3('\n');

b0 = a0&0x3F;
b1 = ((a1&0x0F)‹‹2)|(a0››6);
b2 = ((a2&0x03)‹‹4)|(a1››4);
b3 = a2››2;

sms[i*4]=encodeTable[b0];
sms[i*4+1]=encodeTable[b1];
sms[i*4+2]=encodeTable[b2];
sms[i*4+3]=encodeTable[b3];

}
return *sms;
}
[/HTML]
в main [HTML]len=sizeof(stroka); //определение длины строки
EncodeData(stroka);
send(sms);
[/HTML]
при 6 м элементе первая ошибка, потом на 9 и потом вообще бардак.
Не пойму! Выводил индексы, все нормально! и даже при замене 6 го элемента на "0" все равно выводит 0х71
papa_n вне форума  
Непрочитано 25.08.2012, 17:10   #860
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от mimuh64 Посмотреть сообщение
Если a0 = data[i*3]; тогда при i=6 индекс массива равен 18,
Где Вы там это увидели, итак ясно, что len0=len/3.
papa_n, весьма странный выход, замечу, что повторяющийся элемент 0А, это символ '\n'. Думаю, проблема в функции putchar3, что это такое?
nonamedov вне форума  
Закрытая тема

Закладки

Опции темы

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

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, время: 20:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot