Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Keskeytykset C:llä

Sivun loppuun

Baglair [22.11.2005 20:56:18]

#

Tein tässä itselleni ajastimen ja nyt tahtoisin sen lopettavan itsensä suorituksen kun painaa jotain näppäintä näppäimistöstä. Eli miten toteutan hardware keskeytyksen?

Metabolix [23.11.2005 20:17:57]

#

Hakua saa käyttää. "Keskeytys" antaa tulokseksi esim. tämän: https://www.ohjelmointiputka.net/koodivinkit/24382-c-dos-näppäinhandlerit

Windowsissa ei tietenkään toimi, DOS tarvitaan.

Baglair [24.11.2005 19:19:38]

#

Auttaisiko jos antaisin lähdekoodin eli:

ajastin()
{
	int tunnit, minuutit, sekunnit, tulos;

	printf("Mistä laskenta aloitetaan?\n");
	printf("\nTunnit: ");
	scanf("%i", &tunnit);

	printf("\nMinuutit: ");
	scanf("%i", &minuutit);

	printf("\nSekunnit: ");
	scanf("%i", &sekunnit);

	if(sekunnit > 60)	{
		tulos = sekunnit / 60;
		floor(tulos);
		sekunnit = sekunnit - (tulos * 60);
		minuutit = tulos + minuutit;
	}

	if(minuutit > 60)	{
		tulos = minuutit / 60;
		floor(tulos);
		minuutit = minuutit - (tulos * 60);
		tunnit = tunnit + tulos;
	}
	printf("Ajastin alkaa ajasta %i h:%i min:%i s\n\n", tunnit, minuutit, sekunnit);

//Tästä alkaa itse ajastin
	for(tulos = sekunnit + (minuutit * 60) + (tunnit * 3600); tulos >= 0; --tulos)	{
		printf("%1d:%2d:%2d\t", tunnit, minuutit, sekunnit);

		if(sekunnit == 0)	{
			if(minuutit == 0)	{
				if(tunnit == 0)	{
					break;
				}
				--tunnit;
				minuutit = 60;
			}
				--minuutit;
				sekunnit = 60;
		}
		--sekunnit;

		fflush(stdout);
		sleep(1);
		printf("\r");
		fflush(stdout);
	}
	printf("\n");
	main();
}

Ja nyt haluaisin lisätä tähän keskeytyksen, jonka avulla ajastin keskeytyy kun painaa näppäintä näppäimistöstä vai onnistukko tämä ylipäätään keskeytyksillä? En ole itse vielä kovin kokenut koodari.

Käytän Linuxia

Baglair [28.11.2005 18:05:32]

#

Kyselisin vielä tästä, että osaakos kukaan?

Jaska [28.11.2005 18:16:09]

#

Olisin varmasti vastannut jos osaisin. En ole koskaan kuitenkaan tarvinnut kyseistä ominaisuutta, joten en ole opetellut. Mutta Internetistä löytyy varmasti näppäimistönkäsittelyä C-kielessä koskevia sivuja. Hakukoneella voit varmaankin löytää jonkun helppokäyttöisen esimerkkikoodin jota voit soveltaa.

phadej [29.11.2005 01:12:15]

#

(n)cursesin getch() ja nodelay,noecho,cbreak:
http://www.apmaths.uwo.ca/~xli/ncurses.html­#input

niin myöhästä että en jaksa itse penkoa ncursesia löytääkseen miten asia on siinä tehty.

tejeez [04.12.2005 18:51:09]

#

No öö, ehkä linuxissa ei kannata millään keskeytysvirityksillä alkaa tollasta tekemään.
Enpä kyllä tiedä miten sitten.

Baglair [04.12.2005 22:32:19]

#

Joops.. Eipä tämä paljon auttanut.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta