|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
[Am186ES] Копировать данные из ячейки памяти в txt файл постоянно с периодом 2 мс06.09.2022, 16:35. Показов 3233. Ответов 23
Метки нет (Все метки)
Добрый день.Есть микроконтроллер Am186ES Microcontroller в память по адресу (сегмент и смещение) 9000:0040 постоянно с периодичностью в 2 мс записываются данные с датчиков положения ротора, мне необходимо эти данные считывать постоянно в файл txt, чтобы потом проанализировать .Подскажите пожалуйста код программы на accembler ?С чего начинать?(Я новичок в программировании.).Происходить обработка прерывания IRQ 7 по линии INT 3 и после этого записываются данные в ячейки памяти.
0
|
|
| 06.09.2022, 16:35 | |
|
Ответы с готовыми решениями:
23
Как сохранить данные из dataGridView1 в txt файл и открывать данные из txt в программе без удаления имеющихся Копировать консоль в файл txt Как можно копировать себе на сайт, постоянно обновляемые данные с других сайтов, например с Avito |
|
4039 / 2651 / 582
Регистрация: 11.09.2009
Сообщений: 9,456
|
||
| 07.09.2022, 00:33 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 07.09.2022, 08:27 [ТС] | |
|
Добрый день.Из моего сообщения этого не следует(что в микроконтроллере существует файл txt).Я указал вот ,что (из 1-го сообщения ) мне необходимо эти данные считывать постоянно в файл txt, чтобы потом проанализировать (либо какой-то другой способ записи , чтобы данные можно было открыть и просмотреть.) Стоит плата CPU188-5MX Процессорная плата MicroPC, 1024 КБ ОЗУ, 8 каналов AI, 2 канала AO+R[48]C. Какой вопрос мне необходимо вам раскрыть , чтобы вам дать конкретный ответ?
0
|
|
|
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
|
|
| 07.09.2022, 10:28 | |
|
Начать с изучения архитектуры и системы команд микроконтроллера.
1
|
|
|
101 / 95 / 10
Регистрация: 31.08.2022
Сообщений: 1,014
|
|
| 07.09.2022, 10:50 | |
|
сразу в прерывании и пихайте в "файл"....
скорее всего запись на внешний носитель... если новичок, то даже с С обломаешься, не говоря уже об ASM эы. исходник то какой то есть?
0
|
|
|
Windows must die
|
||
| 07.09.2022, 11:00 | ||
|
Или таки USART хочешь? Или надо вообще на флешку писать в файл? Ты бы четко ТЗ для начала поставил. Ведь от этого сильно зависит то, насколько далеко тебя пошлют с желанием написать это на асме ☺ И да, ведь данные записываются не сами по себе, а исходя из уже готовой прошивки. Следовательно, тебе нужно модифицировать эту прошивку (все равно ты больше никак, по видимому, к памяти МК доступ не получишь). В общем, бесполезное занятие совершенно, т.к. с твоим уровнем знаний это невозможно.
1
|
||
|
4039 / 2651 / 582
Регистрация: 11.09.2009
Сообщений: 9,456
|
||
| 07.09.2022, 11:41 | ||
|
Для этого нужно передать всю документацию на имеющуюся систему, включая электрические схемы, чтобы понять, откуда, по каким каналам и в какой накопитель надо гнать данные, где он расположен и что собой представляет. Нужно знать формат данных (сколько байт на отсчёт), чтобы определить скорость потока. Нужно знать требования к длительности этой записи, которую надо "потом посмотреть", чтобы оценить, влезет ли она в предлагаемый накопитель. Ну и в процессе возникнет ещё масса вопросов "по мелочи". С вашей скоростью и качеством выдачи информации, такое обсуждение на форуме заняло бы несколько лет, поэтому эту тему никто серьёзно обсуждать не будет. Вариантов у вас немного. Или найдётся кто-то, у кого точно такая же система, и он скинет вам какой-то кусок кода, или может в "Фрилансе" вам смогут помочь. Но и там, только если вы в состоянии дать вменяемое ТЗ.
0
|
||
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 07.09.2022, 20:58 [ТС] | |
|
Есть исходники резидентных программ, которые работают в MS.DOS 6.22. Есть в файле СТС_5300.CPP фрагмент кода с прерыванием void interrupt far CTC_5300_IRQ (обработчик прерывания платы таймеров 5300) он там на протяжении 2 мс расписан код.К сожалению документы сбросить не смогу (меня могут к ответственности привлечь за это).Вот алгоритм прерывания IRQ 7 по линии INT 3 постараюсь сбросить.В этом файле пишутся данные sin A6
Счетчик секунд (*(pOutBuff+0x09)) OutBuff имеет адрес 9000:0020.Вот из этих ячеек и нужны данные SinA6 =(short int)(*(pAUXBuff+0xA6)); CosA7 =(short int)(*(pAUXBuff+0xA7)), SinA8 =(short int)(*(pAUXBuff+0xA8)); CosA9 =(short int)(*(pAUXBuff+0xA9))
0
|
|
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 07.09.2022, 21:02 [ТС] | |
|
Не всегда есть возможность предоставить ТЗ и сопутствующую документацию.Есть исходники резидентных программ, которые работают в MS.DOS 6.22. Есть в файле СТС_5300.CPP фрагмент кода с прерыванием void interrupt far CTC_5300_IRQ (обработчик прерывания платы таймеров 5300) он там на протяжении 2 мс расписан код.К сожалению документы сбросить не смогу (меня могут к ответственности привлечь за это).Вот алгоритм прерывания IRQ 7 по линии INT 3 постараюсь сбросить.В этом файле пишутся данные sin A6
Счетчик секунд (*(pOutBuff+0x09)) OutBuff имеет адрес 9000:0020.Вот из этих ячеек и нужны данные SinA6 =(short int)(*(pAUXBuff+0xA6)); CosA7 =(short int)(*(pAUXBuff+0xA7)), SinA8 =(short int)(*(pAUXBuff+0xA8)); CosA9 =(short int)(*(pAUXBuff+0xA9))
0
|
|
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 07.09.2022, 21:10 [ТС] | |
|
AuxBuff имеет адрес 9000:0040.
0
|
|
|
Модератор
|
|
| 07.09.2022, 23:29 | |
Сообщение было отмечено ValeryS как решение
Решение
Поиск по "CPU188-5MX" привёл к пониманию, что топикстартер работает с ПЛК Fastwell CPU188-5MX.
Никогда с ними не работал, только читал обзоры, что ПЛК работает с сильно модифицированным клоном DOS. Думаю, что нужно искать документацию по программированию у производителя - должны быть примеры, пояснительные материалы. А также, нужно читать старые учебники по программированию в DOS на ассемблере или C. Я бы порекомендовал: Зубков. Ассемблер для DOS, Windows и Linux Абель. Программирование на ассемблере. Фроловы. Серия книг "Системное программирование" Касаткин. Серия книг "Системное программирование" Кулаков. Программирование на аппаратном уровне Также, так называемый чипсет - содержащий таймеры, интерфейс и прочее - имеет прародителей из микропроцессорного комплекта кр580. Т.е. о конфигурировании именно таймера 8053 (или его клона) можно узнать из справочника Микропроцессоры и микропроцессорные комплекты интегральных микросхем, справочник, в 2 томах По поводу алгоритма - я бы попробовал сделать так: - по прерыванию таймера опрашивается датчик, измеренные показания сохраняются в первом массиве (буфере) - тем временем второй массив (буфер) передаётся операционной системе для записи в файл - когда первый массив заполнится, он отдаётся на запись в файл, а заполнение измерениями производится во второй массив. Сейчас винчестеры имеют собственный кэш и запись происходит довольно быстро. Да и размер буфера нужно выбирать кратный 512 байтам, а лучше посмотреть в свойствах винчестера размер кластера. Я бы не глядя взял размер 32 кБайта. Ну и количество отсчётов ограничил - 2 мс это 500 отсчётов в секунду - файл быстро преодолеет ограничение в 2 ГБайта на размер одиночного файла для DOS и файловой системы FAT32. Добавлено через 6 минут И ещё. Именно IBM PC не имел таймера с разрешением 2 мс - только около 55 мс. Можно было изменить настройки таймера 8053 для уменьшения до 2 мс, но именно этот таймер тактировал и работу с дисководами - после использования нужно было восстанавливать настройки. Это я к тому, что в классическом DOS для IBM PC нет решения исходной задачи. Добавлено через 19 минут Имеет смысл обратиться в техподдержку - могут прислать (а могут и не прислать) материалы по программированию - какие-то примеры, рекомендации по программированию и прочее. Могут посоветовать. Но перед обращением нужно уже понимать половину решения, иначе будет непонятно всё.
0
|
|
|
Windows must die
|
|
| 07.09.2022, 23:37 | |
|
Я подозреваю, что динозавра проще выкинуть и перейти на современные вещи. И в плане разработки это будет явно дешевле.
Вообще, ни в коем случае нельзя допускать эксплуатации железа, которое уже лет 10 (а то и больше), как вообще не поддерживается производителем и устарело как физически, так и морально. Как только изготовитель закончил поддержку, следует, пока не закончился ЗИП, начать реструктуризацию и модернизацию.
0
|
|
|
101 / 95 / 10
Регистрация: 31.08.2022
Сообщений: 1,014
|
||
| 08.09.2022, 09:45 | ||
|
2ms открываем файл... и сразу в прерывании тупо добавляем значение прямо в файл... можно счётчик завести... типа- больше 100к накидали.... закрываем этот файл, открываем следующий...
0
|
||
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 08.09.2022, 09:56 [ТС] | |
|
Добрый день.Да все верно это он и есть(ПЛК Fastwell CPU188-5MX.).Спасибо за информацию(ФедосеевПавел).По поводу "динозавра" от пользователя (Eddy_Em), да я согласен , что нужно обновлять, но бюджет под эту замену не выделят так как договор на проект по работам закрыт и на обслуживание тоже договор закрыт.По этому своими силами исправляем неисправности.
0
|
|
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 08.09.2022, 09:59 [ТС] | |
|
Выше выложил файлы *.CPP резидентных программ ниже алгоритм работы прерывания.
0
|
|
|
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
|
|
| 08.09.2022, 14:25 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
||
| 08.09.2022, 17:08 [ТС] | ||
|
По поводу "навесить клещи на контакты" как мне сообщил нашил радиоэлектрик, что подключались на разъемы на которые возможно везде -все в порядке.
Добавлено через 2 минуты
0
|
||
|
Модератор
|
|
| 09.09.2022, 22:55 | |
|
Andrew16363, мне просто любопытно - это учебное задание или на производстве вы решили из киповца эволюционировать в асушника?
Если речь об эволюции, то код по обработке прерывания не поможет в решении общей задачи, т.к. будет являться ещё одним бесполезным примером. Вот без шуток - вам нужны для изучения - описания этой платы с точки зрения программирования (я вчера находил их в сети по запросу названия платы) - книги с описанием аппаратного программирования (описания аппаратной части), например, книга Кулакова или Гука - книги по аппаратному программированию на Turbo C - книги Касаткина и Фроловых. Судя по описанию платы CPU188-5MX, она содержит другой чипсет, нежели персональные компьютеры, проверка программ на компьютерах просто невозможна. Да, сам процессор совместим с Intel 8086, состав чипсета похож, книги по программированию в DOS будут полезны. Но на этом всё и заканчивается. Т.к. Вы уже потратили время на изучение темы, ответьте на вопросы: - на чём можно эмулировать программу? - на сайте Fastwel уже нет поддержки этой платы, т.е. нет документации - что имеется у Вас? - что за примеры прикладываете? они рабочие? что за описание алгоритма в файле "IRQ7.docx"? - Вы уже обращались в техподдержку за документацией, за примерами? Что получили в ответ? - что уже изучено и сделано? какие промежуточные подзадачи решены? как решены?
0
|
|
| 09.09.2022, 23:55 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 32
|
|
| 10.09.2022, 10:03 [ТС] | |
|
1)Резидентные программы написаны на TURBО C++.
2) У меня есть DOSBOX на ней и делаю задачу при помощи TURBO C++. 3)Примеры рабочие это программы которые работают на Fastwell. 4)Описание алгоритма прерывания при срабатывании запроса на прерывание от датчиков положение ротора.То есть стоят датчики на вращающейся части поворотного устройства и они выдают углы поворота в градусах с отрицательным значение и с положительным значением. 5)По поводу техподдержки ее не оказывает это компания которая устанавливала так как это все устарело и они не поддерживают уже эту плату и предлагают переходить на современные технологии(такой возможности нет в данной ситуации). 6) Так как электрическая часть проверена, и ошибок не найдено, не мной(радиоэлектриком, подключали осцилограф вольтметр и так далее) то начальник решил проверить программную составляющую правильно ли выдают значения АЦП и ЦАП это первые задачи. 7) Для этих задач написать программы ,чтобы понять правильно срабатывает АЦП поручили мне. 8) Это производство оно реально работает каждый день. 9) Что я сделал, самое простое на TURBOC++ написал бесконечный цикл для считывания данных из ячеек памяти до 640кб только пока не тестировал.При помощи MK_FP создал дальний указатель для доступа к ячейкам памяти так как до 640кб в реальном режиме можно напрямую обращаться к ОЗУ через сегмент и смещение (как я понял).Все данные в этих ячейках - СЛОВО.Есть сегмент и смещение ячеек памяти в которые пишутся данные.Пока все. 10)IRQ 7 это и есть аппаратное прерывание от датчиков слева мкс в таблице все данные готовы через 2 мс вот это GetDPR(); // 1-е чтение ДПР есть такое же второе, вот это мне и нужно .Они записаваюся в ячейки в буфер с номерами элементов. Добавлено через 3 минуты Сам процессор вот такой на него была документация.
0
|
|
| 10.09.2022, 10:03 | |
|
Помогаю со студенческими работами здесь
20
Копировать файл и сохранить содержимое файла в .txt Данные в памяти программы постоянно меняются Переписать данные файла input.txt в файл output.txt, отсортировав их: Записать в выходной файл (txt) данные из исходного (txt) Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|