Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 29 мар 2024, 03:42

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 16 июл 2016, 22:00 
Не в сети

Зарегистрирован: 06 сен 2015, 22:16
Сообщения: 6
Привет всем! Очень вовремя появился шаблон на мегу328. Огромное вам спасибо! Как раз под ардуину-нано начал проектик, и обнаружил проблему. Даже две, но по порядку.
Первая.При передаче строки в уарт из основного цикла пропадает 3-й символ. Если несколько строк подряд, то остальные передаются правильно без пропусков. От скорости передачи не зависит. Если отвечать сразу в прерывании приёма то строка ответа передаётся правильно. Но хотелось бы обрабатывать принятую строку в основном цикле, так как будут и таймера и внешние прерывания более важные, чем передача по уарту.
Вторая серьёзней. При передаче цифрового десятичного значения теряются 0. Например передаём 100 терминал принимает 10, 1005 - 15, 1020 - 120, 10200 - 120. 10 передаётся правильно.
На основе шаблона нарисовал тестовую програмку, часть от своей задачи. Тестирую с программой Terminal1_9_b. Формат команды <числовое_значение><символ_команды>. Например: 1023, ; 3A ; ?ae


Вложения:
errUART.zip [32.52 КБ]
Скачиваний: 525
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 17 июл 2016, 17:34 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 15 май 2011, 23:00
Сообщения: 1904
Довольно много мелких ошибок в программе
Например:
- модуль Print не подключен к модулю UART (как вообще он что-то печатал - для меня загадка о_О)
*модуль Print универсальный и может работать с любым устройством ввода вывода, поэтому изначально он не привязан ни к чему. Примеры привязки к разным модулям уже прописаны - нужно только раскомментировать соответствующие подпрограммы связи.
- в основном цикле (основная программа Programm) используется ret (переход по нему непредсказуем)
- как-то странно заканчивается цикл расшифровки строки.
- _Print_String("A long string of text for transmission over serial port") - строка текста длинней чем величина буфера заданного по умолчанию (32 символа)

По пропаданию нулей и третьему символу передачи строки - подтверждаю - есть такое.

Причем если нули пропадают чисто из за моей ошибки в коде, то с третьим символом очень интересная история - пришлось поломать голову.

Проблемы решены. Обновил архивы шаблонов.
Ниже немного подправленная программа (обкатал на железе - все работает).

Спасибо за тестирование :)!


Вложения:
errUART-fixed.zip [33.95 КБ]
Скачиваний: 555
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 18 июл 2016, 20:36 
Не в сети

Зарегистрирован: 06 сен 2015, 22:16
Сообщения: 6
Премного благодарностей! А как без ошибок-то :oops: век живи век учись :geek:
Вроде раскомментированы вызова инициализации и печати для UART-а были, а как иначе...
_ PrintString(text) выводит в уарт без использования буфера, из флешь, вроде так... а-а-а через буфер...
Programm - взял что ближе было, основной цикл в main... флаговый автомат типа...
Буду дальше писать программку. Обожаю АБ!

PS: посмотрите процедуру _UART_PUSH_r16 в модуле UART. В Z указатель на входной буфер, а дальше проверка выхода за пределы с выходным буфером.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 18 июл 2016, 23:39 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 15 май 2011, 23:00
Сообщения: 1904
По _UART_PUSH_r16 - все правильно.
Есть указатель точки заполнения буфера и указатель точки извлечения из буфера. А буфер один и тот-же.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 19 июл 2016, 17:59 
Не в сети

Зарегистрирован: 06 сен 2015, 22:16
Сообщения: 6
Спасибо, разобрался ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 14 дек 2016, 19:44 
Не в сети

Зарегистрирован: 20 июн 2014, 15:47
Сообщения: 77
Откуда: Россия
Добрый день!
Назрели несколько вопросов по модулю шим. Что значит фоновый режим.
И что можем паралельно опрашивать в обработчике таймера. Отразится ли это на формировании шим сигнала.Может кто расскажет.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 14 дек 2016, 20:16 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 15 май 2011, 23:00
Сообщения: 1904
Под фоновым режимом понимается то, что сигнал ШИМ формируется независимо от основной программы. И для основной программы сам процесс формирования незаметен.

В обработчике таймера можно делать все что угодно. Единственно, необходимо эти действия делать максимально короткими для того чтобы не искажался ШИМ сигнал.
До пары сотен команд можно выполнять без каких либо заметных искажения.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 14 дек 2016, 21:54 
Не в сети

Зарегистрирован: 20 июн 2014, 15:47
Сообщения: 77
Откуда: Россия
Спасибо!
В обработку таймера,хотел поставить сегментный индикатор. Что бы показывал задание шим.
Тогда значит можно.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 20 дек 2016, 20:13 
Не в сети

Зарегистрирован: 20 июн 2014, 15:47
Сообщения: 77
Откуда: Россия
Добрый день!
Разбираюсь с модулем PWM, где в начале написано-Скважность сигнала (уровень шим) задаётся значениями в переменной PWM_Levels[N] (где N- номер линии) -можно изменять в любом месте программы.В общим такой переменной не нашол, прописана PWM_Level- в коментариях значится как -таблица уровней ШИМ.Может там, где-то опечатка или я проглидел.
И вот ещё непонятка, для одного какнала ШИМ сколько добовлять, формирование уровней шим PWM_DO (number)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Шаблоны для Билдера
СообщениеДобавлено: 20 дек 2016, 21:16 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 15 май 2011, 23:00
Сообщения: 1904
PWM_Levels - это массив значений для ШИМ. Значений там ровно столько, сколько Вы задали в константах ШИМ-выходов.

значения записываются следующим образом

r16 --> PWM_Levels[1]
или так
125 --> PWM_Levels[1]

1 - это номер ШИМ выхода

еще можно пользоваться готовыми макросами - еще понятней будет
125 --> PWM_Levels[1] = _PWM_Set (1, 125)

а еще в константах можно определить имена для каждой линии и станет совсем понятно
_PWM_Set (1, 125) = _PWM_Set (RED_RED, 125)


величина значения для ШИМ - байт
то есть от 0 до 255


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB