mikrocontroller.net

Forum: Compiler & IDEs Probleme mit avrgcc


Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir avrgcc 20011121a laut Turtorial installiert.

Wenn ich das gcctest1.rom file in den 4433 brenne  funktionierts.Aber 
wenn ich das File selber erzeuge funktioniert es nicht.
Ich bekomme auch keine Fehlermeldung.
Nachdem ich make eingegeben habe, bekomme ich die Meldung
errors: none

ps.: MCU habe ich im Makefile geändert sonst nichts.

Ich hoffe es kann mir jemand helfffffen.

mfg Toni

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Installierte aktuelle Version WinAVR 3.3 !

Zitat von der Seite
http://www.mikrocontroller.net/avr-gcc.htm

"Die aktuellste Windows-Version von avr-gcc gibt es auf 
http://sourceforge.net/projects/winavr/.";

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt denn, ,,funktioniert es nicht''?  Was kann denn noch
nicht funktionieren, wenn denn schon alles (im AVR) funktioniert?
Meinst Du, daß die Simulation nicht tut?  Simulation ist Schall
und Rauch...

Aber im Ernst: was Du da installiert hast, ist hornalt.  Die
aktuelle Windows-Versoin von avr-gcc und Konsorten findest Du
in der WinAVR-Distribution.  Wenn Du sowieso neu anfängst, dann
tu Dir (und uns, die wir Deine Fragen beantworten sollen :) den
Gefallen und nimm was aktuelles.

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In diesem ebenso veralteten gcctest1 Beispielen befindet sich eben neben 
der Source auch das bereits ein fertiges Binary.

Ich nehme an Toni konnte erfolgreich dieses Binary brennen, aber sein 
selbst kompiliertes Binary funktionierte offenbar nicht.

Ich mich Jörgs Vorschlag nur anschliessen, installiere die neueste 
WinAVR Distribution und vergesse die alten gcctest* Beispiele.

Zusätzliche Beispiele findest Du auch auf meiner Homepage:
http://www.mysunrise.ch/users/pfleury/avr-software.html

Autor: toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt win AVR3.3 installiert.
Weiters habe ich die avrgcc-examples von Peter Fleury  kompiliert. Kein 
Fehler wie bei der alten avrgcc 20011121a
Version.
Ich habe dann voller Freude Walkingled in meinen 4433
gespielt.Aus Walking Led wurde Standingled, alle Leds
Leuchten.
Habe dann so alles ausprobiert was mir eingefallen ist.

Das Makefile von AVR3.3 habe ich dann etwas abgeändert.
(MCU und Target) und siehe da jetzt gehts.
Warum ????

Vielleicht kann mir einer das erklären.

Danke für euer bemühen.

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Toni, wie du richtig bemerkt hast, muss man dem avr-gcc im Makefile 
angeben für welchen AVR-Typ man ein binary bilden will.
Meine Beispiele habe ich für den 8515 entwickelt und getestet, sie 
sollten aber auch auf anderen AVRs laufen.

Autor: toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt auch mit dem Makefile von den Beispielen von
Peter Fleury ein binary erzeugen könne, das in meinem 4433
funktioniert.
Dabei habe ich nur folgende Änderung vorgenommen.
MCU = at90s4433

statt:ROMFORMAT       = src

    habe ich

      ROMFORMAT       = ihex

somit habe ich ein intel hex binary erzeugt, denke ich.

Doch beim Compilieren von PWMDEMO gab mein Compiler auf.

Der Grund dafür ist, das ich den 4433 verwende, und nicht
den 8515.(MCU 4433)

Ich hoffe meine Aussagen sind richti,wenn nicht korrigiert
mich bitte.

mfG Toni

Autor: toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt das PWMDEMO von Peter Fleury für den 4433 abgestimmt. 
Sieht so aus:




************************************************************************ 
*******/
#include <inttypes.h>
#include <avr/io.h>


/*
 * constants
 */
#define OC1A PD5                   // output compareA pin


/*
 * function prototypes
 */
static void delay(uint16_t us);


/*
 * function definitions
 */
static void delay(uint16_t us)
/* delay for a minimum of <us> microseconds    */
/* with a 4Mhz crystal, the resolution is 1 us */
{
    while ( us ) us--;
}


int main(void)
{
    uint8_t i = 0;


    DDRB  = 0xff;                  // use all pins on PortB for output
    PORTB = 0xff;                  // set output high -> turn all LEDs 
off


    sbi(DDRD,OCR1);                // set OC1A pin as output
    cbi(PORTD,OCR1);               // clear OC1A

    // enable 8 bit PWM, select inverted PWM
    TCCR1A =  _BV(PWM10) | _BV(COM11) | _BV(COM10);

    // timer1 running on 1/8 MCU clock with clear timer/counter1 on 
Compare Match
    // PWM frequency will be MCU clock  8  512, e.g. with 4Mhz Crystal 
977 Hz.
    TCCR1B = _BV(CS11) | _BV(CTC1);


    /*
     *  Dimm LED on and off in interval of 2.5 seconds
     */
    for (;;)
    {
        /* dimm LED off */
        for( i=255; i>0; i--)
        {
            OCR1L = i;
            delay(10000);    // delay 10 ms
        }
        /* dimm LED on */
        for (i=0; i<255; i++)
        {
            OCR1L = i;
            delay(10000);   // delay 10 ms
        }
    }
}


mfG toni

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.