mikrocontroller.net

Forum: Compiler & IDEs unerwartete Fehlermeldung


Autor: Egon Müller (kpc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich das Programm schon x-mal kompiliert und betrieben habe, 
bekomme ich plötzlich eine Fehlermeldung:

/usr/bin/sh: test: allgPorttest: binary operator expected
avr-gcc -gdwarf-2 -DF_CPU=16000000UL    -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=allgPorttest.lst  -std=gnu99 
-Wl,-Map=allgPorttest .map,--cref    -lm  allgPorttest.c   -o 
allgPorttest
In file included from allgPorttest.c:32:
c:/progr-mcu/winavr090313/lib/gcc/../../avr/include/avr/io.h:356:6: 
warning: #warning "device type not defined"
allgPorttest.c: In function 'main':
allgPorttest.c:48: error: 'DDRA' undeclared (first use in this function)
allgPorttest.c:48: error: (Each undeclared identifier is reported only 
once
....
es folgen weitere Portbezeichnungen

In meinem WinAVR 090313 sind die üblichen Dateien (io.h, iom644.h) 
vorhanden und unverändert (sicherheitshalber neu installiert).

1. die erste Zeile der Fehlermeldung: leider wird nicht angezeigt,  w o
   der  binary operator fehlt. Am Programm ist nicht viel dran ( ich
   füge es unten an);
2. lt. io.h sei der device type nicht deklariert, er ist es aber im
   makefile (Atmeg644p);
3. die Portbezeichnungen werden plötzlich auch nicht mehr gefunden.

Kann mir jemand erklären, was da geschieht?

Hier das kleine Programm:
#include <util/twi.h>
#include <stdint.h>    // veraltet: #include <inttypes.h>  
#include <stdio.h>
#include <stdlib.h>   
#include <avr/io.h>           
#include <util/delay.h>  
#include "i2cmaster.h"   // Peter Fleury



#define SCL PC0     // PIN 
#define SDA PC1
#define RS  PC2     // LCD-PIN 4
#define E   PC3     // LCD-PIN 6



int main(void)
{
   
   DDRA = 0xFF;
   DDRC  |= (1<<SCL) | (1<<SDA) | (1<<E);    // PC0=SCL, PC1=SDA

   while (1)                  
   {
    PORTC |= (1<<E);
   PORTA |= 1;         
   _delay_ms(1000);
    PORTC &= ~(1<<E);
    PORTA =0;
    _delay_ms(1000);
  };
}

vielen Dank schon mal
Egon

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die erste Zeile hat mit dem Programm nichts zu tun, sondern deutet auf 
einen Fehler im Makefile hin, wie auch die Tatsache, dass ein -mmcu in 
der avr-gcc-Kommandozeile fehlt (was dann die anderen Fehler 
produziert).

Autor: Egon Müller (kpc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Stefan,

so war es.
In der Tat hat mich an der ersten Zeile der Fehlermeldung besonders 
gewundert, daß in diesem frühen Stadium so etwas schon auffällt.

Ich habe ein neues makefile generiert und nun funktioniert es wieder.


Vielen Dank
Egon

Zusatzfrage:
Nach abgeschlossener Programmierung des AVR scheint es eine gestörte 
Trennung zwischen AVR und pn2/avrdude zuu geben, jedenfalls erscheint 
unentwegt:

avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout
avrdude: stk500_2_ReceiveMessage(): timeout

Ich finde leider nichts im makefile, wo man dies unterbrechen könnte.

Autor: Egon Müller (kpc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Zusatzfrage:
> Nach abgeschlossener Programmierung des AVR scheint es eine gestörte
> Trennung zwischen AVR und pn2/avrdude zuu geben, jedenfalls erscheint
> unentwegt:
>
> avrdude: stk500_2_ReceiveMessage(): timeout
> avrdude: stk500_2_ReceiveMessage(): timeout
> avrdude: stk500_2_ReceiveMessage(): timeout
>
> Ich finde leider nichts im makefile, wo man dies unterbrechen könnte.

Hat sich erledigt, nach pn2-Neustart ist es verschwunden!

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.