Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Sonntag, 12. Oktober 2008, 12:58

Einführung in PIC Assembler Programmierung

Hallo,

nachdem der Thread "Ortungspiepser funktioniert nicht" in weiten Teilen in Fragen zur PIC-Programmierung abgeschweift ist, besteht die Überlegung, evtl. einen Einsteigerthread für PICs aufzumachen. Was haltet Ihr davon? Bisher weiß ich von zwei Leuten, die das begrüßen würden...
Ein Themen-Schwepunkt sollte meiner Meinung nach zunächst der Umgang mit der MPLAB IDE Entwicklungsumgebung sein, denn ich kann mir gut vorstellen, daß der interessierte Laie, zudem, wenn er vielleicht der englischen Sprache nicht so mächtig ist, da überaupt nicht weiß, wie er anfangen soll und durch die vielen Menüs mit völlig unbekannten Bezeichnungen vollends abgeschreckt wird.
Das Ganze sollte natürlich praxisbezogen sein - ich denke als erstes Beispiel-Projekt z.B. an einen simplen Servo-Reverser.

Was meint Ihr dazu?

Grüße,

Thomas

ro.heg

RCLine User

Wohnort: Quickborn

  • Nachricht senden

2

Sonntag, 12. Oktober 2008, 18:12

Hallo Thomas,
tolle Idee!
Ich würde vielleicht erstmal ganz einfach rangehen.
Es ist eine Erfolgssträne, so ein Ding zum leben zu erwecken, selbst wenn
nur erst mal eine Lampe blinkt.
Soll ich Dir nochwas schreiben:
Der erste PIC16F627 blinkt (mit MPLAB assembl.), die HEX-Datei über die
Hardware hinein damit.
Merkwürdig: mit VISTA lief alles ohne Probleme,
mit XP meldete sich Error(173) 159: Source File pathexceeds 62 characters.
Aber ich will jetzt nicht gleich mit Fragen kommen, das nur am Rande.

Viele Grüße

Rolf

3

Sonntag, 12. Oktober 2008, 18:53

Hi, Thomas,

:ok: :ok: :ok:


Peter
MfG Peter
Was nicht passt, wird passend gemacht.
[SIZE=1]Walkera HM 5G4 RE3LY Basic one HBK2 m. Direktantrieb
Graupner MX12 / FrSky V8HT 2,4 GHz[/SIZE]
Im Bild: meine E91 in 5Zoll

^____

RCLine User

  • »^____« wurde gesperrt

Wohnort: anonymisiert

Beruf: anonymisiert

  • Nachricht senden

4

Montag, 13. Oktober 2008, 00:29

Hallo Thomas,

Zitat

Was meint Ihr dazu?


Deine Idee ist sehr gut ! :ok:

Wenn Du bereit bist Dir diese Arbeit zu machen dann kann man das nur loben.

Gruss Bruno

5

Montag, 13. Oktober 2008, 00:40

Zitat

Original von ro.heg
Hallo Thomas,
tolle Idee!
Ich würde vielleicht erstmal ganz einfach rangehen.
Es ist eine Erfolgssträne, so ein Ding zum leben zu erwecken, selbst wenn
nur erst mal eine Lampe blinkt.

das denke ich auch - bei ersten Schritten sollte man sinnvollerweise mit ganz simplen Code-Beispielen anfangen, um erstmal den Entwicklungsprozess als solches kennen zu lernen, ohne sich zu viele Gedanken um Funktionsweise des Programmes machen zu müssen.

Zitat


Soll ich Dir nochwas schreiben:
Der erste PIC16F627 blinkt (mit MPLAB assembl.), die HEX-Datei über die
Hardware hinein damit.
Merkwürdig: mit VISTA lief alles ohne Probleme,

toll - das ist doch schonmal was!

Zitat


mit XP meldete sich Error(173) 159: Source File pathexceeds 62 characters.
Aber ich will jetzt nicht gleich mit Fragen kommen, das nur am Rande.

ohne da jetzt zu sehr einzusteigen und die Dokumentation zur IDE nach der Natur des Fehlers zu durchstöbern, würde ich anhand des Wortlautes der Fehlermeldung vermuten, daß Dein "Pfad", d.h. die Textzeile, die Ort und Name Deiner Quelldatei spezifiziert, ein wenig zu lang geraten ist. Wenn Du die Struktur Deiner Projekte auf der Festplatte etwas vereinfachst, also z.B.
"C:\PICProjekte\Blinker\Blinker.asm"
statt
C:\Dokumente und Einstellungen\Rolf\Eigene Dateien\PICProjekte\Blinker \Blinker.asm" (= über 80 Zeichen!)
sollte der Fehler nicht mehr aufttreten.

