Chtel bych se zeptat jestli nekde nedelam chybu:
tento program ma funkci zobraz kterou zobrazi na 7-segmentovku cislo od 0 - 19.
Program by mel zobrazit 0 pri zadnem vstupu na PORTUD0, 1 pri vstupu
[code]#include <avr/io.h>
void pockej(unsigned int num)
{
volatile unsigned int i,j;
for (j = 0; j < 10; j++)
for (i = 0; i < num; i++)
{} //nop; neboli no-operation
}
void zobraz(unsigned int i)
{
if (i < 10)
{
PORTD |= _BV(PD7);
PORTD |= _BV(PD6);
}
if (i > 9)
{
i = i - 10;
PORTD &= ~(_BV(PD7));
PORTD &= ~(_BV(PD6));
}
if (i == 0)
{
PORTB = 0b00001000;
}
if (i == 1)
{
PORTB = 0b01101110;
}
if (i == 2)
{
PORTB = 0b00010100;
}
if (i == 3)
{
PORTB = 0b01000100;
}
if (i == 4)
{
PORTB = 0b01100010;
}
if (i == 5)
{
PORTB = 0b01000001;
}
if (i == 6)
{
PORTB = 0b00000001;
}
if (i == 7)
{
PORTB = 0b01101100;
}
if (i == 8)
{
PORTB = 0b00000000;
}
if (i == 9)
{
PORTB = 0b01000000;
}
}
int main(void)
{
volatile unsigned int i;
DDRB = 0b11111111;
DDRD = 0b11111110;
while(1)
{
if ((PORTD && 0b00000001) == 0b00000001)
{
zobraz(1);
}
else
{
zobraz(0);
}
}
}
[/code]