як затримка на мові C?

J

Jackwang

Guest
Я хочу, щоб написати код для реалізації тривалого часу (100 мс) затримка в C51 з мовою C, ви можете дати хороший рада?
 
Створення програмного забезпечення для створення циклу затримки в C в залежності від коду, компілятор зводиться к. Ви можете спробувати щось подібне для (я = 0, я
 
Я думаю, ви могли б використовувати АНМ команди в C, а потім використовувати NOP ... Я думаю, що буде створювати затримки, але її дуже мало, спробуйте цикл так, ви можете встановити бажаний затримки
 
Використовуйте таймер для генерації переривань для розгорнення і хочете вибрати. наприклад. 10 мс або 1 мс Потім за допомогою змінних, як програмного таймера. Initailise це належним чином (наприклад, затримка складає 100 мс 10 мс з базою часу, ініціалізувати його з 10), зменшуємо її на кожному переривання і на дорівнює 0, ур затримка закінчилася, і у можете зробити ур подальшої діяльності.
 
використовувати затримку () функцію "C". Я думаю, що затримка (1) 1nSec затримки, але перевірити на допомогу, і ви отримаєте відповідь.
 
Якщо ви використовуєте затримки через "за" петлі не забудьте поставити летючих для підрахунку змінної - в іншому випадку ваш код може бути видалений з оптимізації компіляторів.
 
Перш за все, мова йде як точний Ви затримка повинна бути? Якщо ні, то ви можете просто використовувати цикл і лише досвід роботи з методом проб і помилок, що цикл число повинно бути. Або ви можете вирахувати з АНМ відповідно до яких компілюється в C (код операції). Ви можете також використовувати функцію затримки, якщо ваша бібліотека підтримує його. У випадку, якщо вам потрібен дуже виправлення затримку часу, чим краще всього використовувати переривання таймера, як suryakant вже запропонували. Єдине, що я хотів би додати, що вам потрібно змінної (семафора) в subrpogram де затримка необхідна, і перевірити його значення в циклі. З переривання, коли час минув, ви зміните значення цього семафора. Таким чином, точність в межах 10-20 мкс (час, необхідний для входу в переривання таймера, decremenet SW лічильника, перевірте, дорівнює нулю, якщо так, то змінити семафорів і виходу з переривання + Чака семафорів в програмі). Belsugului Belsugului
 
Людина, що сидить поруч зі мною говорить, що це набагато краще використовувати збірку субкод для підрахунку часу. # Асемблерні код тимчасової затримки # endasm
 
пустота затримки (непідписаних Int K) {непідписаних Int я, тому що (я = 0, я
 
Моя подруга завжди використовуйте код збірки в C для створення затримки, функції затримки я думаю, що працює, тільки якщо ви включили time.h, якщо їм правильно. Команда NOP збірки затримає один такт, якщо їм правильно, або кількість тактів, так що це залежить від вашого генератора кількість NOP, щоб бути замкнуті.
 
привіт, я новачок в програмуванні в. В даний час я роблю програмування на сигнали послідовності, і мені потрібно наростити кожен сигналів на differernt раз. так, що можна використовувати для циклу для кожного сигналу затримки? 1 цикл одно, скільки другий? спасибі за відповідь.
 

Welcome to EDABoard.com

Sponsor

Back
Top