Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
как организовать програмную задержку на С?
Отправлено
WACO
12 июля 2008 г. 21:18
Составить ответ
|
Вернуться на конференцию
Ответы
Ответ:
-
Vit
(13.07.2008 00:12:13
77.123.173.98
, 319 байт)
Только для 8-разрядного МК и 16-разрядного счетчика это звучит более зловеще >>
-
VasilyS
(13.07.2008 10:49:0
80.92.96.25
, 698 байт)
Насчёт "заново запустить таймер" это совсем не в кассу
-
Vit
(13.07.2008 12:45:35
77.123.173.98
, 491 байт)
Таймер всегда работает - поэтому я и ограничился комментарием. Но - тем хуж...{+}(+)
-
VasilyS
(13.07.2008 13:05:44
80.92.96.25
, 666 байт)
s_timer только для "удлиннения" таймера и должна переполняться - это её нормальный режим
-
Vit
(13.07.2008 13:12:31
77.123.173.98
, 158 байт)
Вот как у меня не работает отладочный пример на Линуксе >>
-
VasilyS
(13.07.2008 14:38:35
80.92.96.25
, 4303 байт)
Поставьте где положено volatile и не приплетайте линукс и компилятор.
-
Vit
(13.07.2008 17:31:35
77.123.173.98
, 848 байт)
При чем тут volatile в моем примере - не понял. Но поставил. Как и ожидал - не влияет. >>
-
VasilyS
(13.07.2008 20:23:6
80.92.96.25
, 856 байт)
Я нигде не связывал volatile с атомарностью. Не несите бред и отсебятину.
-
Vit
(13.07.2008 21:58:22
77.123.173.98
, 1014 байт)
Ответ:
-
Vit
(13.07.2008 22:01:51
77.123.173.98
, 133 байт)
Sleep(10);
-
quark
(12.07.2008 22:12:34
79.139.172.124
,
пустое
)
Смотря на чем sleep. А то можно и..
-
VasilyS
(12.07.2008 23:49:1
80.92.96.25
,
пустое
,
ссылка
)
какая фирма и для чего производит такие диваны? (украденоС)
-
Ациль Шифер
(13.07.2008 06:17:11
62.118.143.216
,
пустое
)
Ответ: к примеру на 10 мс...
-
WACO
(12.07.2008 21:20:42
77.122.134.19
,
пустое
)
delay_ms(скока нАда)
-
Kelvinson
(12.07.2008 21:56:15
85.141.191.55
,
пустое
,
ссылка
)
Несколько способов. Например подобрать NNN для цикла for(i=0;i<NNN;i=+) NOP; Или >>
-
VasilyS
(12.07.2008 21:24:10
80.92.96.25
, 96 байт)
боюсь что цикл на Си будет с точностью +- лапоть :))))
-
Aleksey75
(12.07.2008 21:27:53
85.192.189.119
,
пустое
)
ну вот и я о том же))))
-
WACO
(12.07.2008 21:29:10
77.122.134.19
,
пустое
)
Почему? С точностью до команды. Например цикл до 9999 мкс и НОПами добить в...{+}(+)
-
VasilyS
(12.07.2008 21:34:1
80.92.96.25
, 369 байт)
дык в том то и дело , неизвестно какой путь выберет компилер для реализации, а если проэкт оптимизирован по размеру? там вообще фигня выйдет.... если нужна точность - либо asm вставка , но имхо гораздо проще и точнее стандартная функция
-
Aleksey75
(12.07.2008 21:39:31
85.192.189.119
,
пустое
)
У Вас какойто секретный компилятор? Почему не хотите его назвать? Уже б давно дали совет.
-
VasilyS
(12.07.2008 21:42:41
80.92.96.25
,
пустое
)
У меня???? ХЕ.... Чичас сижу за ASMом, чему очень рад......:))))
-
Aleksey75
(12.07.2008 21:47:2
85.192.189.119
,
пустое
)
Уж чего чего, а задержки в сях никак не напрягали. Те же #asm NOP;......#endasm в том же Hi tech-C или _NOP() в том же IAR оптимизатором в игноре стояли.
-
Макаров
(12.07.2008 22:02:16
192.168.235.19,77.235.200.210
,
пустое
)
дык а я про что.... но факт что цикл здесь не рулит... :)))
-
Aleksey75
(12.07.2008 22:22:6
85.192.189.119
,
пустое
)
я тебе завидую))) сам бы асмом пользовался... но чета не могу въехать))) до этого малеха писал на пиках асмом... для цигнала он сложнее... времени разбираться нет
-
WACO
(12.07.2008 21:54:57
77.122.134.19
,
пустое
)
совсем не секретный))) не ожидал что так быстро ответите))) keil кристалл C8051F310
-
WACO
(12.07.2008 21:46:28
77.122.134.19
,
пустое
)
В кейле не работал, но вот что нарыл, может поможет. См. sleep, watch
-
VasilyS
(12.07.2008 22:09:35
80.92.96.25
,
пустое
,
ссылка
)
А почему не воспользоваться прерыванием от незадействованного таймера (с максимально выставленным прескайлером)? Довольно практично. Тикает и нихай :)
-
Макаров
(12.07.2008 21:57:50
192.168.235.19,77.235.200.210
,
пустое
)
не силён в 051 , но вход в прерывание тоже такты занимает, их получится точно просчитать?
-
Aleksey75
(12.07.2008 22:23:49
85.192.189.119
,
пустое
)
Из idle или powerdown'a можно. Для стандартного 8051 оно занимает от 38 до 86 периодов Fтакт
-
VasilyS
(12.07.2008 23:34:51
80.92.96.25
,
пустое
)
это высшая математика)))), хотелось бы более простой способ
-
WACO
(12.07.2008 22:00:40
77.122.134.19
,
пустое
)
к примеру так delay_ms(10);
-
Aleksey75
(12.07.2008 21:23:3
85.192.189.119
,
пустое
)
подобрать не подходит.. уже думал так сделать... а delay ms(10)... это как, стандартный оператор?
-
WACO
(12.07.2008 21:28:11
77.122.134.19
,
пустое
)
стандартная функция компилеров, глянь хелп на компилер , там обязательно есть.... просто у разных может отличатся написанием.
-
Aleksey75
(12.07.2008 21:30:44
85.192.189.119
,
пустое
)
спасибо, щас гляну
-
WACO
(12.07.2008 21:31:47
77.122.134.19
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 123:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru