функція, яка виконує завдання кожні кілька секунд!

E

ericmar

Guest
Привіт всім,

Чи можу я знати, як писати незалежної функцією, яка робить деякі checkings кожні кілька секунд, не зачіпаючи або постраждалих від інших функцій?

У принципі, я просто хочу переконатися, що клієнтська програма в галузі програмного забезпечення наявності або відсутності, відправивши рядок і очікувані заданої рядки з нього протягом певного періоду часу!

Крім того, я Нч сумніви щодо строків у prgramming ПІК використанням Hightech C. Я використовую 4 МГц кварцовий з PIC16F877.Якщо я буду показувати таймер на 4-7 сегментів світлодіоди, як я можу переконатися, що таймер роботи точно, що не постраждали від функцій обробки в ПОС після запускається таймер?

Я дійсно ціную за будь-яку допомогу за умови!

З повагою,
Ерік

 
ericmar пише:... Як написати незалежної функцією, яка робить деякі checkings кожні кілька секунд, не зачіпаючи або постраждалих від інших функцій?

 
Краще всього, якщо ви програмуєте таймер (и), які змінюються в timerX переривати функції.Щось на зразок цього:

статичного летких непідписані символ Timer_10ms;

недійсним переривання ISR (недійсними)
(
якщо (TMR2IF)
(
якщо (Timer_10ms)
Timer_10ms -;
TMR2IF = FALSE;
)

Тепер ви можете налаштувати таймер всередині функції, і він буде автоматично декремента в проміжку часу, що був зазначений у вашому timerX переривання.

При необхідності виклику функції кожного X секунд використовувати аналогічний принцип при програмуванні функції зворотного виклику, який посилає наприклад рядок:

недійсним handle_timed_activities (недійсними)
(
якщо (! Modem_Timer)
(
Modem_Timer = XXXX
string_out ("Test")
)
)

Тепер все, що вам потрібно зробити, це знову встановити таймер на необхідний інтервал і закликаємо handle_timed_activities () всякий раз, коли вам нічого робити в функцію або основний.Ви також повинні відповідати процес, який буде отриманий, але я сподіваюся, що ви бачите, що принцип може бути використаний.

Крім того, намагайтеся тримати переривати звичайні як можна більш коротким і намагаємося не дзвонити всередині функції переривання звичайної це буде заблокувати основні звичайних занадто довго.

сподіваюся, це допоможе і найкращими побажаннямиУпс Regnum був швидше, ніж я<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Посмішка" border="0" />

 
C-Man пише:Упс Regnum був швидше, ніж я

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Посмішка" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top