Например TDA7294

Форум РадиоКот • Просмотр темы - Котуинко
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт мар 05, 2026 17:14:13

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2383 ]     ... , , , 40, , , ...  
Автор Сообщение
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт дек 24, 2019 14:18:56 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
ОК. Выложите код который используете в QB для доступа к COM порту.


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт дек 24, 2019 15:54:46 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Как я уже выше (до бурного обсуждения яиц") писал:
"В неспешных планах - доработать консольку к базовой котуинке и программатору для ат89сх051...
:sleep:
..."
вот будет готово - выложу.
Пока стадия проверок/тренировок/оценки чего и куда можно использовать.
Возможно и не понравится/чего-то не устроит - это ж мои "хотелки" - спешить некуда!
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт дек 24, 2019 16:11:17 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
Я не пишу о законченной программе, а только о работе с COM портом, т. е. его открытие, прием и передача данных. Или у вас нет никаких наработок (например из других программ)?


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 12:16:56 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Есть.
Но того, чего моим хотелкам надобно пока не совсем получается - мутим воду в ступе (нет достаточного описания по нужным моментам - приходится пробным тыком).
У МК можно с СОМ портом (UART) аки пожелается работать.
А вот ЯВУ обычно через функции/библиотеки - их то и долбимсс...
Да еще "побочные эфекты" по разнице ввода с клавиатуры, русификаторам и прочим мелкопакостям разницы ХР и DOS-Win98.
:twisted:


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 12:21:30 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2122
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18482
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
BOB51 писал(а):
А вот ЯВУ обычно через функции/библиотеки - их то и долбимсс...
если смириться с тем, что настройку COM-порта делать через свойства драйвера в диспетчере устройств, то на уровне ЯВУ работа с COM-портом в самом простом случае ничем не отличается от работы с файлом: открываете файл "COM1", и пишите-читаете его, потом закрываете (можно и не закрывать - по завершению программы ОС сама все позакрывает).

единственное, к чему надо быть готовым при таком подходе, так это в к тому, что если МК на комп не послал данные, попытка чтения из такого "файла" начнется, но не кончится - будет ждать данных. если МК так и не пришлет ничего, задачу придется снимать диспетчером задач.

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

Мой уютный бложик... заходите!


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 12:27:17 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Там больше гвоздь не в настройках, а в "непечатаемом обрамлении"...
0х0D - 0x0A и когда оные заблаговолят добавится в каждом конкретном случае.
8)
Вобчемс потихоху проверяю "границы дозволенного" да как и куда их применить.
:write:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 12:31:37 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2122
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18482
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
если бы вы говорили нормальным языком, я мог бы попробовать вам помочь. а так - только сочувствую.

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

Мой уютный бложик... заходите!


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 13:04:50 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Дык нормально все - "идет плановый процесс" садизма над прожками.
8)
Собственно считать - принять - переслать - записать *.hex файлик.
Так чтоб корректно во всех случаях (из возможных) было.
:write:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 13:24:59 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
ARV писал(а):
если смириться с тем, что настройку COM-порта делать через свойства драйвера в диспетчере устройств
Если не обратили внимание BOB51 собирается писать на QB т. е. бейсике для DOS. А в нем кроме прямого доступа к порту вроде нет другого способа работы (даже если в QB есть функции работы с портом, в конечном счете они используют прямой доступ, т. е. в DOS драйверов порта не было). Так что настройки диспетчера устройств не имеют значения.

ARV писал(а):
единственное, к чему надо быть готовым при таком подходе, так это в к тому, что если МК на комп не послал данные, попытка чтения из такого "файла" начнется, но не кончится - будет ждать данных.
Перед чтением можно проверить есть ли данные в буфере приема порта.


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср дек 25, 2019 13:30:52 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2122
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18482
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Мурик писал(а):
вроде нет другого способа работы
я не говорю о работе с портом, я говорю о работе с файлом. правда, с COM-портами в DOS-е не работал, но вот "файл" LPT1 открывался на ура, и печатал все отлично. может, так и есть какие-то тонкости, но на уровне файлов должно и с COM-портами работать, имхо.

Мурик писал(а):
Перед чтением можно проверить есть ли данные в буфере приема порта
можно, но я говорил о самом примитивном варианте работы с ним.

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

