Страница: 1 | 2 |
Вопрос: дополнение к проге
Добавлено: 03.11.10 20:56
Автор вопроса: Андрей
Здравствуйте, дорогие форумчане.
Обращаюсь к вам с такой просьбой.
Юзаю довольно продолжительное время самодельный синтезатор на LM7000 к радиостанции. Управляющее слово загоняю в ЛМ-ку через LPT-порт с помощью программки на VB5. Возникла необходимость для уменьшения шага настройки ввести в схему сдвиговый регистр на 74НС595. Для управления регистром нужно дополнить программу 8 битами. На ридиолюбительских форумах мне помочь не сумели (кому некогда, кого не интересует и т.д.). Да, и поскажите, как воткнуть в сообщение вложение или рисунок?
Андрей.
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #1
Добавлено: 03.11.10 22:30
рисунки выкладывай на imagebin.org, текст на pastebin.com, всё остальное на rghost.ru. Какой конкретно помощи просит мой тезка я пока не понял
Номер ответа: 2
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #2
Добавлено: 03.11.10 22:38
Есть исходник программы, есть над чем работать, хотя и написать наверное невелика премудрость.
LPT помоему всего 8ми битный, гдеж ещё восемь взять? Или я ошибаюсь?
Переключаться как-то флагом, прежде чем второй байт в порт гнать?
Заранее извиняюсь, кажется я много чего не понял и не додумал.
Номер ответа: 3
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #3
Добавлено: 03.11.10 22:40
когда писал, думал мой пост первым будет
Номер ответа: 4
Автор ответа:
Андрей
Вопросов: 1
Ответов: 10
Профиль | | #4
Добавлено: 03.11.10 22:59
Так, мужики, архив залил на rghost.ru. Вот ссылка: http://rghost.ru/3137674
Там схема самого девайса, листинг программы, ну, и сама прога.
Вот ещё цитата с форума автора схемы:
...Не понял, в чем у Вас затруднения? На входе LM-ки тот же сдвиговый регистр, что и 595-й... Единственное, фазы сигналов слегка разнятся, почему у меня и стоит пара инверторов... Ну и, поскольку у LM-ки нет внешнего выхода от последнего разряда, а у 595 есть, то 595 приходится ставить первым... Данные для LM-ки и для 595 в программе "готовятся" по-отдельности, а перед выводом "сшиваются" в единое "управляющее слово"...
Т.е. управляющая фраза заливается последовательно, но сначала включается "enable-нога" 595й и скармливаются восемь бит, потом эта упр. нога выключается и 595я остальные биты выпускает на входе QC чтобы они попали на вход Data LM7000, соответственно с включением Enable у LM?
Включенные, как на моей схеме 595 и LM-ка представляют собой "единый" сдвиговый регистр на 32 (если мне не изменяет мой склероз по поводу разрядности регистра LM-ки) разряда... И записываются в него эти 32 бита последовательно непрерывно, именно как в "единый" регистр...
Конец цитаты.
Коллеги, я в программировании пока валенок (наверное, это хронически). Управляющее слово для ЛМ-ки состоит из 24 бит, а для 595 - из 8 бит. Регистры в 595 и в ЛМ-ке включены последовательно. В итоге, нужно отправлять 32 бита, причём, когда регистр в 595 переполняется надо, чтобы бит для ЛМ увеличился. Не обязательно постоянно слать упр. слово в ЛМ. Она запоминает последнее введённое. В-общем, ребята, спрашивайте, что нужно. Я попытаюсь с меру сил объяснить, что мне надо.
Андрей.
Номер ответа: 5
Автор ответа:
Андрей
Вопросов: 1
Ответов: 10
Профиль | | #5
Добавлено: 03.11.10 23:25
Вот ещё вариант подключения и прога управления битами LPT. Ссылка: http://rghost.ru/3138264
Номер ответа: 6
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #6
Добавлено: 03.11.10 23:53
В базе в аксе формы и таблица, наворочено немало.
Хитро конечно, можно подпилить если что, но ябы всётаки создал ЕХЕшник.
Жаль мозг по привычке спать хочет. Сейчас влом разбираться в этих дебрях.
Может у твоего тёзки Winand'a другое расписание.
Номер ответа: 7
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #7
Добавлено: 04.11.10 00:29
Smith, не.. я спать) тем более я все еще не понял, в чем суть вопроса. Последовательно передать не 24, а 32 бита? и что?
С lpt работал 2 раза. Мигал диодами и подключал джойстик NES. кстати с помощью либы inpout, прикольная штука - под Win7x64 заработала
з.ы. Resume WriteLPT_Exit какой смысл в этой строчке, если после метки WriteLPT_Exit все равно exit Function стоит? и почему код программы В ВОРДЕ
Номер ответа: 8
Автор ответа:
Андрей
Вопросов: 1
Ответов: 10
Профиль | | #8
Добавлено: 04.11.10 00:29
С формами и таблицами я разберусь. В самой проге много ненужного, после окончательной доводки - лишнее уберётся и можно будет сделать ЕХЕ-шник. Главное - листинг. Биты для 595 нужно двигать вперёд-назад (можно кнопочками, или левой-правой кнопками мыши, или колёсиком мышки). Видится пока всё так: установки, как в оригинале проги, я там сделал кнопки "ШАГ" вверх-вниз по частоте, когда регистр в 595 по нулям, шаг должен уменьшиться, когда регистр в единицах - то увеличиться. Причём не надо, чтобы было 255 шагов в 595 регистре; достаточно от 50 до 100 (а ещё лучше, если можно будет выбрать).
Номер ответа: 9
Автор ответа:
Андрей
Вопросов: 1
Ответов: 10
Профиль | | #9
Добавлено: 04.11.10 01:20
Листинг программы в Ворде я делал для себя, чтобы смотреть удобнее было коды. Запустите программу. Там Access покажет коды в Visual Basic. Нужно иметь возможность перебирать 8 бит для 595 вверх-вниз. Для чего всё это надо? Без регистра синтезатор работает с шагом 1,1-1,3 кГц (зависит от коэф. деления). Для работы цифрой в эфире этого хватало, но потом появилась задумка сделать меньше шаг с помощью регистра на 595. Этот шаг будет: 1,1 кГц/50=22 Гц - это уже шаг, пригодный для настройки в SSB.
Программу я не писал, мне её прислали, как инструмент для управления LM7000. Тем более в VB я профан. Лет 25 назад знал просто Бейсик на ZX-Spectrume. В VB моих знаний хватило только на создание кнопочек "ШАГ", ну и двух строчек для управления этими кнопками. Так, что уж помогите. На полпути не хочется останавливаться.
Номер ответа: 10
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #10
Добавлено: 04.11.10 17:47
да, в основном вопрос на радио форумы типо radiokot.ru, но может кто то и поможет с прогой, я лично пока вчитываюсь. кст, мне на радио коту даже по эмулятору домофонных ключей помогли.
Номер ответа: 11
Автор ответа:
Андрей
Вопросов: 1
Ответов: 10
Профиль | | #11
Добавлено: 04.11.10 21:34
Как мне сдаётся, основная часть по пересылке битов - это листинг LPT.
Ну, а сам ход работы по засылке битов такой (может не профессионально буду изъяняться, извините):
1. Послать сигнал, разрешающий запись битов.
2. Послать 32 бита (8 - для 595 регистра и 24 - для LM7000).
3. В дальнейшем можно посылать только 8 битов для 595 регистра, до тех пор, пока этот регистр не переполнится или не обнулится. Тогда нужно снова слать 32 бита.
В принципе, можно попробовать постоянно слать 32 бита. Посмотреть какое будет качество сигнала на выходе.
По окончании пересылки вроде нужно дать сигнал на защелкивание регистра.
Я уже и не знаю, куда обратиться. Если здесь не помогут, придётся идти к коту в его мурландию. И ещё хотел спросить: "А в VB 5-ой версии можно ехе-шник сделать?"
Номер ответа: 12
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #12
Добавлено: 04.11.10 22:44
Пятой версии? Это брутально юзай портабл шестой http://narod.ru/disk/15500244000/Portable_Visual_Basic_6.7z.html File->Make project.exe
В чем проблема-то, блин? В WriteLPT пишется в порт 0, затем 48 раз записываются данные (т.е. каждый бит дважды), потом пишется еще один 0.
Данные записываются так: 3й бит выставляется поочередно то в 0 то в 1; если нужно записать ноль, то первые два бита принимают вид 01, а если единицу, то 11. Ну и собственно все нули/единицы пишутся дважды с 3м битом в 0 и 1.
Поправь эту функцию, чтобы писались 32 бита и всё. Кстати сравнивать asd(fgh) = "0" некорректно (хотя мб в VBA так можно?), потому что "0" - это текст, а в массиве asd числа. Кавычки убери.
Номер ответа: 13
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #13
Добавлено: 04.11.10 22:56
в 6 можно закачать библиотеки для низкоуровневого управления портом, pcports.ru, в моей теме гдето на форуме было про ЛПТ и Ком...
Номер ответа: 14
Автор ответа:
Андрей
Вопросов: 1
Ответов: 10
Профиль | | #14
Добавлено: 05.11.10 00:45
Ну, вы даёте, господа. Я ж не программист, да и пятый десяток мне идёт. Не было в молодости у нас VB. Я для этого и листинг нарисовал, чтобы мне, тупому, сказали:"Мол, вот здесь надо сделать так-то,а вот здесь так".
В листинге LPT нужно просто увеличить цикл, где 24 на 32; а где было 49 - на 65?
В листинге Form_LM700x: ввести 8 переменных, дополнить ими SendField_24...31?
Я так рассуждаю?
Номер ответа: 15
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #15
Добавлено: 05.11.10 01:47
По-моему, всё именно так. В случае, если задача - отправить дополнительные 8 бит.