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

Atmega8515 zamiast AT89S52

ka_ris 05 Paź 2008 13:55 1017 3
REKLAMA
  • #1 5601139
    ka_ris
    Poziom 10  
    Witam! Postaram się opisac problem dosyć szczegółowo. Miałem bardzo duże problemy z zaprogramowaniem AT89S52(działały tylko bardzo małe programy typu migająca dioda LED) więc postanowiłem zmienić na AtMega8515 ponieważ ma takie same wyprowadzenia nózek. Z programowaniem nie ma najmniejszych problemów, tylko teraz nie działa zaden program. Jedyne różnice jakie wykryłem to: brak sygnału EA które było w 51', kondensatory przy kwarcu 33pf( w dokumentacji pisze 22pf). Kwarc ma 12 Mhz w dokumentacji pisze coś takiego:
    – 0 - 8 MHz for ATmega8515L
    – 0 - 16 MHz for ATmega8515
    Nie wiem dokładnie który posiadam bo w oznaczeniach nigdzie nie jest to napisane. Czytałem o dodatkowych kondensatorach 100nF przy zasilaniu i masie, ale nie wiem czy to dotyczy własnie tego modelu? Vcc i Gnd w tym procku jest po przeciwnych stronach więc nawet nie wiem jakbym miał je umieścić. Fuse bity ustawiałem i dl wewnetrznego rezonatora: 0100 i dla zewnętrznego 1110 i nic:/ chyba że robie jakiś błąd w programie?

    #include <avr/io.h>
    
    void Delay(unsigned int time)
    {
    	unsigned int j;
    	unsigned char i;
    	
    	while (time >= 1)		//wykonanie pętli FOR zajmuje około 1 sek.
    	{							//pętla jest powtarzana TIME razy
    		for (i=0; i<3; i++)
    			for (j=0; j<52000; j++);
    		time--;
    	}
    }
    
    int main(void)
    {
    
      DDRD |= (1<<PD0 | 1 <<PD3 | 1<<PD5);
      
    	while(1)
    	{
    	
    		PORTD &= ~(1<<PD0);
    		PORTD &= ~(1<<PD3);
    		
    		Delay(10);
    	
    		PORTD |= 1<<PD3;
    		PORTD |= 1<<PD0;
    		Delay(10);
    		
    	}
     return 0;
    }


    Z góry dziękuję za pomoc.
  • REKLAMA
  • REKLAMA
  • #3 5601206
    ka_ris
    Poziom 10  
    Kompilować się kompiluje. Na symulatorze wygląda okej

    Dodano po 2 [godziny] 49 [minuty]:

    Jeszcze jedna chyba dośc istotna rzecz. Mianowice na płytke na której programuje wlutowałem sobie diodę i po zaprogramowaniu działa. Myśle że to moze mieć związek z sygnałem RESET. Czy w AT89S52 wygląda to inaczej niż w przypadku 8515?

    mam podpiete tak:
                 10k
    /RES --*----|||||---- GND
           |
        o|
           |
           VCC 


    Nie powinno być na odwrót?
REKLAMA