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

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

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

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

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

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


Закрытая тема
Опции темы
Непрочитано 25.08.2012, 17:12   #861
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию 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.
tempora вне форума  
Непрочитано 25.08.2012, 17:19   #862
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

putchar3, что это такое?

Это стандартная функция CVAVR[HTML]#pragma used+
void putchar3(char c)
{
while ((UCSR3A & DATA_REGISTER_EMPTY)==0);
UDR3=c;
}
#pragma used-[/HTML]
она вставлена только для отладки, что бы терминалом подсмотреть что происходит.... все результаты, это реальный эксперимент на 2560 меге

символов в массиве 31

Вот архив с проектом, буду очень признателен
Вложения:
Тип файла: rar Project_CV_encode.rar (38.9 Кб, 36 просмотров)

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

А зачем не использовать строки, там и функция strlen есть и код будет короче и более читабельным, напр.:
Цитата:
char stroka[] = "your line";
i=0;
while (stroka[i])
{
putchar(stroka[i]);
++i;
}

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

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

Функцию отправки строки в UART3 я написал.
Вопрос в том что если взять строку которую я объявил как
PHP код:
stroka[] 
то на выходе с функции EncodeData, должна быть вот такая последовательность
PHP код:
gZouaTWqgHTdHmK0001000JpG200004000000t3 
а имею вот такую:
PHP код:
gZouaTWqgITDgCmW=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.
papa_n вне форума  
Непрочитано 25.08.2012, 17:57   #866
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

papa_n, попробуйте изменить 6-й элемент на другое число, отличное от 0х31, возможно, проблема в терминале, т.е. он каким-то образом изменяет принимаемый символ, хотя, это и не понятно, ведь, ASCII(0x31)='1'.
nonamedov вне форума  
Непрочитано 25.08.2012, 18:00   #867
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от nonamedov Посмотреть сообщение
papa_n, попробуйте изменить 6-й элемент на другое число, отличное от 0х31, возможно, проблема в терминале, т.е. он каким-то образом изменяет принимаемый символ, хотя, это и не понятно, ведь, ASCII(0x31)='1'.
Пробовал изменять!! все равно читает 0х71, и не пойму откуда он его берет(((
papa_n вне форума  
Непрочитано 25.08.2012, 18:11   #868
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 вне форума  
Непрочитано 25.08.2012, 18:18   #869
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

У Вас массивы sms и stroka перекрываются. Когда пишите в sms - затираете stroka...
Yurkin2007 вне форума  
Непрочитано 25.08.2012, 18:25   #870
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Точно, дело, скорее всего, в этом. Интересно, кодевижн это съел без замечаний? BCPP отказался это делать.
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 25.08.2012 в 18:31.
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, время: 20:27.


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