http://forum.ixbt.com/topic.cgi?id=26:38128 А нельзя ли определить тактовую частоту процессора и вычислить константу задержки для цикла? Будет занимать процессорное время, но это проще. При записи мс все равно смотришь только на процесс записи.
WindowsФормат файла: PDF/Adobe Acrobat - В виде HTML рует» аппаратные прерывания от ядра. Windows NT. RTX предоставляет для. системы таймер реального времени с. разрешением 1 мкс. С таймером могут ... www.cta.ru/cms/f/326683.pdf - Похожие страницы
1. я про RTX почитал, но где взять это расширение? и если и взять, то как потом им хвастаться? 2. в том-то и дело, что число циклов не постоянное, т.е. зависит от того, сколько система выделила времени на поток. например, идет в основном примерно по 20000, а раз в 5-10 тестов проскакивает 8000-10000. я испытывал на своем таймере 50 мс с целью узнать - есть ли резерв для надежного срабатывания при задержке потока за счет каких-то других системных процессов. другое дело, что я думаю, что случайное удлинение программирующего импульса на несколько "0.1 мс" не очень смертельно мне кажется, что внешний генератор - самый надежный способ. просто пока лень генератор делать
проверил на железе - рф5 читает идентично с моей прогой. спаял на неделе генератор на 1006ви1, но еще не проверял (отвлекался на шашлыки)
вопщем, потестировал: период 100 мкс требует в среднем 25 циклов, иногда проскакивает до 50, иногда (редко) до 18. с одной стороны скорость нормальная - погрешность в пределах 5%, но с другой стороны - это пень 4 3ГГц, т.е. для значительно более слабых машин этот вариант не подойдёт (по крайней мере из-под ХР/2К)... возможно, на них придется писать из-под дос, либо писать хитрожoпый драйвер, либо использовать другую схему с другой программой. ну, и еще сам период нужно уточнить (частотомера у меня нет), хотя мне кажется, что не так важна его длительность, как их одинаковость.
shoo Все это экспириенс. Есть программа для Виллем, есть программы для др. программаторов и там все решается просто. Может ковырнем прогу от Виллема. Дорпустим, переименовать еXe-файл softice перед перед отладкой и записать всю распакованную прогу из памяти? PS Буду искать готовый код для определения частоты процессора.
ну, для меня это как охота - одни охотятся, чтоб семью кормить, а другие - чтоб по бутылкам пострелять 1.меня эта схема пока устраивает, тк и дома, и на работе есть п4 3 ГГц. 2.для таких пк (и других, возможно до 1 ГГц) можно смело писать тупую прогу, которая синхрится от генератора на плате. 3.эта синхронизация нужна только для записи 27...., которые не у всех и есть - для флешек она не нужна. 4.для древних пк выходы: а)написать под дос б)написать драйвер - влезть в синхронизацию ядра в)сделать больше задержку: не 0.1 мс, а 0.5 или даже 1мс: думаю, пзуху это убить не должно, некоторые и пишутся импульсами 1 мс г)попробовать под 9х - возможно, скорость доступа будет выше (есть inpout32.dll и под 9х) 5.лучший вариант, как я понял, это контроллер на борту программатора, но у меня нет стимула такой придумывать, тем более что такие уже есть. 6.главная проблема - флэшки 3.3 В. от 6 вольт ттлш работает, а вот от 3.3 в - не знаю, возможно, нужно будет на кмоп делать. так что, если повторишь схему и напишешь свою прогу - я возражать не буду абсолютно.
"Буду искать готовый код для определения частоты процессора." Собственно, это ничего не даст, тк запись происходит через дллку, а на это уходит до 1мсек/байт. (8*1024байт за 7сек, 7сек/(8*1024)~0.001сек У меня Win98 установлена, исходники библиоте есть на с++ и прямое обращение под Win98 встречается.
Знаю, что повторяюсь, но у меня лежит печатная платка переходника для Виллема - там транзисторный преобразователь напряжения и "сокет под биосы".
не понял... время выставления данных и адреса нас не интересует. нас интересует только длительность программирующего импульса. если я за 0.1 мс произвожу 25 считываний через эту же длл, то почему запись байта будет 1мс? включение программирующего импульса - 4 записи, выключение - тоже 4. то есть, главное, чтобы за 4 обращения не успела смениться фаза на генераторе. + конечно, желательно иметь запас. за 7 секунд я считываю 27512 - 64 кБ. это на каждый байт 14 записей + 2 чтения + 4 записи на каждые 256 байт (старший байт адреса) + запись массива на диск: через 7 секунд после нажатия кнопки в эксплорере появляется файл.
На сайте лежат все платы в свободном доступе вместе со схемами, ссылки на 1стр темы. Интересно, а что будет, если фаза генератора изменится?
А если использовать вход и выход в критическую секцию для синхронизации? Я это встретил в WTL и если правильно понял, то используется для запрета внешних прерываний при выполнении критического кода. Critical section objects provide synchronization similar to that provided by mutex objects, except that critical section objects can be used only by the threads of a single process. ... A thread uses the EnterCriticalSection or TryEnterCriticalSection function to request ownership of a critical section. It uses the LeaveCriticalSection function to release ownership of a critical section.
ok это значит, что как минимум задержка будет больше 0.1 мс, а как максимум будет пропущен период (+0.2 мс) интересно, попробую