|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.04.2011, 22:29 | #11 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Спасибо за информацию, будет время протестирую. Думаю, здесь идёт речь о миллисекундах. Зато на всех машинах будет работать одинаково, наверное. Если поставить задержку 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. |
22.04.2011, 23:05 | #12 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ваша Delay имеет массу минусов.
1)для верной работы в мс нужно определять реальную частоту процесса, что в многозадачном окружении почти нереально(на 3 кольце) 2)по этой же причине очень не надежно засекание времени.(вас могут выкинуть с активности запросто, более приоритетный процесс) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
23.04.2011, 02:06 | #13 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,758
|
Цитата:
|
|
24.04.2011, 19:47 | #14 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Не... дорого. Хотя инструмент замечательный для отладки прямо на реальном микроконтроллере по шагам с возможностью изменения значений регистров, это здорово. Но у меня внутрисхемное программирование (ISP), напрямую через LPT порт и буферную микросхему (вот схема). Поэтому ничего другого применять не нужно, только этот программатор и программу прошивки.
Пепел Феникса, большое спасибо за предостережения. При реализации Delay() я их учту. Цитата:
Если для определения частоты придётся засекать время, то это плохо. Лучше иметь возможность одной командой узнавать значение частоты и так в течении промежутка времени и выбирать максимальную. Если меня выкинут во время чтения, записи или стирания - для меня это не критично, так как никакого сбоя не будет. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу найти ошибку,точнее как исправить!(Задание с файлами) | Ксения Вадимовна)) | Помощь студентам | 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 |