Мой уютный бложик... заходите!


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт дек 26, 2019 10:17:00 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Как раз qbasic использует функционал DOS при работе с СОМ портом (особо туда лезть не требуется), который вполне поддерживаем при работе с ХР. Относительно LPT по непосредственному адресу там возможен только прямой ввод/вывод в/из регистра данных, а доступ к управляющим регистрам по прямому адресу ХР блокирует, что и привело в недалеком прошлом к прекращению работы со старыми самодельными программаторами. Там у меня обмен шел частично через служебный регистр LPT непосредственным "программным ногодрыгом". А вывод в LPT как в файл ессно на сегодня уже особого интереса не представляет.
Гораздо более перспективно с точки обмена с всяко-внешней безделицей использовать СОМ (или USB-COM на соответствующих номерах, поддерживаемых старовасиками - СОМ1, СОМ2).
Посему за основу и взяты работа с текстовыми файлами (частность формат intel hex8 он же и как простой *.txt может быть записан) и с СОМ портом как с файлом random доступа.
Вполне себе приятненькая штука, учитывая что в КОТУИНКе (и в программаторе для АТ89Сх051 на ее основе) для обмена и управления используются именно *.hex файлики.
Одначе там и просто непосредственные ASCII сторки информационных сообщений через СОМ перегоняются.
:roll:
Относительно простых строк - проблем вообще никаких нету.
А вот с точным преобразованием *.hex блоков кой - чего таки пришлось помудрить из-за неполной информации.
Смысл перебросок -
чтение с диска и пересылка через СОМ на устройство
и
прием с устройства и запись в ранее заготовленный пустой шаблон *.txt...
В основном проблемы в выборе INPUT# или LINE INPUT#, разных опциях самого СОМ как файла при открытии и поведении "непечатаемых символов" обрамления - 0x0D, 0x0A, 0x1A при записи/чтении данных в/из целевого файла на диске.
Ибо мудрить с добавлением 0x1A в готовые файлы есть некошерно, а "задвоение" 0x0A порой весьма на нерву действует.
Вобчемс... разобрался и с этим.
:hunger:
Благо тестировка особо проблем не представляет - открываем обыкновенный terminal на СОМ1 и собственно васик на СОМ2 да гоняем заранее известные файлики туда-сюда пока необходимый результат не получим.
Из аппаратной добавки - простейший перекрестный кабель (нуль-модемный) с минимальным набором сигнальных линий - используются только RxD, TxD и "земляной" (прицел на радиоканал).
Из дополнительных средств анализа - hieW6.86 - дабы наблюдать те "непечатные" в исходном и конечном файликах.
:hunger:
Теперь все расписать по конспектам да добавить всякоудобств, контроля и прочего интерфейсу для результирующей консольки програмаматора...
:write:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт дек 26, 2019 13:58:06 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
BOB51 писал(а):
А вот с точным преобразованием *.hex блоков кой - чего таки пришлось помудрить из-за неполной информации.
https://ru.wikipedia.org/wiki/Intel_HEX


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт дек 26, 2019 14:03:22 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
МУРИК
речь не о формате *.hex файла и его интерпретации!
:tea:
Там просто не всегда "непечатные" на свои места в нужном количестве попасть могут -
зависит от применяемых команд и настроек СОМ порта.
Информация как раз о специфике команд маловата была.
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт дек 26, 2019 15:14:57 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
В вики написан формат данных в файле. Разобрать его или собрать не представляет сложностей.
Передавать данные hex файла в МК и в нем разбирать обычно не имеет смысла. Проще разобрать на компе, а через порт отправить бинарные данные.


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт дек 26, 2019 16:08:30 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Еще раз повторяю -
источником проблем являются
не сами данные, а "непечатные символы" обрамления символьной строки данных.
Эти байтики в обычном режиме просмотра НЕ ВИДНЫ, однако весьма коварно себя проявляют.
ЛЮБАЯ строка intel hex файла стандартно имеет два завершающих символа ASCII
0x0D и 0x0A (CR,LF)
однако если при промежуточной обработке чего-то из них или исчезнет или
удвоится - нормального результата можно не ожидать.
Чаще всего вариант
......0x0D 0x0A 0x0A вместо
......0x0D 0x0A
как следствие - к примеру строка завершения файла:
.....
:00000001FF
может внезапно оказаться на байт длиннее -
хотим контролировать 9-й байт (1 в случае конца файла):
m$ = MID$(B$, 9, 1) не сработает - по факту при "задвоении 0x0A" в m$ попадет значение 0 от 8-го байта
причем не факт, что подобное "задвоение" будет с первого раза обнаружено - в первой строке обрабатываемого файла
(считали, через СОМ переслали и записываем) такой скрытый подарочек может проявится только при обработке второго файла из нескольких последовательно пересылаемых.
или внезапно в записанном на диск файле при его открытии стандартным редактором вместо слитно следующих строк
появится "черезполосица" которую уже дальше по назначению использовать без редактирования вручную будет затруднительно.
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт дек 26, 2019 17:53:27 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
Задача легко решается.
Код:
s$ = "1234"+Chr($0C)+Chr($0A)+Chr($0A)+Chr($0A)+
     "5678"+Chr($0A)+
     "0000"+Chr($0C)+
     "4321"+Chr($0A)+Chr($0C) ; Такая вот строка.

