Zurück

(C) Christof Ermer, Regensburg
http://homepages.uni-regensburg.de/~erc24492/
Gästebuch

 

 

16.11.2017



#Einrichten_des_Filseservers
#WINAVR_Installation
         #Windows_10_Problem_mit_Compiler
#ATMega328p_PDF
#Konventionen

USABASP_Driver_installieren   
#Handwerkliche-Fertigkeiten  

Chronologie:  fließend aktualisiert:  Folge:( zunehmende Entropie =>  leider keine Ordnung erkennbar.. muss das mal ändern. Nur wie?. )



Diese Seite ist ausschließlich für den internen Gebrauch zum "Fortgeschrittenen Kurs Elektronik"
gedacht

 

Die meisten Abschnitte sind nur intern im Zusammenhang des Kurses benötigt und haben nur eine Merkzettel funktion.

Sewrveradressen, Ordneroositionen etc.

Kursleiter:
Christof Ermer         Tel Uni-intern: 943-2140,     Mobil: 017695678800,
Mein Büro ist zu finden im Raum 2.0.10  (Lst. Lupton Ergeschoss, Physik 2)

Ergebnisse:
SS2014 :  C-Files vom KURS SS 2014 : C-Files SS2014_AT16-USBASP.zip, Eagle Files: Eagle_Kurs_filesSS 2014.zip
SS2015 Arduino-Kurs: ATM328-WINAVR-Kurs Files 2015.zip 
SS2016 Arduino-Kurs
: Kurs2016_WINAVR-Progs-03-2016.zip
SS017 WinAVR C-Module Elfort-Kurs2017 ZIPs/Kurs2017_WINAVR-Progs.zip
SS017       Kursprojekte: KursProjekte.html



Kostenloser C-Compiler zum Üben von ANSI-C:   DEV-C++.html

            Downloaden bei : http://www.bloodshed.net/dev/devcpp.html

Bloodsheet Dev C++ ist die Weiterentwicklung  https://sourceforge.net/projects/orwelldevcpp/


 

@first: Einrichten des Fileservers    Kurs Software und Files: -->  Laufwerk K

extrem wichtig:   Handbuch PDF des AVR µC ATMega1328p 

Arduino UNO Prozessor Manual: ATMega328p_PDF

 Wird oft gebraucht!

 

*            Material und Info Universität Regensburg intern GRIPS:1
E-Learning  GRIPS
:   Beschreibungen , Skript , Sonstige Dateien. https://elearning.uni-regensburg.de/   Ihr DNS Login an der Universität Regensburg -->  Startseite > Kurse > Physik > IT-Ausbildung > Elektronik > Elektronik für Fortgeschrittene  Vor dem Kurs kann die  PDF  ANSI-C-fuer-Mikrokontroller.pdf  gelesen´werden.
Jedoch sind dies Lernziele/Bestandteiele des Kurses und damit NICHT VORRAUSETZUNG.

*

Kurs-Skript Version V1.4x:    Elfort-Mikrocontroller-Crash.pdf



Dieses Skript gibt es sonst aus Copyright Gründen  nur noch auf dem Universitäts Lokal Laufwerk  \PHY\elfort\PDFs
ACHTUNG nur Universität Regensburg INTERN erreichbar: https://elearning.uni-regensburg.de/course/view.php?id=23517

    Zusammenfassung und Erklärung der verwendeten Hardware: ../PDFs/Elfort_Bauteile_&_Merkzettel.pdf

gutes altes XP Terminal Programm: XP-Termninal



Sonstige Links:

Piepser-Zusammenbau.pdf
LabView Basics: LabView Basics.pdf