Grüße,

Thomas

6

Montag, 13. Oktober 2008, 01:02

Danke, Bruno! :)
Daß es mit etwas Arbeit verbunden ist, wird sich wohl nicht vermeiden lassen!

Noch habe ich natürlich keinen ausgereiften Plan, welche Richtung das ganze einschlagen wird - Ideen und Anregungen sind da natürlich auch willkommen. Wenn es Sinn macht, könnte es in der Art wie die AVR Bascom Sache laufen, mit einem extra Rubrik, mit entsprechender thematischer Unterteilung. Thomas Radetzki hat ja praktisch schon sine OK dazu signalisiert. Wenn das Projekt auch ähnlich Größenordnung annehmen sollte, wäre natürlich evtl. auch die aktive Mitarbeit weiterer Experten sinnvoll - schließlich kann ich die Forenrubrik auch nicht hauptberuflich betreuen...
(Außerdem habe ich auch nicht Lehramt studiert, evtl. kann das also auch einfach in die Hose gehen)
Ich werde wohl einfach mal (möglichst bei 0) in diesem Thread anfangen, Weiteres wird sich dann hoffentlich ergeben.

Grüße,

Thomas

7

Montag, 13. Oktober 2008, 12:02

Was brauche ich?

Zunächst eigentlich nur die MPLAB IDE - Download kostenlos und auch ohne Registrierung von der Microchip Webseite. Die aktuelle Version ist 8.10.
Bei der Installation muß ggf. ein Vierenscanner vorübergehend deaktiviert werden (bei mir gings aber auch so - scheint vom Rechner oder der Antivieren-Software abhängig zu sein)
Wenn man nur mal probieren will, ob man mit der PIC Programmierei klar kommt, braucht man erstmal nicht in ein Programmiergerät zu investieren, da man die Programme in der Entwicklungsumgebung wunderbar simulieren kann. Erst, wenn man tatsächlich sein Werk in Hardware gießen will, muß man in einen PIC-Brenner investieren. Solche Geräte gibt es z.B. über Ebay schon für 30 Euro. Der Anschluß an den PC erfolgt bei modernen Programmiergeräten über USB.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ottili« (13. Oktober 2008, 12:03)


8

Montag, 13. Oktober 2008, 12:34

Hallo Thomas,

zunächst mal finde ich es großartig, dass hier eine weitere Einsteigerecke für µC´s entstehen soll und dass Du bereit bist, Dir diese Arbeit aufzuhalsen! :ok:

Einen aus der Erfahrung in der Atmel-Ecke geborenen Tipp möchte ich Dir mit auf den Weg geben - versuche NICHT, die Entwicklungsumgebung zur Diskussion zu stellen!
Sag einfach an, welche Hard- und Software zu verwenden ist. Andernfalls ist es sehr wahrscheinlich, dass die tolle Idee an der dann aufkommenden Experten-Diskussion elendig verreckt.... ;(

Viel Erfolg, ich werde es mit Interesse verfolgen!

Grüße

Torsten
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Torsten_G« (13. Oktober 2008, 12:34)


ro.heg

RCLine User

Wohnort: Quickborn

  • Nachricht senden

9

Montag, 13. Oktober 2008, 13:45

Hallo Thomas,
danke für Dein Tip, der XP rechner läuft jetzt auch.
Aber mit der include-Anweisung wills garnicht klappen.
Error, der Assembler kennt keine #include <16f627.inc>
Die versteckten Dateien im Ordner Include
(C/Programme/Hi-Tech Software/Picc/LITE/9.60/include)
habe ich mir angesehen.
Fast alle beginnen mit asxxxxx.h = H Datei
Wie Du schreibst, habe ich alle, außer die variablen Definitionen,
EQU Anweisungen entfernt. Danach habe ich mir rein als Test
as16f636.h genommen, und mit #include <as16f636.h> gespeichert.
Resultat: wieder Error, kennt er nicht.
Ich würde sagen, warte erst mal, was die anderen evtl. für Fehler machen.
Vielleicht klärt sich der Fall von alleine.

Viele Grüße, besonders an alle Neulinge

Rolf

10

Montag, 13. Oktober 2008, 17:49

Hallo Rolf,

wenn ich es richtig sehe, hast Du jetzt include-Dateien für C-Programmierung angegeben. Die Assembler-INC Dateien befinden sich normalerweise in
C:\Programme\Microchip\MPASM Suite

Probier's mal mit "#include <p16f627.inc>"

Grüße,

Thomas

ro.heg

RCLine User

Wohnort: Quickborn

  • Nachricht senden

11

Montag, 13. Oktober 2008, 19:50

Hi Thomas,
jetzt klappt es Sch.. Technik, was mag ich denn heute Morgen nur falsch
gemacht haben.
muß zwischen #include und < ein Leerzeichen sein?
oder sollte auf Groß- Kleinschreibung geachtet werden?
Habe beides probiert, immer ok!
Oder muß es unmittelbar vor org platziert werden?
Egal auch wie, der Assembler stellte die Hex-datei zur Verfügung.

Grüße

Rolf

12

Montag, 13. Oktober 2008, 22:58

Also wie gesagt. Mein OK ist da und die Ecke kann eingerichtet werden.

Und nun (um es mit Nr.5 zu sagen): Brauche Input! :)
Gruss
Thomas

