Intel 8051 - Hra s mouchou – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Intel 8051 - Hra s mouchou – Assembler – Fórum – Programujte.comIntel 8051 - Hra s mouchou – Assembler – Fórum – Programujte.com

 

mrkyk
~ Anonymní uživatel
7 příspěvků
25. 5. 2011   #1
-
0
-

Zdravím,

potřeboval bych pomoci s úkolem, nechci ho vypracovat, ale chci poradit jak na to.

Princip: Komponenty dle obrázku. Náhodně se rozsvítí jedna LED a úkolem hráče je stisknout příslušný přepínač dříve než LED zhasne. Na displeji 3x7 se zobrazuje skóre, pokud to hráč stihne zmáčknout včas = 1 bod, pokud neudělá nic = 0 bodů, pokud stiskne špatně = -1 bod.

Děkuji za případné rady.

Nahlásit jako SPAM
IP: 195.113.207.–
KIIV
~ Moderátor
+43
God of flame
25. 5. 2011   #2
-
0
-

nahodis timer, rosvitis nahodne jednu ledku (treba po 500ms nebo i rychleji)
nahodis druhej timer (po cca 1ms) a testujes stisky tlacitek (mozna i celej port), zaroven je to dost rychle na obnovovani 7seg na tretim a casti 4. portu

v hlavnim programu pak jen kempis (a nebo tam muzes presunout to obnovovani displaye)

(nejnarocnejsi je asi udelat v assembleru ten generator nahody .. ale taky by to slo nejak zprasit - rotacni buffer par xoru, nandu, ... )

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
RePRO0
Super člen
22. 6. 2011   #3
-
0
-

Zdravím, pokud pomůže, tak tady máš možný algoritmus (jak by se to asi řešilo v C - AVRGCC

 int static bod = 0; 

int diody[9] = { 0, 1, 2, 4, 8, 16, 32, 64, 128};

// PORTA... 7-seg (zobrazí výsledek)
// PORTB... tlačítka pro hru
// PORTC... diody pro hru (svítí v log. 0)

// čtení tlačítek pro HRU (bity 0-7)
// + ošetřené zákmity
unsigned char ctiTLAC_HRA() {

unsigned char a,b;
do {
a = (~PINB)&0b11111111;
_delay_ms(10);
b = (~PINB)&0b11111111;
}
while (a != b);

switch (a) {
case 0b00000001:
return '1';
case 0b00000010:
return '2';
case 0b00000100:
return '3';
case 0b00001000:
return '4';
case 0b00010000:
return '5';
case 0b00100000:
return '6';
case 0b01000000:
return '7';
case 0b10000000:
return '8';
default:
return '0';
}
}

unsigned char ctiDIODY_HRA() {

unsigned char a;
a = PINC;

switch (a) {
case 0b11111110:
return '1';
case 0b11111101:
return '2';
case 0b11111011:
return '3';
case 0b11110111:
return '4';
case 0b11101111:
return '5';
case 0b11011111:
return '6';
case 0b10111111:
return '7';
case 0b01111111:
return '8';
default:
return '0';
}
}

void vyhodnoceni() {
// algoritmus
/* 1. spustíš TIMER1 s příslušným nastavením
2. nahodíš náhodnou LED: PORTC = diody[rand()%8];
3. _delay_ms(1); spustíš TIMER2 s příslušným nastavením
4. if ((ctiDIODY_HRA() == ctiTLAC_HRA()) {
bod++;
}
else {
bod--;
}
5. PORTA = bod;
*/
}

int main() {
// výstup
DDRA = 255;
DDRC = 255;

while (1) {

vyhodnoceni();
}

return 0;
}

Nahlásit jako SPAM
IP: 83.240.104.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

Podobná vlákna

Programování intel 8051 — založil Klarushiik

Intel ISPC a C++ — založil lacika_dnb

Import csv - intel — založil Jan Cerny

CPU Intel Core2Duo — založil remmidemmi

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý