www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem beim Einstieg


Autor: guard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich versuche folgendes Programm zu compilieren:
#define F_CPU 4000000  // 4 MHz

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

int main()
{
  unsigned char i;

  DDRB = 0xff;
  PORTB = 0x00;
  
  while(1)
  {
    PORTB ^= 0xff;
    for (i=0; i<50; i++)
      _delay_ms( 10 );
  }
  return 0;
}

Es kommt aber der Fehler: "internal compiler error: Illegal instruction"
Frage: Was kann ich tun? ;-)

Autor: Ekschperde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim GCC könnte man sich die temporären Dateien mal angucken.
Die nötigen Flags ins Makefile und dann gucken wie weit er kommt.

Autor: guard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
???
Ich benutze AVR-Studio, falls das weiterhilft. Nach drücken von F7 kommt 
der Fehler.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dem Code nach zu urteilen, verwendest du den GCC für AVRs Bei mir
kompiliert der Code sowohl mit GCC 4.2.3 als auch mit 4.3.0.

Welchen AVR benutzt du? Welche Compiler-Version?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm sieht ok aus.

>Es kommt aber der Fehler: "internal compiler error: Illegal instruction"

Den hab ich noch nie gesehen.
Für welchen uC ist das Programm ?

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich benutze AVR-Studio, falls das weiterhilft.

Zusammen mit dem AVR-Studio hast du wahrscheinlich WinAVR installiert,
das u.a. den GCC enthält. Welche Versionsnummer hat dieses?

Autor: guard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze den ATmega8

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was für einen PC mit welchem Betriebssystem benutzt du ?

Hast du schon mal ein Programm ohne Fehler compiliert ?

Autor: guard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PC: AMD 300 GHz mit Windows XP

Ja, sobald ich das _delay_ms() rausnehme, funktioniert alles. So habe 
ich z.B. ein Programm geschrieben, was einfach nur den Port auf 0xff 
setzt.
Auch avr/delay.h habe ich schon anstelle von util/delay.h implementiert. 
- Erfolglos!

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> PC: AMD 300 GHz

Alles klar: Du hast deinen PC ist zu sehr übertaktet ;-)

Aber Spaß beiseite: Ich bin zwar kein WinAVR-Benutzer, aber es gab es
in letzter Zeit wohl Versionen (200804xx mit xx<30 oder so), die nicht
ganz so gut funktionierten und deswegen wieder zurückgezogen wurden.
Vielleicht hast du so eine erwischt. Probier vielleicht einfach mal
die aktuellste (20080512) oder eine davor (20080430) aus.

Der da

  http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

hat wohl das gleiche Problem gehabt mit der Version 20080412 (gab es
die überhaupt, oder meint er 20080402?). Allerdings schreibt er nicht,
ob und wie er das Problem gelöst hat. Aber ein Update ist sicher kein
Fehler.

Autor: guard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles Klar! Ich habe jetzt einen anderen PC benutzt (mit wahrscheinlich 
auch einer anderen GCC- und AVR Studio Version) - und es funktioniert 
alles!!
Besten Dank für die Tipps!!! ;-)

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, es gibt manchmal seltsame AVRStudio oder WinAVR Versionen bzw. Bugs. 
Ein Update (gerade bei WinAVR kommen die einigermassen regelmässig) 
hilft eigentlich meist.

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.