🖖
So long, and thanks for all the fish.


13

Dienstag, 14. Oktober 2008, 00:32

Hi Thomas,

danke - klasse!
Ich würde als Rubriken evtl. vorschlagen:
- Arbeiten mit der MPLAB IDE
- Codebeispiele
- Fragen zur Funktion der PICs

Im Augenblick weiß ich noch nicht, ob es sinnvoll ist, detailiert und in Deutsch auf die einzelnen Prozessor-Befehle einzugehen, oder ob man hierbei schon voraussetzen kann, daß die Befehlsbeschreibung im Datenblatt auch so verstanden wird? Was meint Ihr?

Grüße,

Thomas

14

Dienstag, 14. Oktober 2008, 00:41

Erste Schritte mit der MPLAB IDE

"IDE" steht für "Integrated Development Environment", also zu deutsch "Integrierte Entwicklungsumgebung". Gegenüber einfachen Systemen, bei denen man mit einem beliebigen Texteditor (z.B. Notepad) einen Quelltext erstellt und diesen dann mit einem Assembler-Programm übersetzt, bietet die integrierte Entwicklungsumgebung viele Vorteile:
Der dort eingebaute Editor "kennt" die Programm-Synthax und die Prozessor-Befehle und hilft bereits bei der Eingabe durch farbliche Markierung der einzelnen Elemente, z.B. simple Tippfehler zu vermeiden.
Findet der Assembler Fehler (z.B. undefinierte Variablen), gibt er entsprechende Fehlermeldungen im "Output"-Fenster aus. Ein simpler Doppelklick auf die Fehlermeldung reicht dann aus, um im Quelltext sofort an die entsprechende Stelle zu springen.
Ein extrem wichtiges Tool ist der Simulator, mit dem man das Programm kontrolliert ablaufen lassen kann, wobei die entsprechende Zeile des gerade abzuarbeitenden Prozessor-Befehls im Quelltext markiert wird.

Neues Projekt erstellen

Es ist sicher sinnvoll, die Projekt-Verwaltung zu nutzen, auch wenn der Quelltext nur aus einem einzigen File besteht.
Zwar kann man mit der MPLAB-IDE mit dem Editor eine Quelltext-Datei öffnen, über "Configure/select device..." den richtigen Prozesor-Typ einstellen und über "Project/quickbuild xxxx.asm" die Datei übersetzen, wenn man sich aber gleich angewöhnt, immer ein Projekt einzurichten, kann man später immer wieder dieses Projekt laden und es werden alle Einstellungen (Prozessor-Typ, offene Fenster usw.) wieder hergestellt.
Als erstes erzeugen wir am Besten mal einen Ordner für das Projekt, z.B.
"C:\PICPROG\Probe"
Dann rufen wir den "Project Wizard" auf (Menü "Project"), wählen den gewünschten Baustein aus (z.B. PIC12F629), im nächsten Schritt wählen wir bei "Active Toolsuite:" die MPASM Toolsuite aus (Klick: Weiter).
Nun wird über "Browse" unser Projekt-Ordner gesucht und bei "Dateiname" ein geeigneter Name für das Projekt eingegeben (z.B. "Probe"). Den nächsten Schritt "Add existing files..." können wir mit "Weiter" überspringen, dann "Fertig stellen".

Nun schreiben wir eine neue Quelltext-Datei (Text-Fenster über "File New" öffnen) mit folgendem Inhalt:

Quellcode

