@besserwessi:
Was soll jetzt der QUATSCH?
Hab ich doch so geschrieben
Ändere deinen Namen doch in "ICHHABIMMERDASLETZTEWORTWESSI" oder "ICHKANNDOCHNICHTSDAFÜRWASMEINEFINGERSCHREIBENWESS I"
Die Compiler für Windows (Visual Studio, Delphi, Turbo Pascal etc) erzeugen auch Code für den PC. Da helfen auch die includes (.h) Dateien fast nichts. Bestenfalls könnte man so Testen ob Syntaxfehler drin sind.
AvrStudio ist eine Entwicklungsumgebung mit einem Assembler und einem Simulator. Der C Compiler ist extern von WinAvr.
Zusammen hat man dann eine Entwicklungsumgebung mit C Compiler.
Dabei kann der Compiler im Prinzip auch C++, aber es hakt noch etwas an den passenden include Dateien, dem maktefile (Steuerung welche Files gebraucht werden) und ein paar anderen Kleinigkeiten.
Wenn man C++ schon kennt, ist der Schritt zurück zu C nicht so groß.
@besserwessi:
Was soll jetzt der QUATSCH?
Hab ich doch so geschrieben
Ändere deinen Namen doch in "ICHHABIMMERDASLETZTEWORTWESSI" oder "ICHKANNDOCHNICHTSDAFÜRWASMEINEFINGERSCHREIBENWESS I"
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
So noch langsamer:Zitat von Thomas1701
Das mit den Ausgängen oder Eingängen hat erst mal nichts mit den Boards zu tun.
Die Boards braucht man primär dazu um den Prozessor nutzen zu können. Einige Boards sind bereits mit Geräten (Devices) bestückt (z.B. LCD und Tastatur) die hierfür benötigten Pins werden i.d.R. nicht herausgeführt, meist sind die ungenutzten Prozessor-Pins (mehr oder weniger) mittels Stiftleisten für eigene Anwendungen (Deine LED oder Sensor) herausgeführt, und steckbar gestaltet.
Der Prozessor, ich bleib jetzt mal beim ATmega8 hat viele Beinchen,
einige wenige haben eine feste Belegung:
- z.B. Versorgungsspannung, Oszillator (Quartz) usw.
Andere können je nach momentanen Bedarf andere unterschiedliche Funktion haben sind aber dennoch frei definierbar.
Und andere haben eine eindeutige Funktion, können jedoch auch frei genutzt werden.
Du hast z.B. den Anschluß für den ISP mit dem dein ATmega programmiert wird, besser gesagt über den Dein Programm vom PC in den ATmega übertragen wird. Wenn Du gerade den Prozessor nicht programmierst, also im normalen Betrieb, kannst Du die gleichen Pins als Ein- oder Ausgang (0 oder 1) benutzten.
Dann Hast Du denn A/D Port an dem ist ein Analog zu Digitalwandler vorhanden, mit welchen Du z.B. Spannungen (beisp. 0....5 Volt) Messen kannst. Brauchst Du den AD nicht, dann können die gleichen Beinchen als Normale I/O (Eingan oder Ausgang) progrmmiert werden.
und die "normalen" Ports können nur als Eingang oder Augang benutzt werden.
So wenn Du jetzt eine (speziell in diesem Fall) Leuchtdiode z.B. Blinken lassen möchtest, dann Kannst du entweder nur das einzelne Beinchen oder alle Beinchen für den entspr Port (max. 8 Pin's) dafür programmieren (Leuchtdiode mit Vorwiderstand direkt anschließen und den anderen Fuß der LED an Masse.
Du kannst auch z.B. 4 Beinchen als unterschiedliche Eingänge und die anderen 4 Beinchen aus Ausgänge verwenden, jeder kann ein einzelnes Signal erzeugen oder verarbeiten. Ein Port hat meist 8 Pins (Beinchen), es gibt aber auch Ports mit weniger Pins, aber keine mit mehr Pins (Ist ja ein 8-Bit Prozessor) und so ein AVR (ATmega) hat schon ein paar Ports.
Möchtest Du einen Eingang z.B. für einen Taster (Ja das ist jetzt auch schon ein Sensor) verwenden, muss nur das entspr. Beichen so eingestellt werden, dass dieser weis das nicht raus geht sonder rein kommt. Taster nach Masse und den anderen Kontakt an das Beinchen. Sicherheitshalber noch einen Widerstand (1 KiloOhm) von +5V auch an das Beinchen, damit da scon mal was ist, was durch den Taster nach 0 Masse) geschaltet werden kann ohne gleich einen Kurzschuß zu verursachen.
Ist das so Komliziert verständlich ausgedrückt?
Nochmal:
- einige Anschlüsse habe eine feste Bedeutung
- einige Anschlüsse haben mehrfache Verwendungsmöglichkeiten
eine Spezielle Funktion oder eine allgemeine Funktion
(ISP oder (XOR) Serielle Schnittstelle oder (XOR) AD-Wandler
- einige Anschlüsse haben nur eine Funktion
Eine Funktion kann sein: Digital Ein- oder Ausgang, Seriellen Schnittstelle, AnalogDigital-Wandler, PWM (wieder was neues) PulsweitenModulation, SPI, TWI (I²C-Bus) usw. usf.
Das ist ja das Geile, dass ich im Prinzip ein und den Selben "Fuß" oder ein und das gleich Board mal so und dann wieder (natürlich in einem anderen Programm mit anderen Anwendung) anders benutzen kann.
Stells Dir so vor: Du Hast eine Steckdose (im Beispiel den ATmega) und je nachdem was Du da reinsteckst (das wäre dann das Programm) leuchtet enteder eine Lampe oder es Spielt ein Radio. (Jaaaa ganz weit her geholt)
Nicht ganz *LOL*:Zitat von Thomas1701
Das Programm Schreibst DU.
Der Compiler erstellt das Programm (HEX-Datei)
Der SPI (Serial Programming Interface) stellt die Verbindung für die Programmierung her. (Meist ist beim SPI auch ein Programm dabei mit dem die HEX Datei in den ATmega übertragen wird.
Einen ISP hast Du doch schon (InternetServiceProvider = Internet Anbieter(Telekom/AOL/O2/Alice oder was ähnliches usw usf.))
Hoffentlich wird's Dir jetzt nicht schwindelig.
Schau dir doch auch mal folgende Seiten an:
* http://www.rn-wissen.de/index.php/AV...leicht_gemacht
* http://www.rn-wissen.de/index.php/Mi...rd_fang_ich_an
* http://www.rn-wissen.de/index.php/At...ntroller_Mega8
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
SPI => Serial Peripheral Interface
ISP => In System Programmer
SPI ist die Bezeichnung des Busses, mit dem die Daten übertragen wird. Mit einem ISP kann man den µC in der fertigen Schaltung programmieren und muss ihn zum Programmieren nicht ausbauen. Ein ISP ist günstiger als ein normaler Programmer, dafür kann man z.B. µC programmieren, die man mit einem ISP nicht mehr programmieren kann. Das ist der Fall, wenn man beim µC die Fusebits falsch einstellt.
Ja stimmt auch (halbwegs), aber macht mir den Jungen nicht noch ganz verrückt.
Lass Ihn doch erst mal runterschlucken
Vor lauter ISP, ISP, SPI, ASB, IPS, DDR, SIM, ESP, ABS
InSystemProgrammer
InternetServiceProvider
SerialPeriphalInterface
ArbeiterSamariterBund
IntelligentProtectionSystem
SingleInleinModule
ElektronischerSpurAssistent
AntiBlockiersystem
undwasdasonstnochsorumkreuchtkannmanschonmaldurche inanderkommen![]()
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
Du hast das ganze richtig erfasst.
Für die Übertragung mit USB habe ich dir schon diesen Link geschickt www.ullihome.de/index.php/USBAVR-ISP/de
Es gibt aber auch einige andere, je nach dem wie viel du ausgeben willst.
Ja du kannst es mit einem USB ISP übertragen. Es ist egal welche Schnittstelle der PC hat. Es muss nur der Anschluss beim Board (µC) passen. Da das ein Standard ist kannst du irgendeinen nehmen. Der Link wurde schon weiter oben geschrieben www.ullihome.de/index.php/USBAVR-ISP/de
Hallo Thomas,
Stimmt schon - es ist anfangs etwas schwer, dieses ganze Programmieren und Programmieren zu unterscheiden. Du hast mit Deiner Aussage oben recht.Zitat von Thomas1701
Du schreibst das Programm in einer geeigneten Programmiersprache, z.B. in C, in dem Du auf eine für Menschen halbwegs verständliche Weise fixierst, was Dein Controller machen soll. Der Compiler (=Übersetzungsprogramm, Beispiel AVRStudio für "C") übersetzt diesen Text (Text = Quellcode, er kompiliert ihn) in mehreren Schritten (die sind hier der Kürze wegen nur so erwähnt) in eine sogenannte Maschinensprache. Diese Übersetzung (das Kompilat) wird in unserer Umgebung (d.h. Mikrocontroller, AVRStudio und so) als *.hex-Datei gespeichert. Das ist das Programm, in dem der Controller alle Anweisungen, Werte und Zustände erkennt, mit denen er Deine Wünsche ausführen kann - wenn das Quellprogramm fehlerfrei von Dir - dem Programmierer - geschrieben war.
Nun muss man diesen Hexfile in den Controller laden (steht ja schon oben sehr schön erklärt) - man flasht den Controller - heißt so, weil der Programmspeicher des Controllers "Flashspeicher" genannt wird. Jetzt kommt der Programmer ins Spiel, so nennen wir das Teil, das den Hexfile zum Controller z.B. über die die serielle Schnittstelle SPl rüber"morst". Diese Programmer gibt es für serielle Schnittstellen (die seien nicht so gut), für parallele Schnittstellen (also Druckerschnittstellen) und natürlich auch für U5B-Schnittstellen, letzteres z.B. dieses hübsche Teil hier. Für so einen Programmer braucht man natürlich noch ein Kabel (in diesem Fall U5B-A nach U5B-B) und ein zweites Kabel vom Programmer auf den "Programmierstecker" in Deiner Platine (sprich "Target" oder so). Dieses Kabel im Link als Positon 2 oder 3.
Ich hoffe ich mich für Dich veständlich und nicht zu langatmig ausgedrückt habe (Nachtrag: doch zu viel geschrieben, andere waren viel schneller).
Viel Erfolg.
PS: Vielleicht liest Du Dir diese Seiten noch durch, und ganz ausführlich ist natürlich das da. Wenn Du auch noch zu Elektronik etc etwas wissen willst, vermutlich Dein Wissensstand von vor ein paar Tagen, dann schau hier herein. Und bei Fragen: schreib einfach wieder.
Ciao sagt der JoeamBerg
Das ist genau das was Dich vermutlich so konfus macht.Zitat von Hubert.G
Hier der Link zum MyAVR mySmartUSB MK3 (ich hab meinen allerdings bei Conrad , im Laden gekauft und nicht im Onlineshop).Zitat von darwin.nuernberg
Es gibt auch noch weitere USB ISP Geräte, z.B. den von RobotikHardware,
mit welchem ich allerdings Probleme hatte.
Was Hubert.G übersehen hat, der von Ihm vorgstellte ISP ist zum selbst basteln und hat seinerseits einen AVR drauf, welcher ebenfalls erst programmiert werden muß. Da Du noch keinen ISP hast, beißt sich der Hund in den Schwanz. Entweder Du besorgst Dir von jemanden einen vorprogrammierten CHIP (AVR) oder besser dann doch eine komplett aufgebautes und geprüftes Modul.
Ich hab da schon so meine eigenen Erfahrungen gemacht und glaube mir, so verlockend der Selbstbau ist, erst mal müssen die Voraussetzungen geschaffen werden, dann kann man immer noch (als Reserve?) einen eigenen Progammer bauen.
Um es kalr zu stellen: mit Target meint er Dein Board auf dem der AVR (ATmega) drauf ist. Das Kabel ist, bezw. nennen wir ISP-Kabel.Zitat von oberallgeier
ACHTUNG: Nach ATMEL Standard (das ist der Hersteller der ATmegas) gibt es zwei verschiedenen Bauformen für den ISP-Stecker. Überwiegend und auch hier im Forum hat sich der 10-polige Stecker durchgesetzt, es gibt aber auch einen 6-poligen Stecker. Die beiden Versionen des Steckers sind natürlich gegeneinander nicht austauschbar, da diese anders belegt sind, wär ja sonst viel zu einfach für Dich.
z.B. der Programmer vom ComputerClub² werwendet meines wissens noch 6-policgen Stecker.
Also VOR dem Kauf klären was Du Dir da bestellt.
Im Industriellen Bereich habe ich aber auch schon gesehen, dass jeder Hersteller sein eigenes Süppchen kocht, nur um gänzlich inkompatibel zu bleiben und damit auch ja niemand mit so einem "normalen" 08/15 Programmer was auf die schnelle ändern kann.
Im Folgenden:
Genau das ist das Problem:Zitat von Hubert.G
Wenn ich am Gerät erst noch was rumlöten muß, ich wir wissen ja nicht ob unser "Klient" löten kann, ist da schon wieder eine große Fehlerquelle drin.
Und wenn man dann erst den Support kontaktieren muß, welcher nach "Murphys Gesetz" erst am Wochenende benötigt wird, wenn keiner da ist, hat man wieder Frust statt Lust. Daher Rate ich zu einem fertigen und Geprüften Gerät. Die Fehlerquelle ist dann schon mal ausgeschlossen.
Klar kann auch mal ein Neugerät defekt sein oder das Teil durch falsches anschließen zerstört werden, aber da steck man halt auch nicht drin.
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
Lesezeichen