File Server Einrichten ( für den Datenaustausch ( Programmfragmente) im Kurs.
Nur über das interne Datennetz der Universität Regensburg erreichbar..
So kann prima auf Projekt-Dateien zugegriffen werden:
Die verwendeten Dateien werden nach und nach ergänzend zur Verfügung gestellt.
Unter dem Namen „Kurssoft“ stellt das Rechenzentrum einen allgemeinen Speicherplatz für Dozenten bereit.
Kurssoft ist normalerweise mit dem Laufwerksbuchstaben "K" verbunden.  (logisch)

SO WIRDS GEMACHT:
Falls Laufwerk "K" noch nicht sichtbar  ist:
Notwendig ist ein UNI-Regensburg Account...
Wer diesen nicht hat, meldet sich bei mir..


Im File-Explorer:
Extras --> Netzlaufwerk verbinden  --> Laufwerk K wählen -->
\\
Titan-share1\SHARE1\KURSSOFT\PHY\elfort

dann:
Es erscheint im Explorer ( hoffentlich )
K:\PHY\elfort

Andere Möglichkeiten:
  Adresse Zeile  des Explorers eingeben:
\\Titan-share1\SHARE1\KURSSOFT\PHY\elfort

TIPP: OTH Leute könne sich einloggen mit ihrem   Login
: aber die Buchstaben ersetzt durch ZZZ oder ZZB-.... evtl. im RZ nachfragen
aus erc24493 wird ZZZ24493


 

Terminal Programm:



Leider gibt es in Windows 7 standardmäßig kein Terminalprogramm.
Ich nehme das von XP,
Alternativ Terminal Programm http://www.der-hammer.info/terminal/
Nach der Installation des ADRUDINO Boards:
Vorher sollte jedoch das benutzte COM-PORT  ermittelt werden

Tastenkombination
WINDOWS-FENSTERTASTE + PAUSE
    =>  Geräte Manager


In diesem Fall ist es "COM8" .. Sollte die Nummer irrwitzig groß sein, kann dies unter Geräte Manager--> rechte Maustaste, Eigenschaften, Anschluss Einstellungen, Erweitert
geändert werden
Einrichten eines Terminal-Programms , das unter Win7 läuft,
dazu auf dem Fileserver den Ordner  "
K:\PHY\elfort\3A_Terminal Programme  öffnen und den Ordner "HyperTermXP" auf den lokalen Desktop kopieren.
Starte darin
hypertrm.exe  und öffne darin die Beispielsweise :  115200.com8.ht
dann müsste es soweit passen.


Compiler  & Plattform:


Der Kurs, die Programme und die Compilersoftware
WinAVR, wird entweder auf Windows XP oder Windows 7 ausgeführt. Programmiert wird der AVR  ( alle Typen ) mit: Compiler WINAVR :   http://sourceforge.net/projects/winavr/files/
WINAVR Beschreibung  https://www.mikrocontroller.net/articles/WinAVR

Diesen unbedingt in den vorgeschlagenen Ordner C: \WINAVR installieren

WINAVR installieren:

Quelle:
Lokal: K:\PHY\elfort\1A  WINAVR und AVR Studio Compiler
oder  https://sourceforge.net/projects/winavr/
https://sourceforge.net/projects/winavr/files/latest/download

WINAVR.20100110-install.exe  ist die schon sehr alte letzte Version.  03.2017

„Es wird berichtet dass die PATH Variable überschrieben wird.“ !?
  Ich hatte jedoch niemals Probleme.

aber, so findet man diese:
Systemsteuerung --> System & Sicherheit --> System --> Erweiterte Systemeinstellung --> Umgebungsvariablen
PATH -->
 da steht bei mir :
  %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
Hier sieht man
Die beiden Einträge
--> Und unter Systemvariablen:



Bei
Windows 10 gibt es Probleme beim Compiler, die aber lösbar sind.
Siehe auch https://www.mikrocontroller.net/articles/WinAVR
und auch:   
http://www.madwizard.org/electronics/articles/winavrvista  ( Da habe ich die Informationen her )

Für 32Bit:
Download msys-rebased.zip  and overwrite the existing msys-1.0.dll in the utils\bin subdirectory of your WinAVR director

Für 64Bit W10
If you are using Vista 64-bits, you will probably have the sync_with_child or similar errors.
In that case download
 
msys-1.0-vista64.zip with a modified msys-1.0.dll.
--> Lade für windows
64Bit folgenden Ordner bzw Datei  "msys-1.0.dll"
innerhalb von  WINAVR Win10 Problem/msys-1.0-vista64.zip
oder direkt:
msys-1.0-vista64/msys-1.0.dll
msys-1.0-vista64
20:03 19.04.201620:04 19.04.2016 found solution.


http://www.madwizard.org/download...
Kopiere diese in utils\bin directory (WinAVR)



Linux ist aber ebenfalls möglich. Dann ist allerdings selbstständige Rechereche notwendig. Dazu gibt es entsprechende Foren im Netz
Ich habe gehört, daß Windows 8.1 probleme macht mit dem WINAVR Compiler...
Wir verwenden Win7 mit zusätzlichem Terminalprogramm.  aus (Windows XP )
Ich verwende bewußt nicht das Atmel eigene AVR Studio...weil es sehr umfangreich und kompliziert für Einsteiger ist, und so den Blick verstellt auf das Wesentliche und Notwendige.
Der Fokus soll auf dem Mikrocontroller liegen und nicht auf die vielen Möglichkeiten ( wie JTAG Debuging ) von AVR Studio
Selbstständige Recherche:
Suche in Google WINAVR und downloade die aktuelle Software.
Darin enthalten der Editor: Programmers Notepad.
Dieser Editor kann mit dem makefile Compilieren und flashen steuern.
Also alles Notwendige. WinAVR.html  
So wird der WINAVR benutzt.
  Überblick mit Downloads über grundlegende AVR Software und Werkzeuge AVR-Grundwerkzeug.html
Als Programmierwerkzeug dient der   "InSystemProgrammer" : 
ISP-ASP-China.html


 

Speicher-Ort für Programme:

Ein AVR Projekte Order auf dem Desktop oder 
WICHTIG: So funktioniert das Filemanagement unter WINAVR
Jedem Projekt wird ein eigener Ordner zugewiesen/erstellt, worin alle zugehörigen Files liegen: C:\AVR_Projekte\AA_AVR_PRJ_2014\AT8-BLDC-Sauger
   
oder einfach ein Ordner auf dem Deskto
ORDNER-Desktop -->  MEIN_NAMEE

--


Programmers Notepad

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 !!




 

Programm flashen ( = in den Mikrocontroller laden )


Ich versuche dies mal mit dem Bootloader.. mal sehen wie sich das bewährt.
Dazu ist das Terminal imVORHER immer zu deaktivieren:!


sonst, Mit dem USBASP Dongle.
In System Programmer = ISP:    


1..Schritte: Installation eines
 USB, Fischl kompatiblem, ISP-Programmers  (In System Programmers)  USB-Fischl-Programmer.html
Um  das Programm in den µC zu laden gibt es viele verschieden Wege
Fuses_Avr.html    Notwendige Grundeinstellungen des AVR ( z.B. Quarz Aktivieren ):


AVR_Dude.html
  Build in ( WINAVR) Programmer verwenden (...leider etas unübersichtlich, aber funktioniert gut mit Burn-O-Mat etc. ) PonyProg.html  Eine sehr gute, aber nur mit "ECHTEN" Seriellen und LPT Ports zu nutzende Programmier-Software. Kann Fusebits lesen: ISP_Adapter.html  Paralleler In System Programmer ISP. Leider vom Aussterben bedroht.
Webseite des USB Programmers (gespeicherte Ebayseite): USBASP USBISP AVR Programmer USB ATMEGA8 ATMEGA128 New

Einstellungen mit Quarz  CKOP und BODEM
makefile Sektion:
 
Suche mit "AVRDUDE" nach Position  #---------------- Programming Options (avrdude) ----------------
dort
mit # alles auskommentieren  mit udn AVRDUDE_PROGRAMMER  AVRDUDE_PORT

Dann die Zeilen einfügen

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

das wars...

Basteln

Das erste Projekt:   Piepser-Zusammenbau.pdf Hier wird der extrem nützliche Test-Piepsermit Tonhöhenänderung beschreiben. !!
Siehe dazu folgende Seite vor dem Baubeginn: 
1. Platine Bohren
2. Bauteile der höhe nach Löten. ( Lötanweisung befolgen und einüben. )

FlachKabelStecker.html


Praktisch und zum Ausdrucken und neben den Monitor kleben.:
Bin    Hex
0001    1    0x01
0010    2    0x02
0011    3
0100    4    0x04
0101    5
0110    6
0111    7
1000    8    0x08
1001    9
1010    A-10
1011    B-11
1100    C-12
1101    D-13
1110    E-14
1111    F-15



Die Wahrheit über die
Logik: eine langweilige Tabelle:
http://de.wikipedia.org/wiki/Logikgatter

A

B

Y

0

0

0

1

0

0

0

1

0

1

1

1

UND
AND

A

B

Y

0

0

0

1

0

1

0

1

1

1

1

1

ODER
OR

A

B

Y

0

0

0

1

0

1

0

1

1

1

1

0

(wieder NULL wenn beide Eingänge 1 sind) EXKLUSIV ODER
EXOR

A

Y

0

1

1

0


NICHT NOT

 


 

Aufzählung versus BitMaske:

Betrachtet werden nun die Stellen in der binären Aufzählung, wo nur EIN Bit gesetzt ist:

BIT-Nr

HEX  0x

MASKE  0b

0

0x01

0b 0000 0001

1

0x02

0b 0000 0010

2

0x04

0b 0000 0100

3

0x08

0b 0000 1000

4

0x10

0b 0001 0000

5

0x20

0b 0010 0000

6

0x40

0b 0100 0000

7

0x80

0b 1000 0000




Konventionen zur Schreibweise von Konstanten und Variablen

Dies ist eine Beschreibung der von mir benutzen Technik  in der Programmierung.
Aber keine Vorschrift !! Jeder kann das machen, wie er selbst will. Klar.
Letztlich gelten nur die Syntaxvorschiften,
1978 erschienen von Kerningham und Ritchie  in dem Buch "Programmieren in C".

Jedoch.... ist dies der Unterschied zwischen einem "Hauruck-Basic-Programmierer" und einem "näher am Profi"..
Also eine freundliche Empfehlung:: die ich in meinen Beispielen verwende:
So kann man diese besser verstehen, und !! Fehler schnell finden. Weil man "sieht", waß was bedeutet...!

Es ist nur eine Handvoll simpler Reglen, die auch MS/Linux Profis verwenden ( mehr oder weniger ).

1. Es gibt keine EIN-Buchstaben Variablen. Das ist unter Profis verpöhnt.  Aus gutem Grund.
    Leider so häufig wie der Aberglaube daß Schönheitscreme hübsch macht.
    Bsp:  for
i =.  .... "ist Bääääääähhh".
    Besser: typisiert  und ein "sprechender Name"  wie "
u8ByteCount".     Was das bedeutet gleich mehr.

2.
Konstanten, und Definitionen, MAKROS werden immer nur mit GROßBUCHSTABEN geschrieben
    also typischerweise alles im Headerfile
wie  #define XXXX  und Makrodefines,  aber auch alle anderen Konstanten.
    Bsp:   alles Großgeschrieben:
    const char MCA_DELIMTERSTR[] PROGMEM = { ',',0 };
    #define MOTOR_ENABLE_FLAG    0x02
    #define LED1_ON()    (LED_PORT |= LED1_MSK)
    #define LED1_OFF()    (LED_PORT &= ~LED1_MSK)

3. a   

    Variablen werden am Wortanfang mit Kleinbuchstaben  mit dem Variablentyp gebranntmarkt. "Wie ? kommt geleich"
3. b

    Variablen-Namen werden möglichst "sprechend", nach 3a-Regel mit den Typenkleinbuchstabem, zuerst mit GroßBuchStaben, dann mit jedem "Silbenanfang" einem  weiteren "GroßBuchStaben,  gefolgt von den "Kleinbuchstaben" der Silbe, geschrieben.



Das ist alles !!
am Besten ein Beispiel:  
char gcaUartRXBuffer;    //lese :
global char array Uart RX (empfangs) Buffer (speicher)
Liste der Typen-Kleinbuchstaben-Kürzel: ( in der Reihenfolge, die ich verwende )
g = global definierte Variable.  //    Ohne "g" ist Var. also eine lokale Funktionsvariable. Simpel. p = Pointer. //    Var, ist ein Pointer s = Struct Variable u = unsigned //    signed ist default  c = char a = Array;  // Var ist ein Array ( bei Strings die zusätzliche 0 nicht vergessen ) 8, 16, 32, 64,.. // Bitbreite der Variable... praktischer als char integer word... und eindeutiger!
in WinAVR wird anstelle von char integer word usw eine ienheitliche form verwendet
int8_t ist short, char;  
uint8_t = quasi byte;
uint16_t = unsigned int;  int16_t = integer usw..

am Besten einige Beispiele: mit der "
lauten Leseart"
uint32_t    u32TickCount;  //unsigned word = 32 Bit  für eine Zeitzähler
uint8_t    u8ProgMode;     //unsigned char ( BYTE ) das FlagBits des Programmmodus speichern soll;
uint8_t
* pcRXBuf;   //pointer auf unsigend char,    pointer auf den Empfangsbuffer;

das war schon alles! Die paar Buchstaben zu lernen ergibt sich automatisch am Type-namem .. c=char usw..
Man gewöhnt sich schnell daran, und möchte es irgendwan nicht mehr anders..  Die Zeiten von   for( i = ..) sind bald vorbei.



USABASP Driver installieren

Dead-Simple Driver Installation for USBasp and USBtiny on Windows


http://rayshobby.net/dead-simple-driver-installation-for-usbasp-and-usbtiny-on-windows/
ZUADIG downladen
http://zadig.akeo.ie/
und dann:

Instructions

Go to http://zadig.akeo.ie/ and download the software (note that Windows XP has a separate link).

Plug in your USBasp or USBtiny device. In case your microcontroller uses a USBasp or USBtiny bootloader, enter bootloading mode, and let Windows detect the device (it will report driver not found). If a window pops up asking to search for driver, just close it or click on Cancel.

At this point, run Zadig, it should detect the USBasp or USBtiny, or any libusb device that you have. Then in the selection box (see below), choose libusb-win32 (v1.2.6.0), and click on Install Driver, and wait for the installation to complete.


That’s it! Because the drivers are digitally signed, there is no hassle installing it in Windows 7 64-bit and Windows 8.1.

I will be updating the driver installation instructions for OpenSprinkler 2.1 and SquareWear right away, as they both use USBasp bootloader. Users have often complained that it’s frustrating to install USBasp driver for Windows 7 64-bit and Windows 8.1. Those days are now past!