Hallo liebes Forum...
Ich bin am verzweifeln. Seit Tagen durchstreife ich sämtliche
Internetquellen zum Thema PIC programmieren, aber da ist permanent von
bereits fertigen Listings die Rede, und welche Adressen was machen, und
und und...
Auch hier im Wiki bin ich durch, und verstehe wirklich nur Bahnhof.
Man wird irgendwie erschlagen mit Hardwarefacts und Funktionen, die ich
für den Ersteinstieg aber nicht wirklich brauche.
Folgende Ausgangssituation:
Ich habe mir 2 Firstwatt F5 Monoblock Endstufen für die heimische
Audio-Anlage gebaut, und will diverse Messwerte (Temp, Spannungen,
etc...) auf einem 4x40 Zeichen LCD darstellen.
Da ich vor 15 Jahren mehr oder minder ambitioniert Quickbasic 4.5
progammiert habe, dachte ich, dass der Einstieg in die
Microcontrollertechnik schon irgendwie zu meistern wäre.
Weit gefehlt.
Das Kit (bestehend aus USB-Kabel, Programmer, LowPin Demo Board mit 4
Leds, Poti, Taster und PIC16F690) liegt vor mir, und das einzige, was
ich bislang ERFOLGREICH geschafft habe, ist das löschen des
Demoprogrammes, so dass auf dem mitgelieferten Demoboard nun die LED's
dunkel bleiben. :(
Ich habe folgende Software installiert:
- PICkit 2 v2.61
- MPLAB IDE v8.83
Verstanden habe ich, dass das erste Programm anscheinend dazu dient, die
Kommunikation zwischen PC und µP herzustellen?
Unter MPLAB soll man dann programmieren können- aber selbst nach lesen
diverser (natürlich leider ausschließlich englischsprachiger) Tutorials
und Hilfen ist das einzige Resultat ein rauchender Kopf.
Auf dieser Internetseite gibts ein Beispiellisting, aber ich komme ja
nichtmal zum eingeben von Programmcode, weil ich keinen Plan habe, wie
man das dann auf den PIC bekommen sollte (bzw. wie man ihn überhaupt
unter MPLAB eingeben kann, denn da finde ich kein entsprechendes
Fenster?)
http://www.electronics-lab.com/projects/test/016/index.html
Herrje. Eventuell ging es ja jemandem genauso wie mir, und kann mir
einen Tip geben.
Wahnsinn, wie verwirrend und erschlagend das alles ist, wenn man sich
noch NIE damit befasst hat.
Ich frage mich, ob es sowas wie ein Step-by-Step To Do gibt.
Wirklich von 0 weg. Das finde ich jedoch nicht, bzw. nicht für genau
diesen Kit.
Viele Grüsse und schonmal HERZLICHEN DANK!
Matthias
Matthias schrieb:> Das Kit (bestehend aus USB-Kabel, Programmer, LowPin Demo Board mit 4> Leds, Poti, Taster und PIC16F690) liegt vor mir, und das einzige, was> ich bislang ERFOLGREICH geschafft habe, ist das löschen des> Demoprogrammes, so dass auf dem mitgelieferten Demoboard nun die LED's> dunkel bleiben. :(>> Ich habe folgende Software installiert:> - PICkit 2 v2.61> - MPLAB IDE v8.83>> Verstanden habe ich, dass das erste Programm anscheinend dazu dient, die> Kommunikation zwischen PC und µP herzustellen?> Unter MPLAB soll man dann programmieren können- aber selbst nach lesen> diverser (natürlich leider ausschließlich englischsprachiger) Tutorials> und Hilfen ist das einzige Resultat ein rauchender Kopf.
Das MPLAB ist die Umgebung, in der Du Quelltexte editierst, debuggst,
etc etc.
Was Dir noch fehlt, ist ein C-Compiler. Im MPLAB ist nur ein Assembler
drin. C-Compiler für die entsprechende Architektur (PIC16, PIC18,
PIC24/dsPIC, PIC32) musst Du noch extra installieren. Die gibts hier:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868&page=wwwCompilers
Je nachdem, für welchen Chip Du entwickeln willst, musst Du Dir hier den
passenden Compiler runterladen. Für Dich reichen die Lite-Versionen, die
größeren kosten Geld.
Anschließend schaust Du hier rein:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2122
Das ist das "Getting started".
fchk
Hi,
Um mal Franks (richtigen) Beitrag zu komplettieren:
1. Es gibt eine recht brauchbare deutschsprachige SEite zum Einstig in
die PICWelt. Hast du die schon mal angesehen?
http://www.sprut.de/electronic/pic/anfang/index.html#allgemeinMatthias schrieb:> Ich habe folgende Software installiert:>> - PICkit 2 v2.61> - MPLAB IDE v8.83
Die SW *- PICkit 2 v2.61* sagt mir jetzt direkt nichts. Für den
"normalen" Betrieb ist die aber definitiv NICHT nötig. Programmieren
(Der Vorgang des beschreibens des Bausteins), prüfen, Debuggen und das
CodeSchreiben geschieht alles aus MPLAB heraus und alle PK2 Treiber sind
in MPLAB bereits vorhanden.
Wenn du in ASM schreiben willst brauchst du nichts weiter als die MPLAB
IDE. WEnn du in C Schreiben willst musst du wie Frank schon schrieb noch
die C Compiler zusätzlich installieren.
ICh nehme an das dieses PK2 V2.61 entweder ein Programm ist um
Standalone zu Programmieren, also um ein Proggrammfile auf den PK2 zu
laden ohne das dies direkt gebrannt wird, damit du den PK2 dann
mitnehmen kannst und irgendwo anders irgendwann später ganz ohne PC nur
durch anstecken des PK2 deinen PIC Programmieren kannst.
(Das kann z.B. praktisc sein wenn ein Gerät "Upgedatet" werden muss das
"irgendwo sehr unzugänglich" verbaut ist. Sitzt es auf einem MAst muss
man nicht mit Laptop und allem hinaufklettern, sondern nur das einzelne
PK in die Tasche stecken. Für dich im Moment VÖLLIG Irrelevant.
Das Kit welches du hast ist wahrscheinlich der Vorläufer des PICKit
DEBUG EXPRESS. Ein obsoletes (also veraltetes, überholtes) Starterset.
Aktuell ist das PicKit3!
Allerdings hat das PK2 einen Vorteil den das PK3 nicht hat. Es ist auch
ein Schmalspur LogicAnalyzer!
Zu diesen Startersets gibt es immer Komplette Anleitungen und auch
Beispiel-/ Lernprogramme.
Ich habe gerade mal etwas auf der Microchip Homepage gesucht (Ok, für
einen Anfänger ist es bei den älteren Dingen manchmal nicht ganz
ersichtlich "wo" man suchen muss)
Die Bedienungsanleitung incl. der ersten Schritte dürfte DAS hier sein:
http://ww1.microchip.com/downloads/en/DeviceDoc/Low%20Pin%20Count%20User%20Guide%2051556a.pdf
Die dazugehörigen Übungsfiles sind diese:
http://ww1.microchip.com/downloads/en/DeviceDoc/Pk2-Starter%20Kit%20Lessons%20(b).zip
Das alles -sowie weitere Informationen und das LogicAnalyzer SW
Programm-ist zu finden auf der Microchip Homepage:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805&part=DV164120
Gruß
Carsten
Matthias schrieb:> Ich frage mich, ob es sowas wie ein Step-by-Step To Do gibt.> Wirklich von 0 weg.
Das "To DO" gibt es nicht, das mußt du schon selber tun.
Aber eigentlich ist das alles viel einfacher als du denkst.
"Programmieren" und "Programmieren" sind zwei verschiedene Dinge, die
mancher verwechselt.
Also, du hast ein kleines Board mit nem PIC16F690 drauf.
Dieser PIC braucht zum Funktionieren ein Stück Maschinencode, der was
Sinnvolles tut. Das übliche Format, in dem Maschinencode gespeichert
wird, ist Intel Hex oder Motorola Hex. Soweit ich weiß, benutzt das
MPLab das Intel-Hex Format.
Jetzt gibt es für dich 2 Fragen zu klären:
1. Wie kann ich do eine Hexdatei erzeugen, die das enthält, was ich an
Programm dort drin haben will
2. Wie kann ich so eine Hexdatei in den Programmspeicher meines
PIC16F690 hineinverfrachten
zu 1. Da mußt du irgendeine Programmiersprache nebst dem dazu
benötigten Übersetzungstool dir aussuchen. Für die ersten tappenden
Schritte wäre nach meiner Meinung erstmal Assembler angesagt, aber die
Wahl hast ja du.
zu 2. Da gibt es sowohl innerhalb von MPLab als auch eigenständig
sogenannte Programmier-Programme, die eine Hexdatei lesen können und
über einen passenden Adapter den darin enthaltenen Code in den
Programmspeicher des PIC brennen können. Normalerweise braucht man bei
den PIC16xxx folgende Verbindungen: MCLR, RB6, RB7 und natürlich GND und
VCC. Bei manchen Typen muß man noch RB3 o.ä. sachte (per Widerstand) auf
low legen, aber das liest du besser selbst in der Doku.
Also such dir auf der Platte das Hexfile zu deinem Demoprogramm, starte
das Programmier-Programm in MPLab und brenne dir das Demoprogramm
zunächst erstmal wieder auf den PIC.
W.S.
Du schreibst Du hast einen Programmer ist es ein Pickit2 , ein PicKit3
oder vielleicht doch ein PICkit Serial Analyzer?
Auch wenn die Fülle an Infos erst einmal erschreckend ist, muß man sich
wohl oder Übel schon ziehmlich weit in die Datasheets einlesen um die
PIC´s in den Griff zu bekmmen, weil erst einmal alle Peripheren
Einheiten richtig initialisiert werden wollen (Wie bei PC das BIOS)
bevor Du I/O benutzen , A/D Wandler ansprechen und Texte auf deinem
Display ausgeben kannst (Das muß auch erst richtig initialisiert
werden).
mfG
Michael
Hallo!
Vielen Dank für die Infos, aber ich komme einfach nicht mit MPlab klar.
Wirklich rein garnicht.
Das Getting-Started Tutorial funktioniert leider nicht ansatzweise so,
wie es lt. pdf-file beschrieben ist.
Es scheitert schon bei der Auswahl irgendwelcher merkwürdigen Dateien
bei der Projekterstellung, die ich angeblich in einem bestimmten Ordner
haben sollte. Diese sind definitiv nicht da, und ich weiss auch nicht,
für was man sie brauchen soll?
Leider ist nirgendwo erklärt, wie man einfach Programmcode in den PIC
bringt.
Ich versteh das einfach ned.
Früher gabs einen Editor, in dem man programmiert hat, und das Gedöns
anschließend EINFACH compiliert hat. Nicht mehr, nicht weniger.
Man musste keine Doktorarbeit draus machen.
Kann es sein, dass WinAVR leichter ist?
Ich habs auch schon mit diesem High-Tech C-Compiler versucht, aber da
bringt er mir auch permanent irgendwelche kryptischen Fehlermeldungen,
bzw. finde ich nichtmal ein Fenster, in dem man den Code eingibt.
(muss man ihn im Projekt bei Source Files, Header Files, Object Files,
Library Files oder Other Files eingeben?!?)
Für was brauche ich das eigentlich alles?
auf sprut.de war ich auch schon längere Zeit, aber damit komm ich auch
nicht klar. Entweder liegts an diesem für den Einstieg entschieden zu
komplexen PICKit2, oder ich stelle mich wirklich zu doof an.
es ist eigentlich schon ganz toll erklärt, aber ich bring einfach kein
*.asm file zum laufen.
Gibt es kein deutschsprachiges, EINFACH ZU BEDIENENDES Programm, mit dem
man nichts anderes macht, als den angeschlossenen Mikroprozessor
auszuwählen, ihn zu programmieren (meinetwegen über kopierte Listings
aus dem WWW) und zu starten??
@W.S. : Hallo!
Das Demo-Hex-File habe ich zwar, aber ich habe keinen Plan, wie ich es
vernünftig in den Prozessor bringen soll?
Wenn ich es in MPLAB lade, bringt er irgendwelche Fehlermeldungen, und
in PICKit2 Programm meint er, das Programm sei zu lange für den
Prozessor(?!?), obwohl es ja vorher drauf war...
Herrje, wie kann man so eine Thematik so massiv komplex gestalten?
Das lasse ich mir für IT-Spezialisten oder aber Doktoranden eingehen,
aber doch nicht für einen Elektroniker, der das Ding ohne großen Trara
programmieren will...
Gibt es denn wirklich keine simple, deutschsprachige Software, mit der
man EINFACH den Einstieg findet?
So komplex hätte ich mir das wirklich nicht vorgestellt. Ich möchte
nicht mühselig irgendwelche "libraries und header und sources und was
weis ich noch alles" einstellen, sondern nur den PIC-Typ auswählen, und
loslegen.
Man merkt allerdings, dass die Softwareangebote sich wirklich nur an
Profis richten, und an Einsteiger nicht gedacht wurde.
Also eher doch mit WinAVR versuchen?
Viele Grüsse und vielen Dank fürs Lesen und evtl. Beantworten,
Matthias
Matthias schrieb:> Kann es sein, dass WinAVR leichter ist?
So wie du deine Probleme schilderst, denke ich nicht, dass du mehr
Erfolg haben wirst.
Wie das ganze funktioniert kannst du hier lesen (sorry, aber etwas
Englisch musst du halt schon können, ansonsten wirst du immer Probleme
haben):
http://ww1.microchip.com/downloads/en/DeviceDoc/51281d.pdf
Dann gibts den Project-Wizard, bei dem du schön deinen Prozessor auf dem
DemoBoard auswählen kannst, den Ort, wo das ganze gepseichert werden
soll, UND den Compiler.... (einfacher gehts nun also wirklich nicht
mehr)
Dann hast du ein Fenster mit einer Ordnerstruktur (Source-Files, Linker,
Header.... oder so ähnlich). Jetzt brauchst du noch "NEU" ein .C File zu
erstellen (im selben Ordner abgespeichert) und dann mit der rechten
Maustaste im Verzeichnisbaum hinzufügen...
Schon hast du deine Projektstruktur mit allen deinen Files (kannst noch
mehr hinzufügen...)
Dann musst du das Projekt noch compilieren (Build) und über
Programmer->PicKit2 dein Programmer wählen und das erstellte Hex-File
(wird automatisch ausgewählt) in dein MCU brennen.
Die besten Erfahrunegn habe ich mit den HI-Tech Compiler gemacht, da
gibts auch schöne PDFs mit den Funktionen, und auch Beispiele...
Ebenso gibts hier schöne Beispiel-Projekte, die du dir ansehen kannst:
http://www.microchip.com/CodeExamplesByFunc.aspxhttp://www.microchipc.com/sourcecode/
(Man muss nur etwas suchen). Ebenso ist die Seite von Sprut sehr
informativ, aber leider auf ASM. Aber um ein Grundverständniss zu
bekommen, reicht diese vollends.
Ich habe das Gefühl, dir fehlt es an Motivation etwas selber
herauszufinden, denn ich habe mir damals das Programmiern mit den PICs
im Alter von 16 Jahren selber beigebracht... und sooo schwer war das
auch wieder nicht. (Vielleicht gibts jetzt ja auch schon auf Youtube ein
paar toutorials...)
MFG
Patrick
Hallo Patrik!
Danke für die Infos! Mein Englisch ist nicht schlecht, daran scheitert
es nicht. Das Problem ist die Fülle an Informationen, welche man für den
Einstieg nicht braucht, da sie einen nur erschlagen.
Das von dir verlinkte pdf habe ich durch, und kann sagen, dass es
eindeutig nicht funktioniert, wie beschrieben.
Ab 2.8. Adding files to the Project geht nix mehr weiter, weil genau
diese Dateien nicht drauf sind. Weder auf der CD, noch sonstwo.
Für was braucht man die denn? Das geht auch nirgendwo vernünftig hervor?
Immerhin bin ich jetzt soweit, dass ich die Demo-ASM Files von PICKit in
MPLAB laden kann, und nach dem "Quickbuild" auch auf dem PIC ausführen
kann.
Ich frage mich, warum man dazu dieses Library-Ding auf der Linken Seite
nicht braucht?!?
Ich hab mir anno 1992 mit dem C64 das programmieren beigebracht, und das
war eindeutig ein Spaziergang gegen diesen hochkomplexen PIC-Kram.
Danke nochmal für die Links, ich geh da noch bissl drüber.
Viele Grüsse,
Matthias
OK, zu Punkt 2.8:
Hier kann man vorhandene Dateien hinzufügen (falls du schon ein C-File
oder eine Header-Datei schon für ein anderes Projekt verwendet hast...),
das kannst du aber auch überspringen. Falls du im Windows-Explorer in
deinem Projekt-Ordner schon eine .C und eine .H Datei erstellt hast,
kannst du die auch dort hinzujfügen. (Deine "Arbeits-Dateien")
Das ganze kann aber wie gesagt übersprungen werden, denn die Dateien
können auch später im Datei-Baum (Project-Window) hinzugefügt werden.
Linker-Scripts brauchst du momentan nicht (also überspringen).
Dann kannst du anfangen mit codieren...
Bei den Builds erstellst du dann das Hex-File.
Ansonsten steht alles in dem PDF (Simulator kannst du momentan noch
weglassen)
Alles in allem sind die Kapitel 2 bis 2.12 zu bearbeiten.
Viel Erfolg
Also fuer einen einfachen Einstieg wuerde ich empfehlen:
http://www.mikroelektronika.com
Da gibt es u.a. den Mikrobasic-Compiler, da kannst Du also in Basic
entwickeln. Einfache Demoprogramme gibt es da gleich mit. Die
Demoversion des Compilers ist voll funktionsfaehig, bloss die
Programmgroesse ist auf 2 KB compilierten Code begrenzt (das reicht fuer
den Einstieg und mehr). Der Compiler erzeugt ein HEX-File, dass Du mit
dem Pickit auf den PIC brennen kannst.
Die Mikroelektonika-Produkte sind aus eigener Erfahrung SEHR gut fuer
den Einstieg. Mit den Demoprogrammen hatte ich die erste LED innerhalb
von Minuten am Blinken! Ich empfehle, zuerst einfach den in den Demos
verwendeten PIC auszuprobieren. Wenn das einmal geht, kann man auf
seinen "Liebling-PIC" ueberwechseln. Eben ein Schritt nach dem anderen.
Fuer das Pickit2 gibt es ein Standalone-Brennprogramm (von Microchip
herunterladen), dann sparst Du Dir den Aufstand mit MPLAB. Fuer Pickit3
gibt's inzwischen was aehnliches.
Matthias schrieb:> Früher gabs einen Editor, in dem man programmiert hat, und das Gedöns> anschließend EINFACH compiliert hat. Nicht mehr, nicht weniger.> Man musste keine Doktorarbeit draus machen.
Das ist heute im Prinzip auch noch so.
> Kann es sein, dass WinAVR leichter ist?
Nein. Es ist anders, aber ähnlich komplex, wenn nicht sogar komplexer.
Bei AVRStudio/WinAVR hast Du eine Kollektion verschiedener Tools aus
verschiedenen Quellen, die integriert werden müssen. Bei den
Microchip-Sachen ist alles aus einer Quelle - das vereinfacht vieles.
> Ich habs auch schon mit diesem High-Tech C-Compiler versucht, aber da> bringt er mir auch permanent irgendwelche kryptischen Fehlermeldungen,> bzw. finde ich nichtmal ein Fenster, in dem man den Code eingibt.> (muss man ihn im Projekt bei Source Files, Header Files, Object Files,> Library Files oder Other Files eingeben?!?)> Für was brauche ich das eigentlich alles?
Ich denke, Du bist jemand, der von einer Schulung profitiert. Solche
Angebote gibt es von Zeit zu Zeit - sowohl von Microchip als auch von
Atmel. Frage mal bei den Distributoren nach, die veranstalten von Zeit
zu Zeit solche Trainings, die dann irgendwo in einer großen Stadt in
irgendeinem Hotel stattfinden. Das kostet dann zwar etwas, aber dafür
gehst Du dann auch mit einer lauffähigen Entwicklungsumgebung nach Hause
und hast bereits Dein erstes Programm compiliert.
Bei solchen Trainings wird erwartet, dass Du ein Windows-Notebook
mitbringst. Oft ist im Preis des Trainings ein Demoboard enthalten, mit
dem dann gearbeitet wird.
> Gibt es kein deutschsprachiges, EINFACH ZU BEDIENENDES Programm, mit dem
deutschsprachig: nein, vergiss es. Solltest DU irgendwelche Probleme mit
Englisch haben, bist Du in dieser Materie falsch. Sorry, das mag hart
klingen, aber wenn Du auf diesen Gebiet Erfolg haben willst, hast Du
Englisch einfach zu können. Ist halt so, da kann ich nichts für.
Teilweise sind auch die Trainings in English. Ich war im November
letzten Jahres auf einer AtmegaX-Veranstaltung, da kamen die
Vortragenden von Atmel Norway (wo die AVR Architektur entwickelt wird).
Die hatten dann aber auch wirklich Plan.
fchk
PS: Du wirst Datenblätter lesen und verstehen müssen. Selbst wenn Du
eine IDE mit deutschen Menüs hast, die Datenblätter sind auf Englisch.
Alle. Manchmal auch noch auf Chinesisch und Japanisch als Service für
die Asiaten, aber das wars dann auch schon.
Hallo liebes Forum!
Nochmals VIEEELEN DANK für die ganzen Infos!
Ich weiß, ich bin nicht der geduldigste Mensch auf diesem Planeten,
evtl. erschwert das die ganze Sache nochmals.
Ich möchte nochmals betonen, dass ich durchaus der englischen Sprache
mächtig bin (bin in der Industrieautomation tätig und habe relativ
häufig damit zu tun), das durchlesen von tonnenweise Tutorials in dieser
Sprache jedoch die Hölle ist.
Was ich bislang für mich zusammenfassen kann:
- das PICKit2 war der falsche Kauf, da es den 18Fxxx nicht wirklich
unterstützt (zumindest geht das aus MPLab hervor, und meine beiden
gekauften 18F...-Varianten können nicht angesprochen werden)
- das Einbinden des HighTech C Compilers klappt auch nicht
- Den C18-Compiler, für den es einige schöne deutschsprachige Tutorials
gibt, kann ich mit dem 16Fxxx nicht nutzen
- Es sind viel zu viele Basics, die man für die Nutzung brauchen würde
Um es einmal anders darzustellen:
Ich bräuchte lediglich eine Zusammenstellung, was genau ich für folgende
Anwendung brauchen würde:
- Anzeige von 2 Spannungen und 2 Temperaturen (also 2 Analog- und 2
Digitalwerten über 2 digitale Temperatursensoren) auf einem 4x20 Zeichen
LCD mit HD44780-kompatiblem Chip
Nach folgendem Link wollte ich vorgehen, das scheitert aber auch daran,
dass das Display nichts anzeigt:
http://www.electronics-lab.com/projects/test/016/index.html
Meine Intention war, dass ich mit dem im Link verwendeten PIC beginne
(habe ich auch schon erfolgreich mit dem passenden *.hex-file
programmiert) und daran mein Display anschließe.
Das C-Listing hätte ich dann solange bearbeitet, bis ich für meine
Zwecke die richtige Lösung gefunden habe, denn es sieht ja absolut
einfach aus.
Leider scheitert mitunter es daran, dass ich einfach kein Programm ans
laufen bringe, mit dem ich aus dem C-Code ein passendes Hex-File
stricken kann.
Der verwendete PIC hat ja nicht genügend freie Ein-/Ausgänge, um das zu
realisieren, aber durch die angebliche Pinkompatiblität war ich der
Ansicht, einfach ein "größeres" Modell dafür verwenden zu können.
Kann es sein, dass dieses Display
http://www.ebay.de/itm/LCD-Display-HD44780-4x20-chr-20x4-Yellow-neg-Backlight-/170459060245?pt=Bauteile&hash=item27b026d815
doch nicht wirklich kompatibel zum verwendeten aus dem Bastellink ist?
Ein Kurs ist zwar wirklich eine gute Idee, für mich aber überzogen, da
ich neben dieser Anwendung keine weitere geplant hätte. Erschwerend
kommen die Preise hinzu.
Ich bekomme jetzt von einem netten Bekannten ein Kompettkit zugesendet
(auf der Versuchsplatine ist wohl auch ein LCD) und passende Software
dazu.
Die Lösung mit PICKit sieht für mich doch etwas unpassend für den
Einstieg aus. Eine LED bringe ich damit zwar zum Blinken, aber
letzenendes nur in Assembler, da der C-Compiler nicht funktioniert, bzw.
selbst nach befolgen der Installationsanzweisung- zumindest von mir-
nicht zum Laufen zu bringen ist). Der mitgelieferte PIC 16F690 findet
leider so auch keine großartige Verwendung für LCD-Projekte.
Eure Links schaue ich mir jedenfalls alle an, interessant ist vor allem
pic-projekte.
Wenn jemand- ausser Notschlachtung- noch irgendwelche Tips für mich hat,
wie ich das geplante STRESSFREI umsetzen kann, dann immer (gerne!) her
damit! :)
Viele Grüsse und nochmals Danke für eure Geduld!
Matthias
Matthias schrieb:> das PICKit2 war der falsche Kauf, da es den 18Fxxx nicht wirklich> unterstützt
Was schreibst du denn für einen Quatsch? Weiter ober schriebest du, daß
du eine Platine mit einem PIC16F690 hast. Fang doch erstmal mit dem Zeug
an, was du schon da hast - und zwar ganz klein in Assembler - die
Befehle dazu stehen im Manual zum PIC16F690.
Das einzige, was du für den Anfang üben mußt, ist offenbar das Benutzen
des zu deinem PICKit2 gehörigen Programmier- (Brenn-) Programm. Übe das
doch erstmal, also Testen, ob der PIC leer ist, PIC auslesen und das
Ausgelesene in eine Hex-Datei schreiben, diese Datei mal angucken, eine
andere Hex-Datei in den PIC brennen usw.
Und wenn du mit den PIC16Fxxx so weit klarkommst, dann wäre der rechte
Zeitpunkt gekommen, mit anderen PIC's, C-Compiler und so anzufangen.
Also stell dich nicht so an. Ich hänge dir mal hier eine kleine Demo
dran, das sollte ausreichen, daß du erstmal ein popliges einfaches
Assemblerprogramm assemblieren und daraus eine Hexdatei machen kannst.
Ist - wie gesagt - für dich nur als Demo zu betrachten, es sei denn, du
bist Funkamateur und willst den Netzwerktester umbauen.
W.S.
@W.S.
Hi und danke für dein ZIP!
Hmm, Assembler ist schon extrem harter Stoff. Ich hab mir deine
Programme kurz mal angesehen, und verstehe ehrlich gesagt absolut nur
Bahnhof. Kryptische Befehle, etc...
Irgendwelche Register und Ports und was weiss ich noch alles schreiben
und setzen und und und...
Ich kann mittlerweile folgendes:
Auslesen des PIC, Schreiben auf den PIC (allerdings eben nur diese
Hex-files, die ja nur Code sind), Ausführen von Demoprogrammen auf dem
PIC über MPlab oder PICKit-Software.
Auch hab ich es schon geschafft, anstelle der im Demoprogramm blinkenden
ersten Led die 2,3 oder 4. blinken zu lassen.
Will ich aber dann zwei auf einmal blinken lassen, geht schon wieder nix
mehr, obwohl ich die entsprechenden Programmzeilen einfach kopiert und
um einen anderen Port (1 anstelle der 0) erweitert hab.
Das ist für mich nicht wirklich logisch.
Kurzum:
Assembler ist mir entschieden zu derb, bis ich da ein LCD vernünftig ans
laufen bringe, bin ich reif für die Anstalt.
In C sehen Listings doch sehr logisch aus, es erinnert mich schon stark
an meine Basic-Zeiten in QB4.5 und vorher auf dem 64ger... (waren das
noch Zeiten!)
Ich möchte letztenendes nicht verstehen, warum der Prozessor was wann
wie und weshalb macht, sondern lediglich in C (oder Basic) ein LCD ans
laufen bringen.
Meiner Ansicht nach sollte das nicht unmöglich sein. Wenn ich bedenke,
dass ich bis heute nicht weiss (weil es mich auch nicht interessierte!),
wie ein C64 (oder ein 486ger) funktioniert, und ich ihn trotzdem schön
programmieren konnte, frag ich mich eben, ob das beim Microprozessor
nicht auch irgendwie möglich sein kann?!
Man kann es vielleicht ein wenig mit dem Thema Auto vergleichen:
Viele Menschen nutzen das Ding, können es fahren, wissen aber nicht
ansatzweise, weshalb es denn nun genau fährt.
So ähnlich verhält es sich auch bei mir: Ich möchte das Teil in einer
verständlichen Sprache programmieren, ein LCD dranhängen, mit
entsprechenden Schaltungen (das sollte ich hinbekommen) versorgen, und
los gehts.
Die Schaltungen und das LCD gibts zu hauf, aber eine verständliche
Programmierung scheint etwas härter zu sein...
Viele Grüsse,
Matthias
Matthias schrieb:> Hmm, Assembler ist schon extrem harter Stoff. Ich hab mir deine> Programme kurz mal angesehen, und verstehe ehrlich gesagt absolut nur> Bahnhof.
Ich kann Dich voll verstehen und gerade der PIC-Assembler ist besonders
schwer.
Vor 15 Jahren hätte ich noch das genaue Gegenteil gesagt aber jetzt
würde ich auch nicht mehr zu Assembler raten. Fange ruhig gleich in C
an.
In C kommt man viel leichter zu einem Ergebnis und wird von vielen
Kleinigkeiten entlastet.
Selbst für kleine Programme auf nem 8-Pinner mag ich kein Assembler mehr
benutzen, die Bequemlichkeit siegt.
Und es gibt da auch allgemeine Tips, damit C Programme ähnlich kompakt
und schnell sind, wie Assemblerprogramme.
Wie es aussieht, muß man wohl verschiedene Compiler für PIC10, 12, 16
und 18 verwenden. Das ist ein Unterschied z.B. zum AVR oder 8051, da
kann derselbe Compiler alle Typen programmieren, vom 6-Pinner bis zum
100-Pinner.
Alle Programmierumgebungen sollten eigentlich ähnlich aufgebaut sein.
Man legt ein neues Projekt an, wählt den MC-Typ aus und schreibt ein
oder mehrere Sourcefiles, die man dem Projekt hinzufügt.
Dann gibt es eine Build-Taste, die das ganze compiliert und man schaut
sich die Fehlermeldungen an.
Dann kann man das Hex-File in den Chip laden oder simulieren oder im
Chip debuggen, je nach Hardwareanbindung.
Ich kenne z.B. AVRStudio (AVR) und µVision (8051) und da sehe ich keine
besonderen Probleme für Anfänger.
MPLAB kenne ich nicht. Ich kann daher nicht nicht einschätzen, an
welchem Punkt es bei Dir gerade hapert.
Peter
Also der Pickit 2 unterstuetzt die 18F PICs sehr wohl - das kann ich Dir
aus erster Hand versichern. (ich brenne gerade einen PIC18F14K50).
Lass die Finger von Assembler. Das ist wirklich nicht noetig fuer das
was Du vorhast. Noch dazu sind die PICs nicht gerade komfortable in
Assembler zu programmieren (falls Assembler ueberhaupt komfortabel sein
kann :-)
Nochmals mein Tip mit Mikroelektronika (www.mikroe.com) bzw. Mikrobasic.
Das verfuegt ueber Bibliotheken zur Ansteuerung von Standard-LCDs,
Temperatursensoren sowie der integrierten Analog-Digital-Wandler. Zu all
den drei liefern die fertige Demoprogramme mit, und die sind jeweils
bloss ein paar Zeilen lang. Einfacher geht es nicht mehr.
Peter Dannegger schrieb:> Wie es aussieht, muß man wohl verschiedene Compiler für PIC10, 12, 16> und 18 verwenden.
Naja, das stimmt nicht unbedingt. Mikrobasic (oder MikroC) unterstuetzt
PIC12Fxxx, PIC16Fxxx und PIC18Fxxx. Alles ein- und derselbe Compiler.
Wenn man dsPIC oder PIC32 programmieren will, braucht man zwar einen
anderen Compiler von denen, aber GUI, Bibliotheken usw. bleiben
weitestgehend gleich.
Hallo Forum!
Ich habe mir jetzt nen Atmel Atmega16 besorgt, inkl. passendem
Programmiergerät und einer simplen, verständlichen Software: Bascom.
Genau so habe ich mir das vorgestellt: keine 4 Fenster mit kryptischen
Inhalten, sondern einfach eins, in das ohne großes Tralala das Programm
geschrieben wird, um es anschließend mit einem Knopfdruck zu
kompilieren.
(vor allem ohne vorher noch tonnenweise irgendwelche Verzeichnisbäume
mit Dateien füllen zu müssen).
Ich kann zusammenfassend sagen, dass sich der Atmel weitaus
benutzerfreundlicher darstellt, selbst wenn es sich nur aufgrund der
besseren Software für Anfänger so verhält.
Vor allem ist es da wirklich genau wie gewünscht:
Man ruft das LCD mit einem simplen 2 Zeiler auf, und kann bereits
Zeichen darauf darstellen.
Dabei ist es für mich völlig irrelevant, weshalb der Controller jetzt
genau das Richtige macht- er TUT es einfach.
Wenn ich da an irendwelche merkwürdigen Assemblercodes denke- oh mein
Gott.
Das PIC Kit2 mitsamt 7 Microcontrollern und CD's, IC-Fassungen steht zum
Verkauf. Jemand Interesse?
Viele Grüsse und Vielen Dank für die Infos an euch,
Matthias
Hi
>Vor allem ist es da wirklich genau wie gewünscht:>Man ruft das LCD mit einem simplen 2 Zeiler auf, und kann bereits>Zeichen darauf darstellen.
Und du meinst, das geht in Assembler nicht?
MfG Spess
Hi,
Atmel und Einsteigerfreundlicher?
Der war gut ;-)
OK, mit BASCOM welches ja definitiv für eher Gelegenheitscodierer ohne
große Ambitionen zu professionelleren/Umfangreicheren Projekten Gedacht
ist (Wobei sich natürlich damit tatsächlich vieles realisieren lässt,
wenn jemand damit auskommt ist ja völlig egal...) kenne ich mich nicht
so aus.
Aber mit AVR allgemein hat man doch mehr Stolperfallen für Anfänger...
(SPI Timing beim Programmieren muss händisch bestimmt werden und passen,
Sonst keine Kommunikation Verfusen möglich, Viele Programmer können NUR
LVP, nach Verfusen kein Zugriff mehr möglich und man rätselt warum, Bugs
im Studio. Teilweise Toolchain mit SW von verschiedenen HErausgebern die
manuell konfiguriert werden muss nötig...)
Nicht falsch verstehen: Wenn du nun mit AVR/BASCOM besser zurecht kommst
ist das völlig in Ordnung. Die AVR sind im 8Bit Bereich im großen und
ganzen Leistungsgleich zu den PICs -wenn auch mit geringerer
HArdwareauswahl-. Allerdings sollte dir klar sein das BASCOM eher ein
SEitengleis ist. Man kommt auch zu Ziel, aber es ist etwas völlig
anderes als C oder gar C++ mit dem man bei wirklich großen Projekten
Zwangsläufig konfrontiert wird. Zudem legt man sich damit sehr auf AVR
fest, es gibt zwar auch BASIC Dialekte für andere µC, aber die
unterscheiden sich auch. Will man irgendwann doch C lernen fängt man
wieder bei null an.
(Wenn es aber bei kleinen Projekten und die fixierung auf AVR bleiben
soll, OK)
Evtl. währst du einer, für den ARDUINO tatsächlich eine wirklich gute
Alternative ist. Das basiert auch auf AVR. Es stellt ein Gesamtkonzept
aus IDE und Framework mit Zahlreichen Hilslibs wie man sie auch bei
Bascom findet dar. (ARDUINO ist ja explizit für Nichtelektroniker die
schnell zum Ergebniss kommen wollen Geschaffen, z.B. für Künstler die
ein wenig Bewegung oder Lichteffekte in ihre Projekte bringen wollen)
Der große Unterschied zu BASCOM ist dabei aber das ARDUINO als
Programmiersprache im Grunde schon C entspricht, mit einigen
Vereinfachungen und zahlreichen Libs. Gerade das was du möchtest: Also
zwei Zeilen CODE für die Anzeige auf LCD, das geht damit auch. VErbunden
mit einer Kindersicheren IDE.
Da es sich hierbei aber um eine C Basierende Umgebung handelt ist der
Umstieg auf andere Controller/Umgebungen im nativen C bei weitem viel
leichter. Man fängt halt nicht wieder bei Null an, sondern kann sehr
große Teile seiner bis dahin gesammelten Erfahrung weiternutzen.
Aber wie gesagt, da musst du selber wissen wo du hin möchtest, ICh sehe
das alles natürlich mehr aus Sicht des Elektronikers der sich auch
beruflich mit µC Programmierung beschäftigt und bei Fragen von Anfängern
"ähnliche" Absichten zum Werdegang dahinter vermutet.
Allerdings muss ich eines hinsichtlich PIC ganz klar sagen:
Ich habe da sehr stark den Eindruck das wir da irgendwie über zwei
völlig verschiedene Umgebungen reden... Bei MPLAB ist es definitiv nicht
nötig VIER FENSTER zu füllen. Egal ob man nun in ASM, C oder einem BASIC
Dialekt schreibt... Für die meisten Dinge reicht ein Fenster, für
umfangreichere C Projekte hantiert man noch öfter mal mit zwei Fenstern.
(die jeweils offene Datei und der Projektbaum). Aber drei oder mehr
Fenster braucht man nur bei umfangreichen Debugsessions wo man sich dann
noch die Registerinhalte während des Programmablaufs ansehen will usw.
Bei der aktuellen VErsion muss man es zwar alles Projektorientiert
machen, damit ist es in der Tat aufwendiger als nur auf "NEU" drücken
wie früher, aber wirklich schwierig ist es nicht.
Loslegen: Anklicken: Projekt-> Projekt Wizard.
Dann kommt ein Dialog wo du nacheinander fast Kindersicher abgefragt
wirst was du machen willst (Baustein, ASM oder C, Projektname und
Verzeichniss usw). Als weiteren Click dann noch: FILE -> ADD NEW FILE TO
PROJEKT.
Hier dann den neuen Filenamen eingeben (mit .ASM für Assembler, oder
.c/.h für C) Das richtige Einordnen erfolgt automatisch.
Danach das Filefenster vergößern und man kann alles in diesem einen File
erzeugen. Mit einem Klick auf den Build ICON wird es dann ggf.
Compiliert, Assembliert und gebrannt.
Zu Assembler:
Assembler ist halt die Grundsprache der µC welt. Auch deine BASCOM
Programme werden intern in ASM umgewandelt und erst DANN in
Maschinensprache übersetzt. JEDER µC wird im grunde also mit ASM
Programmiert.
Aber ob DU nun in Assembler schreibst ist völlig deine eigene
Entscheidung. Du hättest ja auch einfach bei der Abfrage auf "C" stellen
können... Dann hättest du mit ASM nichts zu tun gehabt. Oder du hättests
dir einen der BASIC Dialekte für PIC besorgt und dann in BASIC
geschrieben... Das ist alles keine Frage der Bausteine sondern schlicht
der durch den Nutzer gemachten Einstellungen. Und dieser
"konfigurationsaufwand" steht meiner Ansicht nach auch in keinem
ernsthaften Verhältniss zur richtigen µC Programmierung.
Aber wie gesagt, wenn du mit AVR jetzt gut zurechtkommst, dann bleibe
ruhig erst einmal dabei. Wenn du beruflich nichts in der Richtung machen
willst ruhig auch beim BASCOM. ICh bin, obwohl selber durchaus
PIC-Liebhaber, der letzte der dir das ausreden würde, vertrete ja selber
die Meinung das man immer den für sich und das jeweilige Projekt
optimalen µC aussuchen soll, unabhängig von irgendwelchen
QUASIRELIGIÖSEN ansichten.
ICh wollte nur darauf hinweisen das du irgendwie "völlig" neben der Spur
bei MPLAB gesucht hast. Warum weiß ich nicht... Es gibt halt
verschiedene BEdienphilosophien und jede von denen ist für einige Nutzer
klar und leicht verständlich, für andere wiederrum völlig kryptisch. Das
ist auch völlig unabhängig von Sonstigen "geistigen Fähigkeiten" manches
liegt einem, manches nicht. Vielleicht war das hier die Ursache.
Nur eines wiederhole ich noch einmal: BASCOM macht es Anfängern leicht.
Und wenn es für dich reicht gibt es auch keinen GRund unbedingt etwas
anderes zu nehmen -AUSSER- Du willst irgendwann einmal etwas Beruflich
in diese Richtung unternehmen.
Falls es so sein sollte, du also entsprechende berufliche Ambitionen,
selbst in weiter FErne, sieht, dann lasse am besten GLEICH die Hände
davon, denn fast alles was du damit lernst kannst du wieder vergessen...
Dann wähler wirklich lieber den etwas schwierigeren Einstieg in C, oder
wenn dir das noch zu Aufwendig ist, bzw. dir momentan nicht schnell
genug zum Zeil führt zumintest ARDUINO.
Da hst du für deine Weiterbildung deutlich mehr davon!
Gruß
Carsten
Hallo Carsten und vielen Dank für deine ausführliche Antwort!
Leider habe ich es NICHT geschafft, mittels MPLab eine andere Sprache
als das integrierte Assembler zum laufen zu bringen.
Der High-Tech C-Compiler ließ sich ebensowenig drauf einrichten, wie der
Basic-Compiler.
Nach diversen Tutorials funktionierte es nicht, oder setzte andere
Gegebenheiten vorraus (PIC18f oder Kaufsoftware).
Der Hintergrund zum Wechsel auf Atmel16 ist mitunter auch, dass ein
Arbeitskollege von mir sehr ambitioniert damit (+Bascom) arbeitet und
mir helfen kann.
Ich habe in den letzten Tagen wirklich sehr viele Seiten und Tutorials
zum PIC durch, aber 99% beschäftigen sich mit den Interna des µC's, und
irgendwelchen kryptischen Befehlen. Das interessiert jemanden, der
lediglich auf einem LCD 4 Werte anzeigen lassen will, einfach nicht
wirklich. Mit blinkenden LED's anfangen würde mich nicht zum Ziel
bringen, und selbst wenn, dann nur nach 34 Nervenzusammenbrüchen.
Die Interna interessieren mich nicht, ich möchte einfach ein simples
Basic-Programm schreiben, das mit sehr wenig Code sehr viel Ergebnis
liefert.
Da es nur um das Auslesen von 2 Temperaturwerten aus DS1820 und 2
Analogwerten geht, ist wirkliche Performance des Programms auch nicht
angesagt.
Da ist Bascom schon sehr gut. Ich konnte schon ein wenig damit
herumexperiementieren und bin einfach begeistert.
Es ist logischer, einfach Programmcode eingeben, und anschließend
flashen.
Bei MPlab kamen (ich habs insgesamt 3 Leute ausprobieren lassen)
permanent irgendwelche Fehlermeldungen, oder es fehlten angeblich
Dateien, etc... pp.
Auch habe ich kein To-Do gefunden, eine vernünftige Schritt für Schritt
Anleitung zum einrichten des C-Compilers. Die bestehenden PDF's stimmen
einfach nicht mit dem tatsächlichen Installations- und
Einrichtungsverlauf überein.
Das alles fällt bei Bascom komplett weg: Installieren + Läuft. Noch dazu
simpel in Deutsch gehalten.
Nicht falsch verstehen, ich kann Englisch, brauche es beruflich häufig
und habe zu allem Überfluss auch mit Automatisierungstechnik zu tun.
ABER: Ich habe nicht vor, den µC für etwas anderes als private Zwecke zu
nutzen. Und da ich Basic kenne, es einfach viel simpler und logischer
als Assembler ist und ich schnell Ergebnisse haben mag, ohne zu wissen,
was der Prozessor jetzt im Hintergrund genau macht, scheint es für mich
die bessere Lösung zu sein.
Die Lösung mit Ardunio ging mir auch schon durch den Kopf, ich bin dann
aber zum Atmel16 gegangen, weil ich durch den Kollegen eben identische
Ausgangsbedingungen haben wollte.
Viele Grüsse,
Matthias
Matthias schrieb:> Der Hintergrund zum Wechsel auf Atmel16 ist mitunter auch, dass ein> Arbeitskollege von mir sehr ambitioniert damit (+Bascom) arbeitet und> mir helfen kann.
Das ist oftmals mehr Wert, als das absolute super-duper Tool.
Laß Dir nicht einreden, daß Bascom ne Sackgasse ist. Den Programmaufbau
kann man in jeder Programmiersprache lernen und dann die gewonnenen
Erfahrungen weiter verwenden.
Wenn Du mit Bascom Erfolge hast, ist das doch schön.
Das Manual BASCAVR.PDF hast Du bestimmt schon gefunden.
Es kann sein, daß Du irgendwann nicht mehr die vorgefertigte Funktion
für irgendwas finden wirst. Dann kann man diese auch in Bascom selber
programmieren, wie in jeder anderen Sprache auch. Das ist dann der
Schritt vom Legosteinchen weg und hin zum selber bauen.
Peter
Hallo Peter!
Danke auch dir für deine Ausführungen!
Genau so geht es mir auch: Ich möchte durch Erfolge lernen, nicht
lernen, um Erfolge zu haben. Das klingt erstmal völlig absurd, ist es
aber eigentlich nicht.
Kurzum: Durch bestehende Programme und dessen Veränderungen
Schlüsselerlebnisse zu haben, und nicht mühsam irgendwelche Register und
Adressen in Assembler rumschubsen. (völlig legitim für jemanden, der das
braucht oder von Interesse für ihn ist, für mich jedoch unbrauchbar)
Ich versuch's jetzt in Bascom. Es dauert noch, bis alle Teile da sind,
danach gibts einen ausführlichen Bericht!
Viele Grüsse,
Matthias
Matthias schrieb:> Ich bin am verzweifeln. Seit Tagen durchstreife ich sämtliche> Internetquellen zum Thema PIC programmieren, aber da ist permanent von> bereits fertigen Listings die Rede, und welche Adressen was machen, und> und und...
Ohne jetzt alles durchgeelsesn daher vielleicht doppelt.
Du zäumst das Pferd von hinten auf. Ohne Vorkenntnisse, gleich mit MPLB
und so einem Projekt anzufangen überfordert vermutlich jeden.
Mein Vorschlag.
Da du Quickbasic kannst hol dir den Basic Compiler von Miroelektronika.
http://www.mikroe.com/eng/products/view/9/mikrobasic-pro-for-pic/
Der ist sehr liebevoll gmacht, kostenlos bis ein paar k Codesize hat ein
grosses englische Forum und führt auch C Sprachelemente ein (was bei µCs
von Vorteil ist).
Lad dir die Beispiele runter und spiel damit rum.
Damit hast du erst einmal genug zu tun.
Es gibt eine weitere gute Tutorial-Seite, die noch nicht erwähnt wurde.
Speziell die Unterseite "Midrange PIC C Programming", Kapitel 1 "Basic
Digital I/O" beschreibt, wie man den Hi-Tech compiler innerhalb MPLAB
zum laufen kriegt. Alles in englisch, klar...
http://www.gooligum.com.au/tutorials.htmlhttp://www.gooligum.com.au/tut_midrange_C.htmlhttp://www.gooligum.com.au/tutorials/midrange/PIC_Mid_C_1.pdf
Man sollte sich die .PDF ausdrucken (!) und ordentlicht durchlesen, dann
das Beispiel Schritt-für-Schritt nachvollziehen, zunächst mit dem dort
verwendeten uC (auch wenn man den nicht hat).
Erst wenn daraus eine fehlerfreie .HEX Datei erzeugt wurde, sollte man
das Projekt nochmals auf den eigenen Typ des uC wiederholen.
Gruss
Habe kurz mal alles durchgelesen..
Meine Meinung ist, es ist für den Einstieg wesentlich einfacher wenn man
Bascom nimmt, wenn wie ich am Anfang Null Ahnung hatte, was programieren
anbelangt.