Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2011, 22:29   #11
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Спасибо за информацию, будет время протестирую. Думаю, здесь идёт речь о миллисекундах. Зато на всех машинах будет работать одинаково, наверное. Если поставить задержку 1 мс (то бишь будет период_CLK = 1 мс), то вся Flash (ёмкость её равна 8192 байта) прочитается за 65536 мс (расчёт 1мс*8бит*8192). 66 секунд не так уж и много. А ведь можно подцепить ещё и внешнюю память, тогда общая ёмкость Flash будет равна 65536 байт, а время чтения будет равно 524288 мс (расчёт 1мс*8бит*65536) - это почти 9 минут!

Меня устроит задержка 10-100 мкс. НаименьшийПериодCLK = 1,3 мкс (ЧастотаМикроконтроллера/16 = 12/16 = 750 КГц, НаименьшийПериодCLK = 1/750 КГц = 1,3 мкс). При задержки 100 мкс Flash (8 КБайт) прочитается за 7 с (расчёт 100мкс*8бит*8192), а Flash (64 КБайт) - за 52 с (расчёт 100мкс*8бит*65536).

Мне приходила в голову идея получать частоту процессора компьютера программно, тогда функции Delay можно будет передавать три параметра: требуемую задержку в микросекундах, частоту процессора компьютера и введенную пользователем частоту кварца микроконтроллера. Попробую на досуге это реализовать. Сейчас я сделал частоту CLKа = 50 мкс, но это на старой не основной рабочей машине (там LPT работает, на моей основной машине не работает, почему то). На домашнем - пока не тестировал.

Последний раз редактировалось 8Observer8; 22.04.2011 в 22:50.
8Observer8 вне форума Ответить с цитированием
Старый 22.04.2011, 23:05   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ваша Delay имеет массу минусов.
1)для верной работы в мс нужно определять реальную частоту процесса, что в многозадачном окружении почти нереально(на 3 кольце)
2)по этой же причине очень не надежно засекание времени.(вас могут выкинуть с активности запросто, более приоритетный процесс)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.04.2011, 02:06   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Мне интересно самому. Тем более алгоритм программирования описан в datasheete и он не сложен.
Где я говорил: возьмите готовое? Я говорил про МП, кот. может обеспечить маленькую задержку.
p51x вне форума Ответить с цитированием
Старый 24.04.2011, 19:47   #14
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Может не зря фирмы делают JTAG отдельным модулем с МП на борту?..
Не... дорого. Хотя инструмент замечательный для отладки прямо на реальном микроконтроллере по шагам с возможностью изменения значений регистров, это здорово. Но у меня внутрисхемное программирование (ISP), напрямую через LPT порт и буферную микросхему (вот схема). Поэтому ничего другого применять не нужно, только этот программатор и программу прошивки.

Пепел Феникса, большое спасибо за предостережения. При реализации Delay() я их учту.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ваша Delay имеет массу минусов.
1)для верной работы в мс нужно определять реальную частоту процесса, что в многозадачном окружении почти нереально(на 3 кольце)
2)по этой же причине очень не надежно засекание времени.(вас могут выкинуть с активности запросто, более приоритетный процесс)
Мне достаточно будет определить максимальную частоту из полученных программно (правда ещё не смотрел "как") за некоторый промежуток времени. Главное, чтобы моя задержка, в итоге, была не меньше, чем 1,3 мкс, а лучше с запасом больше (на всякий случай), но не больше 100 мкс.

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

Если меня выкинут во время чтения, записи или стирания - для меня это не критично, так как никакого сбоя не будет.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу найти ошибку,точнее как исправить!(Задание с файлами) Ксения Вадимовна)) Помощь студентам 0 06.12.2010 22:39
пищалка, точнее ее прога my_sappho_story Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 16 05.12.2010 02:36
Какой метод точнее? Vredina90 Помощь студентам 2 21.10.2010 17:40
Как заменить sleep в потоке? чтобы получить задержку 5 мили Dasverd2010 Общие вопросы Delphi 13 07.09.2010 14:29
lnk, а точнее как узнать путь к exe. Zeraim Общие вопросы Delphi 4 25.07.2009 13:59