Zdravím Všechy,
Mám ATmegu8, používám interní 1Mhz, porgramuju v C#
Chtěl bych radu, můžu mít dvě nekonečné smyčky, které běží zároveň?
while(1) // první nekonečná smyčka
{
...
}
// druhá zároveň běžící nekonečná smyčka
ptal jsem se učitelky na programování, ale ta mě asi nepochopila, protože mi tvrdila, že ten program někdy skončit musí a musí být ukončen…
A ještě jeden dotaz
udělal jsem si počítadlo které počítá od 0 do 9 a stále se opakuje
problém je v tom, že cca 1 minuta (reálná) v zařízení trvá asi 58sec, napadlo mě, že bych upravil parametr _delay_ms(1000) za nižší číslo, ale to asi nepůjde protože to zpoždění je nelineární, takže za nějaký čas by došlo opět ke zpoždění. Jak udělat aby 1 minuta byla 6x se opakující 0 až 9?
Děkuji za rady.
přikládám kód
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD = 0xFF;
while(1)
{
//zapni 0
PORTD |= (1<<PD0);
PORTD |= (1<<PD1);
PORTD |= (1<<PD3);
PORTD |= (1<<PD4);
PORTD |= (1<<PD5);
PORTD |= (1<<PD6);
_delay_ms(1000);
//vypni 0
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
PORTD &= ~(1<<PD5);
PORTD &= ~(1<<PD6);
//zapni 1
PORTD |= (1<<PD1);
PORTD |= (1<<PD3);
_delay_ms(1000);
//vypni 1
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD3);
//zapni 2
PORTD |= (1<<PD0);
PORTD |= (1<<PD1);
PORTD |= (1<<PD2);
PORTD |= (1<<PD4);
PORTD |= (1<<PD5);
_delay_ms(1000);
//vypni 2
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD4);
PORTD &= ~(1<<PD5);
//zapni 3
PORTD |= (1<<PD0);
PORTD |= (1<<PD1);
PORTD |= (1<<PD2);
PORTD |= (1<<PD3);
PORTD |= (1<<PD4);
_delay_ms(1000);
//vypni 3
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
//zapni 4
PORTD |= (1<<PD1);
PORTD |= (1<<PD2);
PORTD |= (1<<PD3);
PORTD |= (1<<PD6);
_delay_ms(1000);
//vypni 4
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
//zapni 5
PORTD |= (1<<PD0);
PORTD |= (1<<PD2);
PORTD |= (1<<PD3);
PORTD |= (1<<PD4);
PORTD |= (1<<PD6);
_delay_ms(1000);
//vypni 5
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
PORTD &= ~(1<<PD6);
//zapni 6
PORTD |= (1<<PD0);
PORTD |= (1<<PD2);
PORTD |= (1<<PD3);
PORTD |= (1<<PD4);
PORTD |= (1<<PD5);
PORTD |= (1<<PD6);
_delay_ms(1000);
//vypni 6
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
PORTD &= ~(1<<PD5);
PORTD &= ~(1<<PD6);
// zapni 7
PORTD |= (1<<PD0);
PORTD |= (1<<PD1);
PORTD |= (1<<PD3);
_delay_ms(1000);
//vypni 7
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD3);
//zapni 8
PORTD |= (1<<PD0);
PORTD |= (1<<PD1);
PORTD |= (1<<PD2);
PORTD |= (1<<PD3);
PORTD |= (1<<PD4);
PORTD |= (1<<PD5);
PORTD |= (1<<PD6);
_delay_ms(1000);
//vypni 8
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
PORTD &= ~(1<<PD5);
PORTD &= ~(1<<PD6);
//zapni 9
PORTD |= (1<<PD0);
PORTD |= (1<<PD1);
PORTD |= (1<<PD2);
PORTD |= (1<<PD3);
PORTD |= (1<<PD4);
PORTD |= (1<<PD6);
_delay_ms(1000);
//vypni 9
PORTD &= ~(1<<PD0);
PORTD &= ~(1<<PD1);
PORTD &= ~(1<<PD2);
PORTD &= ~(1<<PD3);
PORTD &= ~(1<<PD4);
PORTD &= ~(1<<PD6);
}
}