Atmega8 & LV

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

Запусти в медленном темпе (нажни на лампочку в меню сверху) и посмотри почему заканчивается после первой итерации. И вообще выложи сюда скрин, а то так в пустую болтаем.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

обрабатываются только первые 5 байт
Вложения
4.jpg
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

Да, нет же. Ты направильно понял что куда вставлять. Тебе нужно было то, что я тебе запостил, включително цикл For, вставить в цикл While. А так же считывание 15-ти байт с порта вставить в тот же цикл While и подключить выход VISA Read ко входу моего куска кода, ну вместо контрола String.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

не, это я просто для примера так сделал

у меня пока так
Вложения
5.jpg
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

VISA Close тебе надо быдет вынести в самый правый край, чтобы получилось так:

Конфигурация порта, начинается цикл while(в котором считывание с порта и цикл FOR), когда цикл заканчивается - порт закрываем.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

цикл for не очень удобно использовать, т.к. в зависимости от количества передаваемых байт нужно в ручную менять количество интераций, хотелось бы это дело автоматизировать

и еще в функции VISA read надо выставлять число считываемых байт, тоже бы хотелось это дело отдать программе чтоб не думать об этом
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

Тогда тебе надо просто напросто поменять протокол передачи данных (ввести байт синхронизации) и лучше передавать не три пакета враз, а один. То есть не 15 байт, а только 5.
А байт синхронизации тебе пригодится для поиска начала пакета.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

а как тогда в твоей программе RS232 Terminal реализован прием без ввода количества байт
у меня все прикрасно работало с любым количеством от 15 байт и выше?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

Дело в том, что мой терминал не должен делить данные на составные, т.е. всё что приходит, то и выдаётся на экран. Произошла ошибка или пришло 10 байт или 1 - всё равно. Ведь мне не надо просто показать данные. А тебе надо получить конкретное количество байт и преобразовать в цифры.
Понимаешь у тебя двоичный протокол, а у меня в терминале ASCII символы выдаются. Один ASCII символ всегда состоит из одного байта, a тебе надо показать 4 числа сразу, при этом последнее число состоит не из одного, а из двух байт. Если у тебя по дороге потеряется хоть один байт, то всё последующее пойдёт вкривь и вкось, как раз для этого нужна синхронизация, длина пакета (которая у тебя к счастью постоянная) и даже контрольная сумма.
Всё не так просто как выглядит. Так что обдумай хорошо что к чему и если есть вопросы, то задавай. Я эти двоичные протоколы как орехи щёлкаю.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

опустим пока синхронный режим.

хотелось бы разобраться с циклом while, почему при считывании, допустим, 15 байт, в этом цикле обрабатывются только 5, и потом опять переходит в режим считывания(Visa read)?

или во всем виноват асинхронный режим?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

До сих пор в своей практике не встречал синхронный режим считывания, честно сказать даже не очень знаю для чего он нужен в последовательных протоколах.

Выложи самый последний скрин твоей блоковой диаграммы, чтобы точно знать о чём ты говоришь.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

eg писал(а):До сих пор в своей практике не встречал синхронный режим считывания, честно сказать даже не очень знаю для чего он нужен в последовательных протоколах.

Выложи самый последний скрин твоей блоковой диаграммы, чтобы точно знать о чём ты говоришь.
не не, я говорил о режиме передаче, а не о считывании
сейчас мой МК запрограммирован передавать данные в Асинхронном режиме (без бита четности),
а синхронный режим подразумевает наличие дополнительного провода по которому идут импульсы синхронизации параллельно передаваемой информации.

Допустим я сделаю бит четности (или бит четности это другое), как изменится схема?

схему я пока оставил практически без изменений
Вложения
5.jpg
Последний раз редактировалось EvgenIg 16 сен 2008, 17:17, всего редактировалось 1 раз.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

Ни как она не изменится, просто само считывание по идее будет работать стабильнее. Но я не думаю что твоя проблема в этом заключается.
Аватара пользователя
EvgenIg
beginner
beginner
Сообщения: 40
Зарегистрирован: 22 авг 2008, 21:34
Версия LabVIEW: 8.5,2009
Откуда: Санкт-Петербург

Re: Atmega8 & LV

Сообщение EvgenIg »

мне не совсем понятно для чего этот байт синхронизации нужен
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Atmega8 & LV

Сообщение Eugen Graf »

Чтобы знать где находится начало пакета с данными. Представь, ты начинаешь считывать данные не с первого байта а например с третьего, то есть где то половину пакета. И что будет делать программа в этом случае?
Ответить

Вернуться в «Коммуникация с приборами»