www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Problem beim Einstieg

Autor: guard (Gast)
Datum: 16.05.2008 21:05

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: 16.05.2008 21:22

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: 16.05.2008 21:23

???
Ich benutze AVR-Studio, falls das weiterhilft. Nach drücken von F7 kommt
der Fehler.
Autor: yalu (Gast)
Datum: 16.05.2008 21:23

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: 16.05.2008 21:24

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: 16.05.2008 21:27

> 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: 16.05.2008 21:29

Ich benutze den ATmega8
Autor: holger (Gast)
Datum: 16.05.2008 21:31

Und was für einen PC mit welchem Betriebssystem benutzt du ?

Hast du schon mal ein Programm ohne Fehler compiliert ?
Autor: guard (Gast)
Datum: 16.05.2008 21:35

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: 16.05.2008 22:07

> 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&a...

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: 17.05.2008 12:01

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: 17.05.2008 12:08

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net