Witam
Mój problem dotyczy sie tego, iż dioda zamiast zaświecać się i gasnąc co sekundę, robi to o wiele krócej, w AVR Studio 4 pokazuje ze pętla delayms(1000) wykonuje sie w 4ms.
Proszę o wskazówki, pozdrawiam
Mój problem dotyczy sie tego, iż dioda zamiast zaświecać się i gasnąc co sekundę, robi to o wiele krócej, w AVR Studio 4 pokazuje ze pętla delayms(1000) wykonuje sie w 4ms.
Proszę o wskazówki, pozdrawiam
#include <avr/io.h>
#define FF_CPU 4000000
#define CYCLES_PER_US ((FF_CPU+500000)/1000000)
#define LED_ON PORTB |=_BV(1)
#define LED_OFF PORTB &=~_BV(1)
void delay(unsigned int us)
{
unsigned int delay_loops;
register unsigned int i;
delay_loops=(us+3)/(5*CYCLES_PER_US);
for(i=0;i<delay_loops;i++)
{
}
}
void delayms(unsigned int ms)
{
unsigned int i;
for(i=0;i<ms;i++)
{
delay(999);
asm volatile("WDR"::);
}
}
int main(void)
{
for(;;)
{
DDRB=0xFF;
LED_ON;
delayms(1000);
LED_OFF;
delayms(1000);
}
return(0);
}