ReplaceString(s$, Chr($0C), Chr($0A), #PB_String_InPlace) ; Замена в исходной строке 0x0C на 0x0A.
s$ = ReplaceString(s$, Chr($0A)+Chr($0A), Chr($0A))       ; Замена двух следующих друг за другом 0x0A на один.
Count = CountString(s$, Chr($0A))                         ; Узнаем сколько 0x0A в строке.

Debug "Count = "+Count
Debug " ---- "

For i = 1 To Count
  str$ = Trim(StringField(s$, i, Chr($0A)))
  If str$ <> ""
    Debug str$
  EndIf
Next

СпойлерИзображение
Вложение:
Строки.png [30.16 KiB]
Скачиваний: 57


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт дек 27, 2019 10:51:01 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Снова не то!
8)
Стандартно файл имеет или запись заданного размера.... (что для строки *.hex файла неприемлемо ибо они могут быть переменной длины) или надо использовать INPUT#/LINE INPUT# с последующим PRINT# одной и той же строки.
Зачем собственно вникать в СОЗДАНИЕ или РЕДАКТИРОВАНИЕ заранее сделанного содержимого на уровне программы транзитной пересылки (кроме проверок контрольной суммы да ошибок обмена в максимальном варианте)?.
Нужно всего-то УЖЕ ГОТОВЫЕ *.hex блоки перегонять, да простые информационные строки для вывода в окошко консоли сообщений.
Только тут малость разница - строка сообщения это LINE INPUT#, а для *.hex записи более корректно INPUT# (относительно файла на диске или СОМ порта как файла режима RANDOM).
Это при одной и той же конфигурации СОМ порта.
Изготовление самих *.hex делается в других программах/устройствах.
А вот СОВМЕСТИМОСТЬ результата для использования в иных программаторах (содержимое скачанное из ПЗУ МК) обязана присутствовать. Т.е. корректно созданный во внешнем устройстве (или считанный с диска) *.hex файл должен пройти передачу через СОМ порт и также корректно далее быть записанным на диск.
Да и как писалось выше ПРОБЛЕМА уже УСПЕШНО РЕШЕНА.
А долизывать и восстанавливать старую консольку - то уже по мере желания и времени.
Всеж - таки НОВОГОД!
:beer:


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт дек 27, 2019 13:23:46 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
BOB51 писал(а):
Снова не то!
Тогда что подразумевали под этим?
BOB51 писал(а):
ЛЮБАЯ строка intel hex файла стандартно имеет два завершающих символа ASCII 0x0D и 0x0A (CR,LF) однако если при промежуточной обработке чего-то из них или исчезнет или удвоится - нормального результата можно не ожидать. Чаще всего вариант...... 0x0D 0x0A 0x0A вместо...... 0x0D 0x0A

Мне неоднократно приходилось разбирать hex файлы и создавать их и не возникало описанных проблем.


Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт дек 27, 2019 14:45:57 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15496
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Вопрос именно в пересылке - какая настройка СОМ порта и какие команды использовать.
Это не создание файла средствами программы, а пересылка уже готовых между потребителями.
Ведь читаем строку символов ВСЮ. ее же и отсылаем.
Причем с дисковыми файлами проще - один как input, другой как output - а вот СОМ предпочтительно random...
Строка читается из одного и пишется в другой (не анализируется и не пересобирается).
Причем во всех случаях присутствует СОМ (или как источник или как приемник), а не файл-файл на диске.
:roll:
Ежли б тот 0х0А, добавленный в конец там и оставался после пересылки - то вероятно быстрее бы внимание обращено было.
А тут ошибка проявляется по - хитрому - добавленный 0х0А цепляется к началу следующей строки.
Пока вспомнил все давно позабытое, да чего и не знал...
8)
Ну да то еще не все "мелконюансы" - ведь база QBasic (1.0/4.5/7.1) таки для 98-й в лучшем случае была сделана.
дополнительно вылез нюанс по вводу с клавиатуры:
n$=INKEY$ при запуске под ХР не выполняется
вместо него приходится цеплять
n$ = INPUT$(1)
какие-то отличия в обработке клавиатуры...
:dont_know:
Вероятно ещё чего-нибудь по ходу вылезет - не даром же матюк от мелкософта при запуске
"ОЙ!!! НЕ ТА СИСТЕМА!!! Я ТОЛЬКО ПОД ДОС АРБАЙТЕН БЕЗ МОЗГОТРЕПА!!!"
:twisted:
Хотя родную DOS от ХР таки признают ВСЕ васики.
Было сомнение - сможет ли пройти запись файла на NTFS диск - пишут те васики без проблем.
:beer:


Последний раз редактировалось BOB51 Пт дек 27, 2019 22:00:22, всего редактировалось 1 раз.

Вернуться наверх
 
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт дек 27, 2019 16:11:35 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3383
Рейтинг сообщения: 0
BOB51 писал(а):
Ведь читаем строку символов ВСЮ. ее же и отсылаем.
Проще на компе преобразовать hex в bin и отослать через порт. Все равно это нужно сделать.

BOB51 писал(а):
Причем с дисковыми файлами проще - один как input, другой как output - а вот СОМ предпочтительно random...
COM это последовательный порт. Какой random доступ хотите получить?

BOB51 писал(а):
Строка читается из одного и пишется в другой (не анализируется и не пересобирается).
Еще скажите что в МК зашивается hex как есть без преобразования в bin?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2383 ]     ... , , , 40, , , ...  

Часовой пояс: UTC + 3 часа


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y