Реализовать таймер с заданным интервалом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Господа, прошу помочь в решении элементарного вопроса. Имею следующий код (таймер). Все норм, все работает. НО я хотел бы сделать некую задержку в процессе повторения цикла с помощью функции void wait(void), дабы часики мои работали медленнее. Но в этом деле мне мешают какие то мистические силы. Вроде должно работать, но не работает. Таймер бегает как сумасшедший. Буду очень благодарен, если подскажете ошибку. Спасибо.
#include <stdio.h>
#include <stdlib.h>
# define DEL 600000

struct str1
{
    int sec;
    int minut;
    int hour;

} time;
 
void wait(void)
 
{
    long int t;
    for (t=1;t<DEL;++t);
    
}
void timef(struct str1 *k)
{
 
    k->sec++;
    if (k->sec==60)
    {
        k->sec=0;
        k->minut++;
 
    }
 
    if (k->minut==60)
    {
        k->minut=0;
        k->hour++;
    }
 
}
 
void output( struct str1 *m)
{
    printf("%d: %d: %d\n", m->hour, m->minut, m->sec);
    system("cls");
}

int main(void)
{
 
    time.sec=0;
    time.minut=0;
    time.hour=0;
 
    for (;;)
    {
        wait();// по моим скромным предположениям, тут должна вызываться функция вейт для исполнния которой нужно некоторе время.
        timef(&time);
        output(&time);
    }
 
    return 0;
}

Решение задачи: «Реализовать таймер с заданным интервалом»

textual
Листинг программы
_CRTIMP void __cdecl wait(
   unsigned int _Milliseconds
);
//Pauses the current context for a specified amount of time
// Header: agents.h

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы