Hallo zusammen,
ich hocke hier grad an einem Code und hab ein Problem, welches ich
seither noch nie erhalten habe.
Ich muss dazu sagen, dass ich seit kurzem erst mit AVR 5.0 arbeite und
damit noch nicht so ganz zurecht komme.
Also hier erstmal mein Code:
1 | // Deklarationen ==============================================================
|
2 |
|
3 | // Festlegung der Quarzfrequenz
|
4 |
|
5 | #ifndef F_CPU // optional definieren
|
6 | #define F_CPU 18432000UL // MiniMEXLE mit 18,432 MHz Quarz
|
7 | #endif
|
8 |
|
9 |
|
10 | // Include von Header-Dateien
|
11 |
|
12 | #include <avr/io.h> // I/O-Konfiguration (intern weitere Dateien)
|
13 | #include <stdbool.h> // Bibliothek fuer Bit-Variable
|
14 | #include <avr/interrupt.h> // Definition von Interrupts
|
15 | #include <util/delay.h> // Definition von Delays (Wartezeiten)
|
16 | #include "lcd_lib_de.h" // Header-Datei fuer LCD-Anzeige
|
17 |
|
18 |
|
19 | // Makros
|
20 |
|
21 | #define SET_BIT(PORT, BIT) ((PORT) |= (1 << (BIT))) // Port-Bit Setzen
|
22 | #define CLR_BIT(PORT, BIT) ((PORT) &= ~(1 << (BIT))) // Port-Bit Loeschen
|
23 | #define TGL_BIT(PORT, BIT) ((PORT) ^= (1 << (BIT))) // Port-Bit Toggeln
|
24 |
|
25 |
|
26 | // Konstanten
|
27 |
|
28 | #define ENABLE 7
|
29 |
|
30 | int i;
|
31 | int x;
|
32 |
|
33 |
|
34 | int main(void)
|
35 | {
|
36 |
|
37 | x=0;
|
38 | i=0;
|
39 |
|
40 | while(1)
|
41 | {
|
42 |
|
43 | char text[22]=" Treppenbeleuchtung "; // Text zum Schieben
|
44 | char schieben[16]=" "; // Schieberegister
|
45 |
|
46 | {
|
47 | for(i=0; i<16; i++)
|
48 | {
|
49 | if(i==15)
|
50 | {
|
51 | schieben[15]=text[x];
|
52 | }
|
53 | else
|
54 | {
|
55 | schieben[i]=schieben[i+1];
|
56 | }
|
57 | }
|
58 |
|
59 | lcd_gotoxy(1,0); // Cursor auf 2. Zeile, 1. Zeichen
|
60 | lcd_putstr("text[x]"); // Ausgabe Festtext: 16 Zeichen
|
61 | lcd_gotoxy(0,0);
|
62 | lcd_putstr("- Projekt 14 -");
|
63 | x++;
|
64 | if(x==22)
|
65 | {
|
66 | x=0;
|
67 | i=0;
|
68 | }
|
69 | _delay_ms(500); // Alle 500ms um eins Schieben
|
70 | }
|
71 | }
|
72 | }
|
Ich benutze einen ATMEGA88 und die lcd_lib ist im Programmordner
eingefügt.
Zusätzlich zum Fehler Test.elf section '.text' will not fit in region
region 'text' ; hat er scheinbar noch ein Problem:
#warning "Compiler optimizations disabled; functions from <util/delay.h>
won't work as designed" d:\programme\avr studio 5\avr
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h
Die delay.h ist doch aber richtig eingebunden, oder was meint er damit?
Wäre schön ein paar Antworten und Vorschläge von euch zu hören.
Bis dahin schon einmal vielen Dank im Voraus.
Gruß Alex