25.08.2012, 17:12
|
#861
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
вот тут проблема при index=6 берет 0x71
|
Я что-то не вижу в приведенном массиве элемента со значением 0х71. Просил же - приведите достаточный фрагмент кода, раз уж боитесь весь исходник архивом выложить.
_________________________________________________
Сообщение от nonamedov
|
ясно, что len0=len/3.
|
И даже ещё меньше. Кстати, papa_n, а нафига вычитать единицу? Вы так до конца массива не доберетесь. Хотя, до этого ещё дожить надо.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 25.08.2012 в 17:17.
|
|
|
|
25.08.2012, 17:19
|
#862
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
putchar3, что это такое?
Это стандартная функция CVAVR[HTML]#pragma used+
void putchar3(char c)
{
while ((UCSR3A & DATA_REGISTER_EMPTY)==0);
UDR3=c;
}
#pragma used-[/HTML]
она вставлена только для отладки, что бы терминалом подсмотреть что происходит.... все результаты, это реальный эксперимент на 2560 меге
символов в массиве 31
Вот архив с проектом, буду очень признателен
Последний раз редактировалось papa_n; 25.08.2012 в 17:22.
|
|
|
|
25.08.2012, 17:24
|
#863
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
А зачем не использовать строки, там и функция strlen есть и код будет короче и более читабельным, напр.:
Цитата:
|
char stroka[] = "your line";
i=0;
while (stroka[i])
{
putchar(stroka[i]);
++i;
}
|
Последний раз редактировалось nonamedov; 25.08.2012 в 17:27.
|
|
|
|
25.08.2012, 17:25
|
#864
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
символов в массиве 31
|
Это в корне меняет дело.
__________________
There's always more than one way to skin a cat.
|
|
|
|
25.08.2012, 17:35
|
#865
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Функцию отправки строки в UART3 я написал.
Вопрос в том что если взять строку которую я объявил как то на выходе с функции EncodeData, должна быть вот такая последовательность
PHP код:
|
gZouaTWqgHT‹d‹HmK0001000JpG20000‹4000000t3
|
а имею вот такую:
PHP код:
|
gZouaTWqgIT‹DgCmW=DKGk3A;MjJi4j›=YVB
|
вот то что выводится на терминал с проэкта
Цитата:
|
B1
00
0A
9A // символ
01 // его номер в масиве
0A
FF //символ
02 //его номер
0A
2B // символ
03 // номер
0A
79
04
0A
EE
05
0A
71 //символ Откуда он его берет?????
06 //его номер
0A
46
07
0A
32
08
0A
|
Последний раз редактировалось papa_n; 25.08.2012 в 17:41.
|
|
|
|
25.08.2012, 17:57
|
#866
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
papa_n, попробуйте изменить 6-й элемент на другое число, отличное от 0х31, возможно, проблема в терминале, т.е. он каким-то образом изменяет принимаемый символ, хотя, это и не понятно, ведь, ASCII(0x31)='1'.
|
|
|
|
25.08.2012, 18:00
|
#867
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от nonamedov
|
papa_n, попробуйте изменить 6-й элемент на другое число, отличное от 0х31, возможно, проблема в терминале, т.е. он каким-то образом изменяет принимаемый символ, хотя, это и не понятно, ведь, ASCII(0x31)='1'.
|
Пробовал изменять!! все равно читает 0х71, и не пойму откуда он его берет(((
|
|
|
|
25.08.2012, 18:11
|
#868
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Все элементы перебираются в правильном порядке, т.е., эта часть кода правильная. Скорее всего, что-то с выводом не так. Попробуйте выводить не сами символы, а их читабельное представление - каждый преобразуйте в строку, скажем, так, и уже эту строку шлите на терминал. А если есть дисплей, то м.б. проще вывести эту строку на него, тогда будет известно, что не вмешиваются ошибки последовательного канала (кстати, проверьте, что там со скоростями передачи и приема).
Да, забыл сказать - преобразования с битовыми масками и таблицей перекодировки я, разумеется, исключил из рассмотрения.
__________________
There's always more than one way to skin a cat.
|
|
|
|
25.08.2012, 18:18
|
#869
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
У Вас массивы sms и stroka перекрываются. Когда пишите в sms - затираете stroka...
|
|
|
|
25.08.2012, 18:25
|
#870
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Точно, дело, скорее всего, в этом. Интересно, кодевижн это съел без замечаний? BCPP отказался это делать.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 25.08.2012 в 18:31.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:26.
|
|