AVR Probleme
-
Hi alle zusammen
ich habe mir von Florian Schäffer das Buch (AVR Hardware und C-Programmierung...) durchgelesen. Hier wird folgendes Beispiel gezeigt:
#include <avr/io.h> #include <util/delay.h> void delay_ms(unit16_t ms) { for(unit16_t t=0; t<=ms; t++) _delay_ms(1); } int main() { DDRB = 0xFF; while(1) { PORTB = 0b00000001; delay_ms (250); PORTB = 0x80; delay_ms (250); } return 0; }
Aber Notepad und AVR-Studio zeigen hierbei immer Fehler an... ich verstehe einfach nicht, dass es bei diesem Beispiel (was ich einfach abgetippt habe) zu so vielen Fehlern kommen kann...
Fehler:
C:/WinAVR/avr/include/util/delay.h:136:3: warning: #warning "F_CPU not defined for <util/delay.h>" ../main.c:4: error: syntax error before "ms" ../main.c: In function `delay_ms': ../main.c:6: error: `unit16_t' undeclared (first use in this function) ../main.c:6: error: (Each undeclared identifier is reported only once ../main.c:6: error: for each function it appears in.) ../main.c:6: error: syntax error before "t" ../main.c:6: error: `t' undeclared (first use in this function) ../main.c:6: error: `ms' undeclared (first use in this function) ../main.c:6: error: syntax error before ')' token make: *** [main.o] Error 1 Build failed with 8 errors and 1 warnings...
Kann mir evt. jemand sagen warum diese Fehler auftauchen? Ich werde daraus einfach nicht schlau. Ich könnte echt heulen...
Gruß Dargo
-
Es heißt uint16_t (unsigned int), nicht unit16_t.
-
wuhuuu... man wie konnte das nur passieren
manchmal sieht man den Wald vor lauter Bäumen nicht
ähm dann hätte ich noch eine Frage zum Makefile und zu WINAVR. Muss das Makefile für den Befehl "MakeAll" bereits vorhanden sein? Wenn ja reicht bereits dieser kurze "schnipsel" aus?
# MCU name MCU = atmega8 # Processor frequency. F_CPU = 3686400 # Output format. (can be srec, ihex, binary) FORMAT = ihex # Target file name (without extension). TARGET = main # List C source files here. (C dependencies are automatically generated.) SRC = $(TARGET).c
Bis jetzt habe ich das Makefile immer von mFile (WINAVR) erzeugen lassen. In dem Buch wurden nur die oben stehenden Komponenten beschrieben reicht das bereits aus?
-
1. Ja, beim "make all" muss das Makefile bereits vorhanden sein.
2. Ich kenne mich mit Makefiles zwar nicht allzu gut aus, aber das sieht mir so aus, als ob das gar nicht funktionieren kann. Wo ist der avr-gcc-Aufruf? Wo werden die Variablen verwendet?