Autor |
PIC programmieren mit PICALLW Suche nach: pic (2056) |
|
|
|
|
BID = 71692
Raphael Stammposter
Beiträge: 451 Wohnort: Schwabenland
|
|
Hi,
nach langer Abstinenz kehre ich jetzt endlich zu euch zurück ..
Also ich hab mir jetzt endlich einen PIC PROGRAMMER besorgt. Es handelt sich um einen Bausatz mit der Bezeichnung "P16PRO KIT 96 mit 74LS05". Ich hab das Ding zusammengebaut und mit der Software PICALLW getestet. Die Software wurde vom Bausatz hersteller empfohlen(bzw.ist für diesen bausatz konzipiert).
Also...da ich so ziemlich keine Ahnung von Microcontrollern bis jetzt hab und nur sehr grundlegende Informationen aus einem Tutorial habe hab ich mal einen Hauffen Fragen. Die Programmiersprache die man verwendet ist ja Assembler. Wie(mit welchem programm) erstelle ich jetzt einen Assembler-Code den ich in PICALLW laden kann bzw. auf dem PIC speichern kann?
Und kennt jemand ein Tutorial für Assembler, welches an sich an Microcontrollern orientiert? ich hab schon das Tutorial sprut.de gelesen..aber ich glaube dass man dazu scho Assembler erfahrung haben sollte.
Also ich bite um Hilfe
Raphael |
|
BID = 71693
Raphael Stammposter
Beiträge: 451 Wohnort: Schwabenland
|
|
hab ich vergessen: Die Software und Infos zum bausatz gibt es auch picallw.com |
|
BID = 71710
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Wie(mit welchem programm) erstelle ich jetzt einen Assembler-Code |
Hol dir mal bei www.microchip.com die kostenlose MPLAB IDE.
Das ist die Entwicklungssoftware zu den PICs.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 71720
Raphael Stammposter
Beiträge: 451 Wohnort: Schwabenland
|
Und was macht dieses programm jetzt..kann ich damit den Assemblercode schreiben oder wie? Kann ich mit dem Programm den Code auch direkt auf den yC brennen oder schreib ich damit nur eine .hex datei?
|
BID = 71727
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Mit dieser SW kannst du zunächst einmal dein Assembler- Programm schreiben, wobei der Editor dich z.B. durch Farbgebung bestimmter Begriffe unterstützt.
Danach kannst du das Programm damit assemblieren, es also in die Maschinensprache umwandeln, wobei du verschiedene Format von Outputdateien erzeugen kannst.
Evtl. kannst du bei dieser Gelegenheit auch externe, bereits getestete Programmteile einbinden.
Der nächste Schritt ist meist eine Simulation des Programmablaufs mit dem eingebauten Simulator/Debugger. Hierbei treten schon viele Programmierfehler zu Tage, bei denen du am in Echtzeit laufenden Prozessor nur das fehlerhafte Ergebnis besichtigen kannst.
Selbstverständlich ist auch ein Disassembler vorhanden.
Weiter ist die IDE in der Lage die von Microchip hergestellten Programmiergeräte anzusteuern.
Inwieweit das auch mit Fremdfabrikaten funktiert, weiß ich nicht. Eine entsprechende Kompatibilitätserklärung sollte der Fremdhersteller abgeben.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 71729
Raphael Stammposter
Beiträge: 451 Wohnort: Schwabenland
|
Cool danke...also ich denke dass ich erstmal ein bisschen mit Assembler rumprobieren werde bevor ich etwas auf den PIC brenne. DAnach werd ich mal weitersehen. Wär nett wenn jemand ein Tutorial für Assembler usw. hätte...sonst bracuh ich ewig bis ich das drauf hab. Ein erläutertes Beispiel für eine ultraeinfache Schaltung(Taster und LED... mit PIC) wäre auch super...vielelicht hat jemand sowas rumfliegen.
mfg
Raphael
|
BID = 71740
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Sieh dich mal bei microchip um, da gibts viele Anwendungsbeispiele.
Mit der MPLAB Installation kommen auch einige einfache Bespiele für den Gebrauch der IDE mit.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
[ Diese Nachricht wurde geändert von: perl am 28 Mai 2004 23:11 ]
|
BID = 73171
inst Gelegenheitsposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 64 Wohnort: Salzburg
|
Hi!
Welchen Pic verwendest du denn??
Ich hab selber vor ca. einem dreiviertel Jahr PIC programmieren begonnen und kanns mittlerweile schon ein wenig :D
Daher hab ich auch einige Beispiele (einfachere, kompliziertere,...)
Meine sind allerdings alle für den PIC16F876.
mfg inst
|
BID = 73454
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
Hallo Raphael,
Sprut ist eigentlich die beste Seite zum Thema PIC und für den Einstieg perfekt. Um mit PIC-Assembler anzufangen brauchst du eigentlich nicht viel (die MPLAB Entwicklungsumgebung ist bei großen Projekten praktisch,aber nicht wirklich notwendig):
Du brauchst einen Texteditor,mit dem du den Quelltext erstellst (Notepad,vi,oder jeder andere). Dieser Quelltext wird dann von einem Assembler (das Programm wird auch Assembler gennant, im gegensatz zum Compiler+Linker bei höheren Sprachen[C,C++,Basic,etc] ) in das eigentliche Programm übersetzt,daß in den PIC "gebrannt" wird. Das Programm liegt meisten in einer sog. HEX Datei vor,die von deiner Programmiersoftware geladen wird. Es gibt einen PIC16F84 Assembler, der im Webbrowser läuft :
http://www.geocities.com/dinceraydin/pic/djpasm/djpasm.html
damit kannst du Programme übersetzen,ohne etwas auf deinem Rechner zu installieren.Und den passenden Emulator gibts auch Online:
http://www.feertech.com/misim/homepage.html
Damit kannst du dein Programm auf einem virtuellen PIC testen.
Das genannte wurde so ähnlich von anderen schon gesagt,ich wollte das nur nochmal wiederholen.
Ich versuche jetzt mal eine kleine Assembler-Einführung zu geben...
|
BID = 73472
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
Ich behandel nur die PIC12F und PIC16F typen:
Erst eine kleine Übersicht über die PIC - Architektur:
Die PICs besitzen die sogenannte Harvard (RISC) Architektur,die besagt, daß die Speicherbereiche für Daten und Programme getrennt sind. (im gegensatz zur vonNeumann -Architektur) Das bedeutet für uns praktisch: Wir haben den Flash Programmspeicher, in den wir unser Programm speichern und einen SRAM Bereich für Daten.Dieser SRAM bereich ist in sogenannte Bänke aufgeteilt, weil wir nur 128 Speicherstellen dieses Bereiches direkt ansprechen können. Die Bank wird durch Bits in dem sog. STATUS -Register eingestellt.Jetzt wird es etwas kompliziert: Im SRAM bereich befindet sich nicht nur frei zugänglicher Speicher,den wir nutzen können wir wir wollen,sondern auch alle Register,die zum steuern der Hardware benötigt werden.Wieviel SRAM der jeweilige PIC hat, und wo dieser Speicher im SRAM bereich liegt steht im Datenblatt.(bei den meisten PICs liegt z.b von 20h bis 7Fh frei nutzbarer Speicher). Die meisten Befehle benötigen eine SRAM adresse (auch File geannt) und eine Richtung.Wir haben noch ein besonderes W Register,daß in keinem Speicherbereich liegt und als Akkumulator dient.
Nehmen wir ein beispiel:
ADDWF 20h,W
Dieser Befehl addiert die Werte aus dem W-Register und dem SRAM an Adresse 20h und speichert das Ergebniss im W Register.
ADDWF 20h,F
Das selbe wie oben,aber das Ergebniss steht im SRAM.
MOVF 20h, (W/F)
kopiert den wert aus F in das angegebene Ziel (hier ist nur W sinnvoll, bei F passiert wahrscheinlich nichts)
ADDLW 12h
Addiert zum W register eine konstante (der Wert 12h),das ergebniss steht in W
Die ganze Programmierung beschränkt sich beim PIC also auf Transferebefehle, Arithmetische Funktionen und Testbefehle.
Die ganze Hardware (ADC,RS232,IO,Timer,etc)wird über entsprechende Register im SRAM bereich gesteuert.
Auf den Flash speicher haben wir bei den kleinen PICs keinen zugriff (das sind die meisten PICs).
Irgendwie hab ich mich jetzt verrannt...
Also zum Thema Assembler:
Ein ASM (Assembler) Programm ist halt eine abfolge von Befehlen,die dem PIC sagen,was er tuen soll.Beim PIC entspicht ein Befehl direkt eine Speicherstelle im Flashspeicher. Es gibt Befehle, um Werte aus dem SRAM ins W Register zu kopieren und umgekehrt. Dann gibt es Arithmetische Befehle,um z.b Werte zum W dazuzuaddieren oder das W Reg. zu rotieren,oder,oder... Und zuletzt gibt es Test und Verzweigungsbefehle. Der PIC kann nur testen,ob ein Bit gesetzt ist oder gelöscht und dann die folgende Anweisung überspringen.. das reicht aber aus. Sprungbefehle dienen dazu, um unterprogramme aufzurufen,oder direkt an eine andere stelle im Programmcode zu springen.GOTO z.b springt direkt an eine stelle im Programmcode (fast immer als LABEL angegeben). CALL speichert erst eine Rücksprungadresse, springt dann an die angegebene stelle und führt solange das programm aus,bis ein RETURN kommt und springt wieder an die erste stelle zurück (man ruft mit CALL also unterprogramme auf).
Ufff, ich merke gerade,wie kompliziert es ist alles zu erklären. Eigentlich ist alles relativ einfach, es ist nur eine Frage,welche Bits man im welchen Register setzen muss.
Die Datenblätter der PICs sind eigentlich das wichtigste was man benötigt,da dort ALLES drinsteht. Ich such mal ein paar gute PIC Tutorials raus... die können das doch besser erklären als ich.
Gruß,
SIGINT
|
BID = 75023
Raphael Stammposter
Beiträge: 451 Wohnort: Schwabenland
|
Hi,
sorry das ich mich solang nicht gemeldet hab...ich ahbe mich derweil mit ASM programierung beim 486 beschäftigt um etwas grundstoff zu haben.
Also danke für eure ganzen Infos...ich hab schonmal nen egwissen überblick jetzt. Ich hab grad leider viel Stress sonst würde ich mich intensiver damit bschäftigen.
Ich hab grad einen kleinen 12C509 mit dem ich anfangen wollte.
ich meld mich wieder wenn ich zeit zum "studieren" hab. Ihr könnt gerne alle Infos psoten die ihr habt..ich kann aber nur verzögert antworten.
Danke
gruß
Raphael
|
BID = 75061
tixiv Schreibmaschine
Beiträge: 1492 Wohnort: Gelsenkirchen
|
Der 12C509 ist ein OTP Controller, das heisst er kann nur einmal berschrieben werden, danach kann das interne EPROM dank fehlendem Fenster nichtmehr wieder gelöscht werden.
Empfehlenswert für den Einstieg währe der PIC16F84 . Der hast Flash Speicher, und ist beliebig oft neu programmierbar.
|
BID = 75251
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
Code : |
Empfehlenswert für den Einstieg währe der PIC16F84 . Der hast Flash Speicher, und ist beliebig oft neu programmierbar. |
|
Das stimmt heute nichtmehr ganz:
Vom Preis/Leistungs Verhältniss ist der PIC16F84 eine gaaanz schlechte Wahl. Der PIC16F628 z.B ist wesentlich Preiswerter und bietet doppelt Speicher und andere spielereien. Aber FLASH ist für Hobbybastler eindeutig Pflicht. Am besten schaut man sich immer die aktuellen Preise der PICs an und wählt dann den passenden aus. (Ich bin mal gespannt auf die neue PIC10Fxx Reihe)
Gruß,
SIGINT
|