Ja hab ich auch schon gesehen, nur so recht find ich noch nicht den Einstieg, was man wie machen muß (siehe Beitrag oben)!
Druckbare Version
Ja hab ich auch schon gesehen, nur so recht find ich noch nicht den Einstieg, was man wie machen muß (siehe Beitrag oben)!
Ich hab noch eine gute Seite für AVRGCC-Einsteiger gefunden. STammt von Dirk Baumann. Schaut mal unter guter AVR-Seiten hier
Da findet ihr eine gute Beschreibung wie ihr das oben genannte WinAvr Paket nutzt um ein Programm zu installieren. Es sind auch zahlreiche Bilder vorhanden, so das ihr das Notpad2 schnell entsprechend konfigurieren könnt. Im Grunde ist es dann fast so komfortabel wie in einer echten IDE.
Das kurze Beispiel kann 1:1 auch auf einem Mega16 kompiliert werden. Ihr müsst nur statt dem dort angegebenen Controllertyp "atmega16" eingeben.
Das Programm sah so aus:
Es ist ein 8-Bit Zähler. Dieser hat zur Folge das zum Beispiel eine LED an Port PB0 blinken würde. Ist also ein erstes gutes Testprogramm für absolute AVR-Laien.Code:#include <avr/io.h>
//***********************************************************
char i=0; //Globale 8-Bit Variable
//***********************************************************void warten(int t) //ermöglicht Pausen
{
int h;
for (;t>0;t--)
{
for (h=1600;h>0;h--) {}
}
return;
}
//***********************************************************
int main(void)
{
char i=0; //Lokale 8-Bit Variable
//Setzen der Ein + Ausgänge
outp(0xFF,DDRB); //PortB: alles als Ausgäng
outp(0xFF,DDRD); //PortD: alles als Ausgang
//Ports digital ansteuern
outp(0x0,PORTB); //Alle Ausgänge werden auf low gesetzt
outp(0x0,PORTD); //Alle Ausgänge werden auf low gesetzt
while (1)
{
i++;
outp(i,PORTB);
warten (200);
}
}
Gruß Frank
Das Programm ist aber leider veraltet. Die neueren Version des Compilers erlauben auch direkte zuweisungen:
PORTB = 0xff;
bzw.
i = PORTB;
Man kann die Ports also wie Variablen benutzen und muss nicht den Umweg über outp() gehen. Deswegen wird diese Funktion auch irgendwann aus dem Compiler verschwinden...
Außerdem kann man die integration in das Programmers Notepad noch einfacher machen wenn man ein makefile benutzt...
Ich schreib gleich mal eine Anleitung dazu...
MfG Kjion
Aha, danke für Hinweis! Das klingt ja noch besser. Das mit der integration ins Notepad ist aber garnicht so schlecht, damit kommt man schon ganz gut klar.
Gib mal Nachricht wenn Du ne Anleitung oder noch weitere Tips hast. Auch ein paar modernere Beispielprogramme wären in diesem Fall nicht schlecht. Ich finde der Lerneffekt ist da immer am größten.
Gruß Frank
Hier noch ein interessanter Link für den Einstieg
http://www.avrfreaks.com/Tools/ToolF...fig_WinAVR.pdf
Ein paar Beispiele findet man auch hier: http://homepage.sunrise.ch/mysunrise...-software.html
Schade das es aber immer noch kein gutes aktuelles Tutorial gibt.
<kyion> Wolltest Du nicht was schreiben?
Kommt noch .... hab leider im Moment wenig Zeit dafür, ist aber schon in Arbeit ...
:x
Hallo AVR Coder!
Also ich hab mir mal das WinAVR Packet runtergeladen, und im "Programmers Notepad" die Tools (make) eingetragen, wenn ich nun bei dem Makefile den Make aufrufe kommt im Ausgabefenster:
makefile:1: /include/make1: No such file or directory
Das hier ist das Makefile von dem gcctest1:
include $(AVR)/include/make1
MCU = at90s8515
TRG = gcctest1
SRC = $(TRG).c
ASRC =
LIB =
INC =
CPFLAGS = -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)
LDFLAGS = -Wl,-Map=$(TRG).map,--cref
include $(AVR)/include/make2
$(TRG).o : $(TRG).c
Dann hab ich mal die include Zeilen raus (/make1 gibts ja auch überhaupt nicht!) und dann kommt folgende Ausgabe:
cc -c -o gcctest1.o gcctest1.c
process_begin: CreateProcess((null), cc -c -o gcctest1.o gcctest1.c, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
woher stammt die erste Zeile ?!?! (cc.....)
Wäre Nett wenn mir da einer helfen könnte, hab jetzt den halben Nachmittag mit dem Zeugs verbracht und im Netz rumgegoogelt, zum eigentlichen programmieren bin ich aber immer noch nicht gekommen :-(
MfG
Stefan
Schau mal hier rein:
http://www.kreatives-chaos.com/index.php?seite=avrgcc