Автор работы: Пользователь скрыл имя, 12 Февраля 2011 в 19:27, курсовая работа
Изучить устройство и принцип работы системного таймера, а так же для демонстрации использовать самостоятельно разработанную программу.
//setvect(8,NewInt08);
//atexit(DeactivateTimer);
return 1;
}
void SetTimerFreq(unsigned freq)
{ SetTimer((unsigned)(1193181L/
void DeactivateTimer(void)
{ SetTimer(0); }
void printtime()
{
struct time t;
gettime(&t);
printf("The current time is: %2d:%02d:%02d.%02d\n",
t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
}
void rnd_set(int bound) {
outportb(0x43, 0xb6);
outportb(0x42, bound & 0x00ff);
outportb(0x42, (bound &0xff00) >> 8);
outportb(0x61, inp(0x61) | 1);
}
int rnd_get(void) {
int i;
outportb(0x43, 0x86);
i = inportb(0x42);
i = (inportb(0x42) << 8) + i;
return(i);
}
void tm_sound(int freq, int time)
{
int cnt, i;
outp(0x43, 0xb6);
cnt = 1193180L / freq;
outp(0x42, cnt & 0x00ff);
outp(0x42, (cnt &0xff00) >> 8);
outp(0x61, inp(0x61) | 3);
delay(time);
outp(0x61, inp(0x61) & 0xfc);
}
void main()
{
int i;
for(i=0 ;mary[i] != 0 ;i++)
tm_sound(
//printtime();
SetTimerFreq(182);
puts("Press any key for continue");
getch();
for(i=0 ;mary[i] != 0 ;i++)
tm_sound(
//delay(50000);
//printtime();
SetTimer(0);
puts("Press any key for continue");
getch();
int j;
printf("\nRandom number generator"
"\nPress any key"
"\n");
for(int k=0;k<10;k++) {
rnd_set(80);
getch();
j = rnd_get();
for(i=0; i < j; i++) putchar(219);
printf("\n");
}
puts("Thank you\n");
getch();
}
Заключение:
Таймеры важны для работы любой многозадачной системы по ряду причин. Среди многих других задач, они следят за временем суток и не позволяют одному процессу надолго занять ЦП.
Литература: