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:
1 | #include <util/twi.h>
|
2 | #include <stdint.h> // veraltet: #include <inttypes.h>
|
3 | #include <stdio.h>
|
4 | #include <stdlib.h>
|
5 | #include <avr/io.h>
|
6 | #include <util/delay.h>
|
7 | #include "i2cmaster.h" // Peter Fleury
|
8 |
|
9 |
|
10 |
|
11 | #define SCL PC0 // PIN
|
12 | #define SDA PC1
|
13 | #define RS PC2 // LCD-PIN 4
|
14 | #define E PC3 // LCD-PIN 6
|
15 |
|
16 |
|
17 |
|
18 | int main(void)
|
19 | {
|
20 |
|
21 | DDRA = 0xFF;
|
22 | DDRC |= (1<<SCL) | (1<<SDA) | (1<<E); // PC0=SCL, PC1=SDA
|
23 |
|
24 | while (1)
|
25 | {
|
26 | PORTC |= (1<<E);
|
27 | PORTA |= 1;
|
28 | _delay_ms(1000);
|
29 | PORTC &= ~(1<<E);
|
30 | PORTA =0;
|
31 | _delay_ms(1000);
|
32 | };
|
33 | }
|
vielen Dank schon mal
Egon