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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

Ответ
Опции темы

Мост USB-USART проблемы с ноутбуком

Непрочитано 05.06.2015, 00:41   #51
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

Да порт Вы сами открываете или закрываете Open Close. Надеюсь закрываете порт при выходе из программы, а не после каждого принятого пакета?
Реклама:
Boba_spb вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 00:47   #52
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

Дайте гянуть как Вы там корректируете countByteInBuff и какого размера serialInByte.
Boba_spb вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 01:15   #53
shurenock
Частый гость
 
Регистрация: 01.04.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
shurenock на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

byte[] serialInByte = new byte[100];

Дальше код обработки принятой информации
идет сразу за кодом catch в предыдущих постах
//Увеличиваем счетчик буфера на число принятых байтов
countByteInBuff += temp;

//Если буфер больше 2 байт, проверяем на байты синхронизации. Удаляем байты мусора перед ними
if (countByteInBuff ›= 2)
{
//Цикл прохода по массиву принятых байтов
for (int i = 0; i ‹ countByteInBuff - 1; i++)
{
//Если два первых байта - не байты синхронизации
if (!(serialInByte[0] == USART_SYN_OUT && serialInByte[1] == USART_SYN_OUT))
{
//Сдвигаем массив влево
for (int j = 0; j ‹ countByteInBuff - 1; j++) serialInByte[j] = serialInByte[j + 1];
//Уменьшаем число принятых элементов на 1
countByteInBuff--;
//Начинаем цикл прохода заново
i = 0;
}
//Если два первых байта - байты синхронизации - выходим
else
{
i = countByteInBuff;
}
}
}

//Если буфер больше 6 байт - выбираем посылку.
if (countByteInBuff ›= 6)
{
//Если приняты два байта 0xFF - начало рабочего цикла очистить буфер экрана, очистить буфер приема
if (serialInByte[2] == 0xFF && serialInByte[3] == 0xFF)
{
for (int i = 0; i ‹ mode4PhaseArray.Length - 1; i++)
{
mode4PhaseArray[i] = 0;
mode4FreqArray[i] = 0;
serialPortMCU.DiscardInBuffer();
}
serialInByte[2] = 0x02;
serialInByte[3] = 0x00;
}

//Считываем и конвертируем значение фазы
phaseCurr = serialInByte[2];
phaseCurr = phaseCurr ‹‹ 8;
phaseCurr += serialInByte[3];
phaseCurr = phaseCurr * 351 / 1000 - 180 + 35;
//Выводим значение фазы на экран
tbPhaseCurrMode4.Text = phaseCurr.ToString();

//Считываем и конвертируем значение частоты
freqCurr = serialInByte[4];
freqCurr = freqCurr ‹‹ 8;
freqCurr += serialInByte[5];
//Выводим значение частоты на экран
tbFreqCurrMode4.Text = freqCurr.ToString();
freqCurr -= 38000;
freqCurr = freqCurr * 360 / 4000;


//Сдвигаем массив на 6 байта
for (int i = 0; i ‹ 6; i++)
{
for (int j = 0; j ‹ countByteInBuff - 1; j++) serialInByte[j] = serialInByte[j + 1];
countByteInBuff--;
}
}
Скобки фигурные мог упустить при копировании, т.к. там еще есть код дальше.

Последний раз редактировалось shurenock; 05.06.2015 в 01:24.
shurenock вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 01:27   #54
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком


Вы так смело из потока, организованного не Вами, пытаесь пользовать
tbFreqCurrMode4.Text = freqCurr.ToString(); и tbPhaseCurrMode4.Text = phaseCurr.ToString();
Boba_spb вне форума   Ответить с цитированием
Сказали "Спасибо" Boba_spb
j-Roger (08.06.2015)
Непрочитано 05.06.2015, 01:39   #55
shurenock
Частый гость
 
