Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mikrokontroler ATMEGA32, jak wprowadzić program do uC?

05 Sie 2008 21:17 1550 9
  • Poziom 10  
    Witam...

    Wracajac do tego tematu, z problemem wczesniejszym bylo zwiazane to ze mialem walnieta Atmege, oraz programator na wejscie rownolegle nie dzialal prawidlowo...teraz juz mam zupelnie cos innego :), wiec zaczynam powoli raczkowac w programowaniu uC :/...posiadam programator ISPcable III i uzywam AVR Studio...wiec postanowilem pojsc troszeczke na skroty,podaje napisany kod:

    Code:
    #include <avr/io.h>
    
    #include <avr/io2313.h>


    int main(void)

    {

          (0xff,DDRC);
          while(1)
         {
        outp(0xff,PORTC);
        outp(0x00,PORTC);
         }
    }

    Moje pytanko jest nastepujace: czy zapali mi sie dioda? oraz jak wprowadzic skompilowany program do uC??

    Proszę umieszczać listingi programów w znacznikach "Code".
    Istnieją funkcje "Zmień" i "Pisownia", proszę z nich skorzystać i poprawić post.
    Niezastosowanie się do w/w wskazówek poskutkuje zablokowaniem tematu.
    [c_p]
  • Poziom 28  
    Nie wydaje ci się że zły plik nagłowkowy?
  • Poziom 10  
    Powiem tak, jestem laikiem wiec wydawac mi sie moze ale na 100% to nie jestem pewien...
  • Poziom 38  
    W ogóle ten plik nagłówkowy nie jest potrzebny (io2313.h).
    wystarczy avr/io.h :>

    Dodano po 34 [sekundy]:

    PS dodajesz na siłę nagłówek z 90s2313 a używasz M32.
  • Poziom 28  
    Dioda prawdopodobnie zaświeci tyle że tego nie zauważysz bo nie dałeś żadnych opóźnień między stanem "0" i "1". Poza tym nie podoba mi się zapis

    (0xff,DDRC);

    chociaż może i dobry (jak kompilator taki zna), ja bym raczej napisał

    DDRC=0xff;
  • Poziom 10  
    Witam...podaje napisany kod

    Code:

    KOD

    #include <avr/io.h>
    #include<util/delay.h>

    int main(void)
    {
    DDRD = 0xFF;
    while(1)
    {
    _delay_ms(550);
    PORTD= 0xFF;
    _delay_ms(550);
    PORTD= 0x00;

    }

    return 0;
    }


    Sprawa wyglada nastepujaca...jak nalezy skonfigurowac uC a dokladnie Fusse bit?? POsiadam Atmega16 i mam problemy z wczytaniem programu :/
  • Poziom 28  
    Jak nowy procek i nic w fusach nie grzebałeś to masz zepsuty programator.
  • Poziom 10  
    Niemozliwe ze programator padl...jest sprawny na 100% tego jestem pewien!
  • Poziom 10  
    Jak sie ustawia Fuse Bits w AVR Studio??

    Dodano po 1 [minuty]:

    I co oznacza taki komunikat

    Code:
     
    
    c:/winavr-20080610/lib/gcc/../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
  • Poziom 34  
    Komunikat ten oznacza tyle, że masz wyłączoną optymalizację przy kompilacji, pętla oczekiwania w _delay_ms będzie rozwinięta, liczba cykli oczekiwania będzie liczona w trakcie działania programu, co spowoduje, że długość oczekiwań może się różnić.

    Sprawdź, czy masz ustawione F_CPU, oraz czy jest spełniony ten warunek:
    delay.h napisał:
    The maximal possible delay is 262.14 ms / F_CPU in MHz.