Hi leute, habe heute mein erstes PIC-Programm geschrieben. Soll für eine Steuerung sein. Das asm-file ist im anhang. Ich bekomme folgende Fehlermeldung beim compilieren, und werde einfach nicht schlau draus. ich denke mal ich bin in einen typischen noob-fehler getappt, den ich übersehen habe. Kann mir jemand dabei helfen? Clean: Deleting intermediary and output files. Clean: Done. Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p12F675 "Sprachlab.asm" /l"Sprachlab.lst" /e"Sprachlab.err" Warning[205] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 29 : Found directive in column 1. (list) Warning[205] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 33 : Found directive in column 1. (__CONFIG) Warning[205] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 35 : Found directive in column 1. (Errorlevel) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 40 : Found opcode in column 1. (call) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 41 : Found opcode in column 1. (movwf) Error[115] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 47 : Duplicate label ("loops3" or redefining symbol that cannot be redefined) Warning[205] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 49 : Found directive in column 1. (org) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 51 : Found opcode in column 1. (bsf) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 51 : Overwriting previous address contents (0000) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 51 : Overwriting previous address contents (0000) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 52 : Found opcode in column 1. (bsf) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 52 : Overwriting previous address contents (0001) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 52 : Overwriting previous address contents (0001) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 53 : Found opcode in column 1. (bsf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 54 : Found opcode in column 1. (bsf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 70 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 72 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 73 : Found opcode in column 1. (clrf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 74 : Found opcode in column 1. (bcf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 76 : Found opcode in column 1. (clrf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 77 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 78 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 79 : Found opcode in column 1. (clrf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 86 : Found opcode in column 1. (btfsc) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 88 : Found opcode in column 1. (goto) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 91 : Found opcode in column 1. (btfss) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 93 : Found opcode in column 1. (goto) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 100 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 101 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 102 : Found opcode in column 1. (bcf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 103 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 104 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 105 : Found opcode in column 1. (call) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 106 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 107 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 108 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 109 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 110 : Found opcode in column 1. (call) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 111 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 112 : Found opcode in column 1. (goto) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 119 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 120 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 121 : Found opcode in column 1. (bsf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 122 : Found opcode in column 1. (movlw) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 123 : Found opcode in column 1. (movwf) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 124 : Found opcode in column 1. (call) Warning[203] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 126 : Found opcode in column 1. (goto) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 136 : Found label after column 1. (W1) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 139 : Found label after column 1. (W2) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 141 : Found label after column 1. (W3) Error[113] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 143 : Symbol not previously defined (loops4) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 144 : Found label after column 1. (W4) Error[113] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 151 : Symbol not previously defined (loops4) Message[305] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 157 : Using default destination of 1 (file). Halting build on first failure as requested. BUILD FAILED: Sun Jun 03 18:56:17 2007 bin für jede antwort dankbar. greets, Jens
Die Warnungen bekommst du schon mal weg, wenn Du Leerzeichen (besser Tabs) vor den einzelnen Anweisungen einfügst. Vielleicht kannst Du ja dann die Fehler noch einmal posten. Das ist ein wenig unübersichtlich.
Außerdem hast du 2x loops3 definiert. Wenn Du das zweite loops3 in loops4 umbenennst, sollten zumindest 2 Fehler weg sein.
schreibt der Compiler doch. Er hat in der ersten Spalte einen Opcode gefunden. Rück den Kram mal ein, dann sind die Warnungen weg. Und dann noch das Label definieren und schon sollte auch der Fehler weg sein. Vielleicht wäre es besser mal was über den Compiler zu lesen bevor man wild drauflosprogrammiert?!? Oder wurde garnicht erst programmiert sondern nur mit Cut&Paste gespielt? bye Frank
Also das kommt jetzt nach einrücken der anweisungen raus: thx, Jens Clean: Deleting intermediary and output files. Clean: Done. Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p12F675 "Sprachlab.asm" /l"Sprachlab.lst" /e"Sprachlab.err" Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 43 : Found label after column 1. (EINAUS) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 44 : Found label after column 1. (sekunden) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 45 : Found label after column 1. (loops2) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 46 : Found label after column 1. (loops3) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 47 : Found label after column 1. (loops3) Error[115] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 47 : Duplicate label ("loops3" or redefining symbol that cannot be redefined) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 51 : Overwriting previous address contents (0000) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 51 : Overwriting previous address contents (0000) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 52 : Overwriting previous address contents (0001) Error[118] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 52 : Overwriting previous address contents (0001) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 85 : Found label after column 1. (MAIN) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 98 : Found label after column 1. (AUSSCHALTEN) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 117 : Found label after column 1. (EINSCHALTEN) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 132 : Found label after column 1. (WAIT) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 136 : Found label after column 1. (W1) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 139 : Found label after column 1. (W2) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 141 : Found label after column 1. (W3) Error[113] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 143 : Symbol not previously defined (loops4) Warning[207] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 144 : Found label after column 1. (W4) Error[113] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 151 : Symbol not previously defined (loops4) Message[305] C:\PIC-ASSEMBLER\SPRACHLABORSTEUERUNG\SPRACHLAB.ASM 157 : Using default destination of 1 (file). Halting build on first failure as requested. BUILD FAILED: Sun Jun 03 19:09:41 2007
sorry, hatteeben die weiteren posts überlesen. Stimmt, diese sachen sind mir noch nicht aufgefallen. Über den compiler selbst bzw seine Fehlermeldungen habe ich nich wirklich was gefunden (wasz.b. opcode sein soll) und: nein: es ist kein C&C. lediglich die warteschleife is an sprut angelehnt. thx so far, Jens
Das Problem mit dem org besteht noch. Außerdem kommen die Labels unmittelbar vor das Kommando an Position 1: Aus
1 | MAIN ; Label MAIN = Hauptprogrammschleife |
2 | btfsc GPIO, 3 ; überspringe nächsten Befehl wenn schalterbit NICHT gesetzt ist |
3 | ; (Im Ruhezustand ist Bit gesetzt) |
4 | goto MAIN ; Wenn Schalter in Ruhezustand frage weiter ab |
sollte
1 | MAIN btfsc GPIO, 3 |
2 | goto MAIN |
werden.
Vielen dank! jetzt lässt es sich kompilieren. Wenns euch interessiert, kann ich euch noch sagen obs mir der hardware auch so tut wies soll. Als Anfänger war ich jetzt an dem bisschen kram Stundenlang gesessen, musste immer wieder nachlesen usw. Da is ma irgendwann a bisserl matschig in der birne und "Betriebsblind". Ich hoffe das ich mit etwas übung mit den Dingern zurecht komm. Vielen herzlichen dank nochmal! greets, Jens
Im Anhang habe ich das aktuelle listing. Mein Problem ist folgendes: Der Controller macht zwar das, was er machen soll, wenn erdie Routine "Einschalten" abarbeiten soll, doch das wars. Erhängt dann dort fest und reagiert nicht mehr auf Tastendrücke. Hat jemand vielleicht hierzu noch eine Idee? vielen dank schonmal. mfg, Jens
Nach einiger Zeit (gefühlt ca 2min.) kann ich weiter schalten zu dem Punkt an dem die gelbe LED kommen soll. Kann es sein dass ich mich in der Zeitschleife verrant habe? greets,Jens
was steht denn im Datenblatt, wie schnell der interne Oszillator läuft? Habe das Datenblatt jetzt leider nicht parat.
4MHz hat er. er lässt sich auch nach einiger zeit weiter schalten zum zustand mit der gelben LED (in der ausschaltroutine). Schaltet dann sogar irgendwann wieder das PC-PWR-Relais ab. Doch das wars dann endgültig. 5 Minuten später drücken führt dazu dass er wieder in den eingeschalteten (grüne LED, nur 12V Relais)-zustand zurückkehrt.
wenn ich die warteaschlkeife deaktiviere lässt er sich zwischen gelb und grün umschalten. jedoch völlig chaotisch. mal nach dreimal mal nach zwei mal drücken. zu rot kehrt er nie zurück. Taster ist übrigens entprellt. Solangsam fang ich echt an zu verzweifeln
Zu Deiner Warte-Routine: Bei 4 MHz dauert im PIC jeder Befehl 1µs. Du hast 6 NOPs + einen decfsz + ein goto. Das macht 8 Befehle (+/-). Das je 110 mal macht 880 µs, also knapp eine 1 ms. Die Ungenauigkeiten, daher +/- kommen dadurch, dass für die anderen Schleifen ja auch jeweils noch ein paar Befehle aufgebraucht werden. Aber im Großen und Ganzen kommt das hin. Wie genau hast Du denn den Taster verdrahtet?
1k zum port, 10k pull-up, 0,33uF nach masse. Taster parallel zum elko V++ | | | | | 10k | | | __1k_ ----_______-----port | | |--------| ___ | ----- | 0.33u Taster ----- | | | | V----------
Ich weiss auch ned, ich gugg mir das Programm jetzt seit stunden immer wieder durch und weiss nicht was keinen sinn macht.
Ich würde vorschlagen, dass Du erst einmal direkt versuchst, in Deiner Hauptschleife nur eine LED mit dem Input zu koppeln, d.h. wenn der Taster gedrückt ist, die LED leuchten zu lassen und wenn er wieder losgelassen wird, die LED ausgehen zu lassen, um auszuschließen, dass es Probleme mit diesem Teil gibt. Vielleicht ist auch der 1k-Widerstand zu hoch, so dass ggf. der PIC durch den Spannungsabfall am 1k-Widerstand noch einen High-Pegel erkennt.
einfaches schalten (taster-LED aus/an geht auch mit meiner schaltung. An der Hardware sollte es also nicht liegen.
Jetzt wäre es wohl an der Zeit, den Code mal in der MPLAB IDE durchzusteppen. Vielleicht fällt dadurch ja etwas auf.
Doch noch was gefunden. In Deiner Wait-Funktion hast Du an erster Stelle movwf und movfw verdreht.
hmm, wenn ich wüsste wie das geht... gibts dazu irgendwo ne verständliche erklärung?
WAIT movlw D'4' ; 4x250ms =1s movfw loops2 müsste WAIT movlw D'4' movwf loops2 heißen
jepp, danke, das hab ich echt übersehen, verdreht. jetzt scheint es zwar von den schaltwerten her schneller zu gehen (also die schleife dürfte jetzt stimmen), aber er bleibt noch bei gelb hängen. da schau ich jetzt nochmal genauer nach! Auf jeden fall einen rießen fetten dank an dich!
in der funktion ausschalten hab ich unten nur movlw gemacht, aber das w nirgends hingeschrieben!
DAS GERÄTLE LÄUFT! DANKE NOCHMAL! DANKE DANKE DANKE!!!!!!!!!! Ich glaub das sind erfahrungen die man erst mal sammeln muss. als ich mit elektronik angefangen hab bin ich auch nem falschen widerstand nen tag lang als phantom hinterhergejagt! DANKE AUF JEDEN FALL NOCHMAL!
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.