Witam,
Jest to mój pierwszy post, więc postaram sie przedstawić. Nazywam się Marcel Rzepka, mam 15 lat. Od 4 lat ucze się programowąć w C, dla komputerów PC, a od roku dla mikrokontrolerów AVR.
Mój problem polega na tym, że program który ma odliczać n sekund. Zajmuje 100% procesora. Oczywiście jest to moja wina i błednego kodu, który cały czas sprawdza czas systemowy.
Z rozwiązań przychodzi mi na myśl funkcja sleep(), albo żeby dobrać sie do timerów procesora.
Z góry dziękuje za pomoc.
other019
KOD PROGRAMU:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int hours=0;
int minutes=0;
int seconds=0;
unsigned long long delay=0;
int main(int argc, char *argv[])
{
unsigned long long left=0;
int last_left=0;
/*
int hours_left=0;
int minutes_left=0;
int seconds_left=0;
*/
time_t start;
time_t curent;
time_t target;
start = time(NULL);
hours=atoi(argv[1]);
minutes=atoi(argv[2]);
seconds=atoi(argv[3]);
delay=seconds+(minutes*60)+(hours*3600);
target=start+delay;
do{
curent=time(NULL);
left=target-curent;
if(last_left!=left)
printf("pozostalo sekund:%d\n",left);
last_left=left;
}while(left!=0);
printf("%c",7);
return 0;
}