Dobrý večer, Jsem začínající prográmator a dostal jsem za úkol toto : Napište program pro změnu stavu LED tlačítky Tl1 až Tl3. Tl1 nuluje všechny LED, Tl2 zvýší číslo zobrazené pomocí LED o 1, Tl3 sníží číslo zobrazené pomocí LED o 1. Můj program nefunguje a nevím jak tam vložit to tlačítko pro reset . Budu rád za jakoukoliv radu
void main(void)
{
//inicializace Port B - vstup (tlacitka)
PORTB=0x00;
DDRB=0x00;
//inicializace Port D - vystup (LED diody)
PORTD=0x00;
DDRD=0xFF;
PORTD=0;
while(1)
{
if (PINB,0 == 0) c = c + 1; //pricteni 1
if (PINB,1 == 0) c = c - 1; //odecteni 1
if (PINB,2 == 0) c = c << 1; //bitovy posun o jeden bit doleva
if (PINB,3 == 0) c = c >> 1; //bitovy posun o jeden bit doprava
if (PINB,4 == 0) c = -c; //bitovy doplnek,jednickovy doplnek
if (PINB,5 == 0) c = 255; // nastaveni samych jednicek
if (PINB,6 == 0) c = 0; //nastaveni samych nul
PORTD = ~c; //0..LED sviti,1..LED nesviti
_delay_ms(100);
}
Máš za úkol kontrolovat tlačítka 1-3 a máš přesně dané úkoly, které tlačítko má co dělat. Tak mi celkem není jasné, proč v programu kontroluješ těch tlačítek 7 a jak jsi přišel na ty úžasný matematický úkoly, které ty ostatní tlačítka dělají …
Chce se to víc zamyslet. Pomůžeme Ti se nasměrovat, pomůžeme vyřešit dílčí problém, ale nebudeme tady řešit domácí úkoly - to by ses nic nenaučil.
KOntrolne otazky pre ostatnych, ten reset nemusi byt osetreny ? dufam ze na napajani procesora mas 100n + 10uF elektrolit. Ale ak ide o teoreticku ulohu tak je to jedno v reale to ljedno nebude.