Hallo,arbeite seit kurzem mit dem 16F627A und will zum Einstieg nur eine LED auf meinem Experimentierboart leuchten lassen.Doch da scheitert es schon am Assamblen.Was könnte ich da wohl falsch gemacht haben,kanns auch an meinem Programm liegen? Infos: Habe Ein neues Projekt(Untitled87.asm)unter PROJEKT WIZARD-16F627A-MPASMAssembler(mpasmwin.exe)v5.37 erstellt und unter C/Frank/Eigene/Dokumente;gespeichert. Habe diese Datei in MPLAB8.60 mit OPEN aufgerufen.Manchmal erscheint die MAKE Taste nicht und wenn doch dann schlägt der Assamblerversuch fehl.Freue mich auf Rückmeldungen jeder Art.
>Freue mich auf Rückmeldungen jeder Art.
Das heisst: "Experimentierboard". Ein "Board" ist eine Art Brett. Ein
Panel. Ein flacher Gegenstand auf dem andere Gegenstände montiert sind.
Das heisst (wenn man es eindeutschen will): Ass e mblieren. Dem
Wortsinne nach, tut das ein "Zusammensetzer", der Dinge aneinanderfügt.
Im Englischen heisst das Ding "Assembler" und seine Tätigkeit "to
assemble".
Eigentlich passt das nicht so recht, weil es dann doch eine Art
"Übersetzer" ist, der Mnemonics in Hexadezimale Zahlen umwandelt.
Zur Frage selbst, möchte ich anregen, etwaige Fehlermeldungen hier zu
posten.
Walky88 schrieb: > Was könnte ich da wohl falsch gemacht haben irgendwo fehlt noch das Include des Prozessor-Headers. unten ein Beispiel für den PIC18F2520 aus meinem Batteriewächter-Artikel [code] ; ; PIC18F2520 is the target processor, values decimal, eXpand macros ; LIST p=18F2520,r=dec,x=on ; include "P18F2520.INC" ; [\code] Gruß Anja
Danke für die Erläuterung;Bin halt noch ein blutiger Anfänger. Hab mein Programm jetzt geändert und folgende Fehlermeldungen bekommen(siehe Anhang).Auserdem steht mir in diesen Fall nur die Taste"quick build" aber kein "MAKE" zur Verfügung(irgendwie komisch).
Nö, das Programm läßt sich problemlos Assemblieren. Es macht sicher nicht das was du gerne möchtest: movlw B'00000000' ; Bort B alle output movf TRISB <movf TRISB> speichert nicht den Wert in <w> nach <TRISB>, sondern speichert <TRISB> in <TRISB> ab - ziemlich sinnlos. movf TRISB,W würde zwar <TRISB> in <W> laden - aber auch das willst du nicht. Richtig wäre <movwf TRISB> <bsf PORTB,3> wird auch nicht Bit3 im PORTB setzen weil PORTB in einer anderen Speicherbank als TRISB befindet. Bei den "kleine" PIC gewöhnst du dir am besten an, beim Zugriff auf die SFR immer mit BANKSEL <Register> zu arbeiten. Das hier macht genau was du wolltest: list p=16f627A ; #include "p16f627A.inc" org 0x00 ; goto main ; main BANKSEL TRISB ;bank 1 umschalten movlw B'00000000' ; Bort B alle output movwf TRISB ; BANKSEL PORTB bsf PORTB,3 ; goto $ end
Walky88 schrieb: > und folgende Fehlermeldungen > bekommen(siehe Anhang). Warum um alles in der Welt muss das ein Word-Dokument sein, und dann auch noch eines im "tollen" 2007er-Format?
Hallo Walky88 Zunächst mal der übliche gute Rat für die Programmierung der microchip - Controller: [http://www.sprut.de/index.htm] Auf dieser Seite erfährst Du als Anfänger in der Programmierung von PIC's per Assembler praktisch alle notwendigen Grundlagen. Dort beginnt das ganz einfach, vom Aufbau eines Programms über das Blinken von LED's bis hin zu anspruchsvollen Programmen wie z.B. Frequenzzähler usw.. Folge einfach den dort gegebenen Lernbeispielen. Falls Du Probleme mit dem grundsätzlichen Aufbau eines Assemblerprogramms für den von Dir gewählten PIC hast, schau doch einfach mal in dieses MPLAB-Verzeichnis: "MPLAB\MPASM Suite\Template\Code". Dort findest Du für jeden PIC das Gerüst für den Programmaufbau. Weiterhin viel Erfolg und wenn es mal mit der Programmfunktion oder der Technik nicht so klappt: In diesem Forum wirst Du auch wenn Du PICs programmierst stets Unterstützung finden. Ach ja: Word-Dokumente sind äußerst unbeliebt (Viren, Schadprogramme) mach mit PDF oder reinem Text (*.txt) oder als Bild (*.png) mfG Ottmar
Vorerst danke für eure Hilfe.Hab das Programm geändert, die Fehlermeldungen jedoch bleiben bestehen. Kann es sein das der Fehler beim anlegen bzw. speichern und öffnen liegt(taste "MAKE"lest sich nur bei mcp.-Dateien betätigen nicht beim mühsamenöffnen von asm.-Dateien)? Habe mich diesbezüglich schon an die Beispiele und Vorlagen im Internet gehalten obwol sich bei meinem Programm einige Fenster unterschieden.Vielleicht ist mir da ein fehler passiert. Kann mir jemand sagen ob vielleicht da der fehler liegt oder wie er so ein Projekt anlegt und öffnet?(komme trotz Volage nicht ganz mit dem Programm klar)
Die Fehlermeldungen kann ich nicht nachvollziehen. Das Programm (vom 07.03.2013 06:23) wird ohne Fehlermeldung Assembliert. Das einzige was man "provozieren" könnte wären 2 Warnings wenn man die Direktiven "org" und "end" nicht einrückt, was aber auf die Funktionsfähigkeit keine Einfluß hat. Vielleicht solltest du MPLAB nochmals installieren und dann am besten gleich die aktuelle Version 8.90, die 8.60 ist schon etwas antiquiert (obwohl die Version keine Einfluß auf dieses Miniprogramm hat).
Hallo Walky88 Dass Du nicht gleich die Lust verlierst, dazu lege ich Dir ein komplettes Blinkprogramm aus meiner Anfangszeit bei. Habe es mal rasch auf den 16F627 umgemoppelt. Läuft jedenfalls im Simulator durch. Falls Du den 16F627A verwendest musst Du allerdings die Einträge (A) im Programm angleichen. Steige aber zuvor lauf MPLAB 8.90 um! Im Netz gibt es verschiedene Anleitungen zur MPLAB-IDE, insbesondere dazu wie ein Programm angelegt und wie es assembliert wird. Dazu sind noch die Infos interessant, welche es zum in MPLAB intergrierten Simulator "MPLAB-Sim" gibt. Mit dem Simulator kannst Du z.B. das Ein- und Ausschalten Deiner LED (Wechsel des Pegels am entsprechenden PIN von 0 -> 1 -> 0 -> 1 usw. schrittweise oder auch als animierte Folge beobachten. Im Internet gibt es jede Menge Infos und Anleitungen zu MPLAB und den darin integrierten Tools. Du musst halt die gute alte Tante Google bemühen. Ich empfehle Dir mal diese Links: deutsch: [http://www.fernando-heitor.de/index.php/downloads/Dokumente/MPLAB-Tutorial/] [http://www.microchip.com] - jede Menge Druckschriften, Erläuterungen, Anleitungen allerdings sämtlich in engl. Sprache. Google-Suchbegriff: "B222L – Introductory Laboratory Exercise – Part 1 First PIC project" Microchip-Druckschrift DS33014J: MPASM™ Assembler, MPLIN K™ Object Linker, MPLIB™ Object Librarian User’s Guide mfG Ottmar
Hallo zusammen, Erstmal vielen Danke für eure Ratschläge und Lernbeispiele. "Tante Google" hat mich würklich nicht enttäuscht! Die Seite von Michael Floessel hat mir hier sehr geholfen! Mittlerweile hab ich das aktuelle MBLAB runtergeladen das anlegen der Projekte klappt das umwandeln des Codes funktioniert und das Simulationsfenster kann angesteuert werden obwohl die Simulation des Programms noch nicht möglich ist (Endadresse zu lang?!) list p=16f627a #include <p16f627a.inc> org 0x00 ; #define LED1 bsf PORTB, LED1 goto main main bsf STATUS, RP0 movlw B'00000000' movwf TRISB bcf STATUS, RP0 clrf PORTB bsf PORTB,0 end Vielleicht hat da jemand eine Idee? Bis die Tage: Walky88
Wenn du vor dem <end> ein <goto $> einfügst, dann kommt auch die Fehlermeldung <CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero> nicht mehr, sondern der Controller springt "auf der Stelle" und läuft nicht bis zum Ende des Programmspeichers um danach wieder bei der Adresse 0 von vorne zu beginnen.
Microchip hat doch für alles Beispielcode, und zwar komplett, ohne daß bspw. im Header mal was fehlt. Und MPLAB war zumindest bei mir immer völlig problemlos. Man muß da nur eines tun: Den richtigen µC auswählen. Der PIC-Assembler ist anfangs gewöhnungsbedürftig, aber da findet man auch hinein. Alles ist in Manuals eindeutig klar beschrieben.
hallo Walky 88 ich will ja nicht grob werden, aber anscheinend bist Du beratungsresistent. Schau Dir doch noch mal mein Programm an welches ich Dir damals als Anlage beigelegt habe [Beitrag "Re: Problem assamblen meines mit MPLAB8.60"]. Ich will es ja nicht als leuchtendes Beispiel darstellen, aber es funktioniert! Dein größter Fehler: DU MUSST das CONFIG-Word in das ASM File reinschreiben!! z.B. __CONFIG _XT_OSC & _WDT_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF Vergleiche doch mal mein ASM-File mit dem Deinen, dann muss Dir doch einiges klar werden! Lies dazu auch mal in den von mir damals gegebenen Links nach! Anmerkung: MPLAB lässt nur eine bestimmte Länge des Pfades zum ASM-File zu (ich glaube max. 36?? Zeichen). mfG Ottmar
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.