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#allgemein Matthias 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.aspx http://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.
wenn's deutsch sein soll und um den einstieg zu meistern, kann ich die seite: http://pic-projekte.de/ empfehlen.
Master Snowman schrieb: > wenn's deutsch sein soll und um den einstieg zu meistern, kann ich die > seite: http://pic-projekte.de/ empfehlen. Da stimme ich zu. Generell solltest du dich eher mit den PIC18Fxxxx anfreunden, als mit den PIC16Fxxx. Die PIC18 sind etwas benutzerfreundlicher, es ist vieles einfacher geworden. Billiger sind sie zumeist auch noch. Da ist mal was zum Thema absolute Basics PIC allgemein (deutsch): http://pic-projekte.de/wiki/index.php?title=PIC_Tutorial Dann nimmst du dir MPLAB und C und einen PIC18 dann machst dieses Tutorial durch: http://pic-projekte.de/wiki/index.php?title=PIC_C_Tutorial Da ist eine Schritt für Schritt Anleitung zum Einrichten da ....
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.html http://www.gooligum.com.au/tut_midrange_C.html http://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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.