Zurück (C) Christof Ermer, Regensburg

23.08.2014


Es gibt offenbar Probleme ab Windows 8.1
Lösung.. soweit ich weiß muß eine DLL getauscht werden.. einfach selber erst mal googeln

WINAVR_unter_WIN10.html

WINAVR   ist ein kostenloser C++ Compiler für alle AVR Mikrocontroller auf GNU Basis
EInfach Winavr in Google eingeben und downloaden und installieren
http://winavr.sourceforge.net/download.html


In WINAVR integriert:  Programmers Notepad
Um ein Projekt mit WinAVR zu bearbeiten  braucht man NUR den Programmers Notepad.!!
Und der ist z.B im Ordner C:\WinAVR-20100110\pn
   und dort in pn.exe ( ab jetzt PN genannt )        Tip: Verknüpfung auf den Desktop ( im AVR Ordner ) legen...


Ein Wort noch zu Programmers Notepad, enthalten innerhalb des Ordners: C:\WINAVRxxx  unterOrdner:  \PN
Speicher Ort für Grundeinstellungen des Programmer Notepad:
C:\WinAVR-20100110\pn\settings   und dorthin folgende Datei(en) kopieren
UserSettings.ini -> UserSettings.ini
UserSettings.xml -> UserSettings.xml
UserTools.xml  ->  UserTools.xml
oder alle drei zusammen..im ZIP,  damit  sind zumindest die Datentypen etc. richtig implementiert: PN_Settings.zip
!! Diese Dateien in den Ordner C:\WinAVR-20100110\pn\settings kopieren !!!



Und natürlich die Projektdateien:
Der einfachste und sicherste Weg:!!
Für jedes Projekt einfach einen noch leeren Ordner einrichten, wenn es noch keinen gibt
---C:\AVR_Projekte\KURS07\Kurs07_4_TXRX  
und in diesen Ordner einfach  ein funktionierendes Grundgerüst eines vollständigen Projektes kopieren
wie hier mitgeliefert:
z.B. für das Evaluierungsboard von Pollin.
AT16_EvalBoardPollin/main.zip  ( Ein Grundgerüst für den ATMega16 )

Dieses (Start)Gerüst hat eine immer gleiche innere Strucktur.
So funktioniert sofort alles wie gewohnt am selben Platz in der selben Hirachie.
So ist z.B. der Uart /serielle Schnittstelle) schon mit Basisfunktionen und in Betrieb.
(
 main.c heist immer main.c usw...
und Das Proket heist immer MyMain.pnproj.
)
 
--- ZipFile entpacken und die Dateien in den neuen Projekteordner kopieren.
---dann PN ( Programmers Notepad ) im Menue "Open Projects" klicken
--- dor auf MyMain.pnproj


und als Folge sieht man jetzt ein kleines Projects Fenster, worin die momentanen Projektdateien sind

notwendig sind eigentlich nur die .c Dateien.
die .h Dateien sind nur drin, weil man diese so elegant anklicken und öffnen kann
Weil im make-File ja der Compilierungsvorgang bestimmt wird.
Man kann aber mit der rechten Maustatse auf MyMain klicken, dann könnte man neue Projektdateien hinzufügen. Aber das später...

Jetzt ein Arbeits-File öffnen, indem man im Projects-fenster des  PN auf z.B. die main.c  klickt..
Jetzt ist das C File zum bearbeiten offen.
Und ab nun kan man auch schon compilieren.
Auf das Menüe --- Toos--> Make All ..
Und wenn nun alle Ok ist, dann wird ein .HEX File erstellt, welches in unserem Projekteordner liegt.
Dieses kann nun via ISP übertragen werden.
und bei passender Makefile Einstellung auch gleich im PN---Tools---Programm  programmiert werden.

Was nun "passend" ist, das erfährt man bei einiger Erfahrung...
z.B. mit dem WinAVR Internen AVRDude  ( read your manuals )..

Nach dem "erfolgreichem" Compilieren, und nur dann, steht ein main.hex File zur Verfügung, welches mit PonyProg etc via ISP übertragen werden kann.
../PonyProg/PonyProg.html


um die Reservierten Wörter anzuzeigen in blau unter iOptions Keyword diese Zeilen einfügen
 int8_t int16_t int32_t uint8_t uint16_t uint32_t prog_uint32_t prog_uint8_t prog_uint16_t PGM_P PGM_VOID_P

VOLLSTAENDIG:
asm auto bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq int8_t int16_t int32_t uint8_t uint16_t uint32_t prog_uint32_t prog_uint8_t prog_uint16_t PGM_P PGM_VOID_P



Thema "make" file
kann einfach mit dem mitgelieferten Tool MFILE erstell werden.
Siehe programm im, WINAVR Aufruf von Start
sieht nur komsich aus..
Kopieren, verändern, verwenden, fertig...

Dort sind wichtig:
F_CPU = 16000000    ( ohne UL )
MCU = atmega16
und die quellfiles  main.c uart.c etc..

So wird derUSP ISP Programmer  aktiviert
#---------------- Programming Options (avrdude) ----------------

# Programming hardware
# Type: avrdude -c ?
# to get a full listing.

AVRDUDE_PROGRAMMER = USBasp
AVRDUDE_PORT = usb        # programmer connected to USB port




So wird der Parallelport Dongle aktiviert
dann kann aus dem PN mit Tools Programm sofort übertragen werden.

Ausschnitt aus dem "make" File:
#---------------- Programming Options (avrdude) ----------------
# Programming hardware: alf avr910 avrisp bascom bsd
# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
#
# Type: avrdude -c ?
# to get a full listing.
#
AVRDUDE_PROGRAMMER = pony-stk200
# com1 = serial port. Use lpt1 to connect to parallel port.
AVRDUDE_PORT = lpt1



Ein weiterer wichtiger  Ausschnitt gleich am Anfang des make-Files ist
1.)
die Einstellung des verwendeten Quarzes und
2.)
die Einbindung und Compilierung der Projektdateien.
Hier im Beispiel nur zwei main.c und uart.c
bei einem 16MHz Quarz

Do NOT tack on a 'UL' at the end,
F_CPU = 16000000
MCU = atmega16

# Output format. (can be srec, ihex, binary)
FORMAT = ihex
# Target file name (without extension).
TARGET = main
# Some more advanced stuff
CUART = uart.c
CLCD = lcd.c

# List C source files here. (C dependencies are automatically generated.)
#SRC = $(TARGET).c $(CUART) $(CLCD)
#SRC = $(TARGET).c
SRC = $(TARGET).c $(CUART)