www.mikrocontroller.net

Forum: Compiler & IDEs Attiny2313 mit AVR Studio 4.13 SP1 Problem


Autor: Horst B. (hobadberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin absoluter Neuling in Sachen MicroController. Hab schon sehr viel 
gelesen. Erfolgreich erledigt habe ich folgendes:
AVR Testboard von silvotronic aufgebaut.
Einen Attiny2313 mit einem aus dem Internet geladenen Hex file 
(Blink1,hex) mit ponyprog programmier (LPT1)
Alles Wunderbar!! PortB0 blinkt. Das Testprogramm ist in arm 
programmiert!

Jetzt wollte ich gerne das ganze in C realisieren. AVRStudio 4.13 und 
dieses AVR2007 aus dem Internet geladen. Dank vieler Beiträge hier bin 
ich jetzt soweit das er meinen Quellcode compilieren möchte. Un da hakt 
es.

siehe folgende Zeilen:
**************************Mein QuellCode:

//mein erstes Blink Programm
//blink2.c
#include<io.h>
#include<portpins.h>
void main (void)
{
  unsigned int i;
  while(1)
    {
      PORT0=0x00;
      for (i=0;i<30000;i++);
      PORT0=0x01;
      for (i=0;i<30000;i++);
    }
}

******************Die Fehlermeldung:

Build started 17.11.2007 at 10:51:24
(Grün)avr-gcc.exe -I"C:\winAVR-200700525\avr\include\avr" 
-mmcu=attiny2313 -Wall u.s.w.....
(gelb)../blink.c:6: warning: return type of 'main' is not 'int'
(Rot)../blink.c: In function 'main':
(rot)../blink.c:10: error: invalid lvalue in assignment
(rot)../blink.c:12: error: invalid lvalue in assignment
     make: *** [blink.o] Error 1
Build failed with 2 errors and 1 warnings...

*******************************************************************

Ja und nun bin ich erstmal am Ende. Weiß einfach nicht mehr weiter. 
Vielleicht kann mir einer mal etwas Starthilfe erteilen.

MfG

Baddy

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal was in Zeile 10 und 12 steht. Ich vermute mal das sind die 
Ports. Diese Bezeichnungen vergleichst du mit denen aus dem Datenblatt.

Autor: Horst B. (hobadberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo dat funzt. Danke. Die Warnung war das ich void main (void) genommen 
habe. wenn ich int main(void) schreibe dann ist auch die warnung weg.
Werd das gleich mal in den µC schreiben. mal sehen ob es blinkt.
Vielen lieben dank.

Gruß Baddy.

Autor: Horst B. (hobadberg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm?? Es scheint etwas mit der Zeitschleife nicht zu stimmen. Die Diode 
leuchtet nur ganz schwach. Wenn ich die 30000 vergrößere dann leutet sie 
gar nicht.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit welchem Takt läuft der µC überhaupt? 30000 Takte sind je nach 
CPU-Takt immer noch ne verdammt kurze Zeit, und dann blinkt die LED so 
schnell, dass es nicht mehr fürs Auge erkennbar ist.

Abgesehen davon: Leere for-Schleifen sind Freiwild für den Optimizer des 
Compilers. In diesem Fall werden sie zwar offensichtlich nicht 
wegoptimiert, aber möglicherweise hast Du das Programm auch mit -O0 
compiliert...

Nimm entweder nen Timer oder die Funktionen aus der util/delay.h (die 
laufen aber nur mit eingeschaltetem Optimizer korrekt und sind in ihrer 
Maximalverzögerung begrenzt, Doku lesen!)

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warscheilich wird deine Warteschleife wegoptimiert.

Ändere mal "unsigned int i;" in "volatile unsigned int i;".

Zu "volatile" siehe das Tutorial.

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.