1
2
3
4
5
6
7
8
9
;Dummy-Programm zum Ausprobieren der MPLAB IDE

        #include <p12F629.inc>	;Prozessor-spezifische Definitionen
	
        radix dec				;Standard-Zahlenbasis: dezimal
	
        org	0					;Programmeinsprung bei Reset = Adr.0

        end						;Ende des Programms


Diese wird über File/Save As... in unserem Projekt-Ordner mit dem Namen "Probe.asm" gespeichert. Bitte dabei die Checkbox "Add file to project" aktivieren (nur einmalig beim Anlegen neuer Files)

Jetzt können wir das Projekt über "Project/Make (oder Taste F10) übersetzen lassen - Trara! Schon haben wir unser erstes Programm "übersetzt", auch wenn es bis hierher noch gar keinen Programmcode enthält.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ottili« (14. Oktober 2008, 00:42)


ro.heg

RCLine User

Wohnort: Quickborn

  • Nachricht senden

15

Dienstag, 14. Oktober 2008, 12:46

mh, das werde ich mir am besten erst mal ausdrucken und versuchen,
von meiner alten Conradmethode wegzukommen.
Tattel ich so mit den Editor weiter, würde ich bald den Faden verlieren, und das
wäre schade.
Was Deine Überlegung sind "mit den Befehlen" hatte ich schon mal hingewiesen,
daß ich im Besitz von zwei Büchern vom Franzisverlag bin.(in Deutsch verfasst)
Das eine ist sehr alt. Behandelt nur die 16 Reihe, aber die Befehle werden
sehr ausführlich erläutert
Das neue habe ich für 39,95 € unter der Nr. ISBN 978-3-7723-4265-3 gekauft,
sehr zu empfehlen.
Allerdings geht es auf eine ältere MPLAB 7.60 Version ein.
Die Befehle könnten ausführlicher dokumentiert werden, sind aber
beinhaltet.
Wäre das nicht eine Stütze für Neuzugänge?

Grüße

Rolf

ro.heg

RCLine User

Wohnort: Quickborn

  • Nachricht senden

16

Dienstag, 14. Oktober 2008, 13:53

Hallo Thomas,

"Neues Projekt erstellen" hat geklappt bis zum Text
"Checkbox Add files to projekt aktivieren"! Hier habe ich klick Project
und sah Add files to projekt, Ordner und Dateiname hinein und dann hieß
es öffnen! War das richtig, oder?
(Es gab auch Add New files to Projekt)!

Viele Grüße

Rolf

ro.heg

RCLine User

Wohnort: Quickborn

  • Nachricht senden

17

Dienstag, 14. Oktober 2008, 14:34

wird wohl nicht richtig sein, denn jetzt habe ich eine Datei Probe.mcp?

18

Dienstag, 14. Oktober 2008, 23:02

Hi Rolf,

kann schon richtig sein - es gibt mehrere Wege zum Ziel...
Die *.mcp-Datei ist die die Projekt-Datei. Dann wirst Du vermutlich auch eine Datei *.mcw finden, dort wird der "Worspace" gesichert (offene Fenster usw.)
Wenn Du es richtig gemacht hast, sollte das "Projekt"-Fenster so aussehen:
»Ottili« hat folgendes Bild angehängt:
  • projekt.gif

19

Dienstag, 14. Oktober 2008, 23:59

So, nun möchten wir unseren PIC auch mal etwas zu tun geben! Dafür machen wir den PIC zu einem einfachen elektronischen Schalter, der beim Betätigen des einen Tasters (S1) eine LED einschaltet, beim Betätigen des anderen Tasters (S2) die LED ausschaltet.

Wer möchte, kann die Versuchs-Hardware natürlich gerne nachbauen. Statt echter Taster tut es dabei auch ein Draht, der mit einem Ende an Masse angeschlossen ist, und mit dem freien Ende wird dann durch Antippen des einen oder des anderen Pins am Prozessor der Kontakt geschlossen. Ein 100nF Kondensator sollte grundsätzlich über die Versorgungsspannungs-Pins geschaltet werden, möglichst kurz mit den IC-Beinchen verbunden.
»Ottili« hat folgendes Bild angehängt:
  • probe.gif

20

Mittwoch, 15. Oktober 2008, 00:55

Thomas, du legst ja schon feste los. Ich wuerde gerne das Ganze bald in eine Struktur bringen.
Wie solls aussehen? Du kannst dir ja denken das sowas noetig ist wenn mehr darauf anspringen. :D
Gruss
Thomas

🖖
So long, and thanks for all the fish.