logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega8518][C] prosty program nie dziala??

michal0408 03 Sty 2009 12:21 897 2
  • #1 5941812
    michal0408
    Poziom 13  
    witam

    chcialem napisac prosty program zapalajacy i gaszący LED ale nie wiem czemu nie działa czy ktos moze mi pomoc ??

    
    #define F_CPU 8000000UL
    
    #include <avr/io.h>
    #include <util/delay.h>
    
    int main (void)
    {
    
    DDRD =0xff;
    PORTD=0xff;
    DDRE = 0xff;
    PORTE=0xff;
    DDRC = 0x00;
    PORTC=0xff;
    
    while (1)
       {
    _delay_ms (1000);
    
       if (PINC & _BV(PC1))
    	{
        PORTE^=_BV(PE0);
    	}
    	int i ;
    	if (i)
    	{
    	PORTD ^=_BV(PD7);
    	i = 10;
    	}
    	i= i - 1;
    }
    }
    



    diody powinny mrugać różnie a obie (tzn. PD7 i PE0) mrugaja rowno czy ktos moze pomoc ??

    z gory dzieki
  • #2 5941898
    BoskiDialer
    Poziom 34  
    Zmienna "i" wychodzi z zakresu przez co uzyskuje nieustaloną wartość (kompilator zapewne ostrzega o tym). Przenieś "int i;" przed pętlę. Dodatkowo warunek pewnie miał wyglądać if(!i) lub if(i == 0).
  • #3 5942306
    kasaidolar
    Poziom 19  
    Napisz dokladnie co program ma robic :)

    Dodano po 5 [minuty]:

    Co 10 sekund ma zmienic stan PD7 i co 1 sekunde sprawdzany jest PC1 i ewentualnie zmieniane jest PE0? Daj inicjalizacje 'i' przed petle tak jak mowi BoskiDialer
REKLAMA