Регистрация: 01.04.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
shurenock на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

) А вы хотите меня уверить, что это как-то повлияет на то что произошло раньше? Событие - прием информации по последовательному интерфейсу - произошло. Обработку производит ЦП. С его быстродействием вывести информацию в буфер экрана. ) Идет обработка принятых данных - это асинхронный процесс, он регулируется очередью винды. Он явно не перекроет следующую посылку. Поэтому я никаких проблем не вижу. По крайней мере, относящихся к этому затыку.

Последний раз редактировалось shurenock; 05.06.2015 в 01:42.
shurenock вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 01:48   #56
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

Посмотрите, может чуток поможет
http://skillcoding.com/Default.aspx?id=235

Вы слушайтесь старших, когда Вам хотят помочь, а не пререкайтесь. Тем более что Ваши познания в этой области пока около нуля.
Boba_spb вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 09:37   #57
shurenock
Частый гость
 
Регистрация: 01.04.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
shurenock на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

) Вот так. Вкалываешь годами. Специально вторую вышку по программированию получаешь. Фигачишь диплом с многопотоковой прогой. Пишешь проги. Трахаешься с делегатами, раскручиваешь как из одного потока в другом работать - и как вывод: познания около нуля.
А кто вам сказал, что эта прога многопотоковая? А ссылка ваша как вяжется с проблемой. Делегаты - это всего лишь указатель на метод, который изначально не определен, но в дальнейшем будет задействован при переходе по этой ссылке.
Вы хоть пару книжек по шарпу прочитайте типа "C# для профессионалов" там два тома и море информации для размышлений. Или лекции на Интуите. Тоже хорошая штука. Ну и https://msdn.microsoft.com/ru-ru/ вам в руки. А потом про потоки поговорим.
https://msdn.microsoft.com/ru-ru/library/ms173178.aspx вот ссылка про них.
https://msdn.microsoft.com/ru-ru/library/ms173171.aspx а это про делегаты, про которые в вашей ссылке говорится. Автор кстати через отдельный поток работал. А можно было гораздо проще через класс Timer работать. Там событий хватает. Он внизу в комментах об этом и говорит.
Так что не надо вот так сразу людей опускать не зная их возможности и опыт.
Хотя конечно в жизни все бывает. И я могу быть не прав.)))

Последний раз редактировалось shurenock; 05.06.2015 в 09:48.
shurenock вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 10:25   #58
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
Это для Вас там написано !!! Что ж Вы так плохо читаете


Прошу прощения, если представленный текст программы был не Вами написан.
Ибо алгоритмика и стиль - не дает никаких поводов думать об специальном образовании в области программирования.

Последний раз редактировалось Boba_spb; 05.06.2015 в 10:30.
Boba_spb вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 10:40   #59
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

Сообщение от shurenock Посмотреть сообщение
) Вот так. Вкалываешь годами. Специально вторую вышку по программированию получаешь. Фигачишь диплом с многопотоковой прогой. Пишешь проги. Трахаешься с делегатами, раскручиваешь как из одного потока в другом работать - и как вывод: познания около нуля.
Вспомнился анекдот - Китайца спросили как он учил русский язык. Он говорит - Я каждый день учил 10 слов. За год запомнил 3650 слов. За три года запомнил уже 11950 слов. И все эти слова у меня тут , постучав по голове, ... в жопе.
Boba_spb вне форума   Ответить с цитированием
Непрочитано 05.06.2015, 11:03   #60
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Мост USB-USART проблемы с ноутбуком

Сообщение от shurenock Посмотреть сообщение
) А можно было гораздо проще через класс Timer работать. Там событий хватает.
Какой класс Вы имеете ввиду? System.Threading.Timer или System.Windows.Forms.Timer
Boba_spb вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32F205RB Проблемы с USART IvanAlyaev ARM 2 04.05.2014 12:46
На ноутбуке Sony проблемы с USB sandist Ремонт оргтехники 6 23.05.2009 19:41
Помогите разобраться с USART в CodeVisionAVR vendim Микроконтроллеры, АЦП, память и т.д 20 26.07.2007 16:42


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


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