Witam, chcę się dowiedzieć jak opóźnic miganie diody LED za pomocą pętli for (ma być pustą pętlą) do około 0,5 MHz, z góry dziękuję
Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tam
int main( void ) // program główny
{
sbi(DDRD,4); // uyj linii PD4 jako wyjscia
while(1) // petla nieskonczona
{
for(float x=0;x<0x32;++x)
sbi(PORTD,4); // zgas diode LED podłaczona do linii PD4
for(float x=0;x<0x3E8;++x)
cbi(PORTD,4); // zapal diode LED podłaczona do linii PD4
}
} for(float x=0;x<0x32;++x)
unsigned int x;
for (x = 0; x < 65535; x++) ; // średnik tu jest kluczowy ;)
int main( void ) // program główny
{
sbi(DDRD,4); // uyj linii PD4 jako wyjscia
while(1) // petla nieskonczona
{
for(unsigned int i; i<60000; i++){}
cbi(PORTD,4); // zapal diode LED podłaczona do linii PD4
for(unsigned int i; i<60000; i++){}
sbi(PORTD,4); // zgas diode LED podłaczona do linii PD4
}
}
int main( void ) // program główny
{
volatile unsigned int x;
sbi(DDRD,4); // uyj linii PD4 jako wyjscia
while(1) // petla nieskonczona
{
for (x = 0; x < 10000; x++);
cbi(PORTD,4); // zapal diode LED podłaczona do linii PD4
for (x = 0; x < 10000; x++);
sbi(PORTD,4); // zgas diode LED podłaczona do linii PD4
}
}
void waitms(unsigned char x)
{
unsigned char a, b; // zmnienne licznikowe
for( ; x > 0; --x) // ta pętla zostanie wykonana x-razy
for(b = 10; b > 0; --b) // a ta 10 razy
for(a = 25 * OSC; a > 0; --a) // natomiast ta 100 razy
__asm("nop"); // dodatkowa instrukcja opóźniająca o 1 cykl
// razem to da opóźnienie ok. x * 1ms
// x od 0 do 255
// gdy x = 0 to opóźnienie = 256ms
}miszcz310 napisał:
O! Wiesz co czmi3l nawet nie wiedziałem, że to tak w C jest... Dobrze wiedzieć z tymi deklaracjami, zastanawia mnie jednak czemu kompilator nic nie krzyczy przy 'moim' zapisie?