PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit MPLAB



ToniThiele
18.04.2007, 21:01
hi
nun habe ich es endlich geschaft das mein Progamiergerät progamme in den PIC schiebt und möcht dieses nun auch testen.

Ich hatte das Programm auf einem anderen rechner geschrieben und comiliert. wenn ich jetzt auf meinem rechner was ändern will dan bringt er mir beim Compilieren Fehlermeldungen.

Als erstes mal das Programm:

; File: test1.asm
; Datum: 17.4.2007, Toni Thiele
list p=16f84a
#include p16f84a.inc
; Set configuration bits using definitions from the include file, p16f84.inc
__config _LP_OSC & _PWRTE_OFF & _WDT_OFF & _CP_OFF
; registrierzuordnung
STATUS equ 03h
TIMER equ 01h
TRISIO equ 085h
PORTIO equ 05h
ZAEHL1 equ 0ch
ZAEHL2 equ 0dh
ZAEHL3 equ 0eh
org 0 ;Startadresse für programm-conter festlegen
;***port-setup***
bsf STATUS, 5 ;wechsle auf Bank1
movlw 0011 ;lade Bitmuster für I/O belegung in AR
movwf TRISIO ;verschiebe bitmuster in TRISIO
bcf STATUS, 5 ;lösche bit 5 (rückkehr bank 0)
;***Programmbeginn***
Start
;Automatik
loop1 btfss PORTIO, 0 ;Schleifenabrage bit 0 (Tasterabfrage)
goto loop1 ;schleife
; carry on here
bsf PORTIO, 3 ;setzt bit 3 (ausgang)
call Pause ;zeitverzoegerung (Out=1)
bcf PORTIO, 3 ;lösche bit 3
call Pause ;Zeitverzoegerung (out=0)
bsf PORTIO, 3 ;setzt bit 3
call Pause ;Zeitverzoegerung (out=1)
bcf PORTIO, 3 ;lösche bit 3
Call Pause ;zeitverzoegerung (out=0)
;Einzelbetrieb
loop2 btfss PORTIO, 1; Schleifenabfrage bit 1 (Tastenabfrage)
goto loop2
;carry on here
bsf PORTIO, 3 ;setzt bit 3 (ausgang)
call Pause ;zeitverzoegerung (out=1)
bcf PORTIO, 3 ;lösche bit 3
Call Pause ;zeitverzögerung (out=0)
goto Start
Pause
Verzoegerung1
decfsz ZAEHL1, 1 ;ziehe ab von 255
goto Verzoegerung1 ;wenn nicht 0, dann springe
decfsz ZAEHL2, 1 ;ziehe ab von 255
goto Verzoegerung1 ;wenn nicht 0, dann springe ;sonst spring in naechste Zeile
decfsz ZAEHL3, 15
goto Verzoegerung1
return
end


und nun die meldungen:

Make: The target "D:\Eigene Dateien\Toni\Elektrotechnik\Pic\Projekte\Garage-Lutz\Projekte\test1.o" is out of date.
Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "test1.asm" /l"test1.lst" /e"test1.err"
Message[302] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 19 : Register in operand not in bank 0. Ensure that bank bits are correct.
Warning[207] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 24 : Found label after column 1. (loop1)
Warning[207] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 36 : Found label after column 1. (loop2)
Warning[203] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 43 : Found opcode in column 1. (goto)
Warning[202] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 51 : Argument out of range. Least significant bits used.
Warning[205] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 54 : Found directive in column 1. (end)
Error[173] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 55 : Source file path exceeds 62 characters (D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM)
Halting build on first failure as requested.
BUILD FAILED: Wed Apr 18 20:55:24 2007



wie gesagt. auf dem anderen rechner ging es.

es kann sein das im Programmaublauf noch fehler drin sind.
ich konnte noch nicht richtig testen.

Ich hoffe ihr könnt mir ein wenig weiterhelfen.

mit freundlichen Grüßen

toni

orph
18.04.2007, 21:53
Hi

Also die ersten paar Warnungen sind erstmals nicht wichtig.
Der wirkliche Fehler, der den Assembler am compilieren hindert ist der hier:
Error[173] D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM 55 : Source file path exceeds 62 characters (D:\EIGENE DATEIEN\TONI\ELEKTROTECHNIK\PIC\PROJEKTE\GARAGE-LUTZ\PROJEKTE\TEST1.ASM)

Und wie dort steht, ist der Pfad, in dem sich die Datei befindet zu lange. (Keine Ahnung wieso, dieses Problem hatte ich noch nie, aber ehrlich gesagt, ist der Pfad schon n bisschen lange.)
Also: Die *.asm-Datei mal auf den Desktop oder in "Eigene Datein" oder sonst iergend an einem Ort mit kurzem Pfad speichern, und sie dort nochmals kompilieren.
greez

ToniThiele
19.04.2007, 20:50
hi

neues Problem. mit dem Pfad das ging super. weiß der geier wie dieser idiotische fehler zustandekommt.

ich kann nun Compilieren, das Prog. in den Pic schieben, aber testen geht nicht. Ich hab das Prog mal vereinfacht und lasse einfach eine LED am ausgang leuchten (würd mich freuen wenns so wäre)

Neues Prog:
list p=16f84a
#include <p16f84a.inc>

__config _LP_OSC & _PWRTE_OFF & _WDT_OFF & _CP_OFF
;definitionen
STATUS equ 03h
TRISB equ 86h
PORTB equ 06h
org 0
bsf STATUS, 5
movlw 00h
movwf TRISB
bcf STATUS, 5

Start
movlw 1Fh
movwf PORTB
end


Sind hier vieleicht Fehler drin?

Ich bin auch gar nicht sicher ob mein schwinger seine Arbeit verrichtet. kann ich das auf einfache art und weise nachprüfen?

Ich habe nen sprut brenner5 und mir mir der schaltung gleich ein Testboard aufgebaut wo ich nur einen Stecker umstecke um vom Programmieren in das testen zu gelangen.
Ich habe bedenken weil die Taktleitung auch mit über diesen stecker gehen und nicht weiter geschirmt sind.
...


???
Mfg

toni


schönen abend noch

orph
20.04.2007, 00:06
hiho

Jo also im Programm sehe ich erstmals keinen Fehler, aber nen kleinen Tip:
wenn du das p16f84a.inc-File einbindest, musst du Status, Trisb, Portb, etc. nicht mehr zusätzlich definieren, denn genau das macht dieses File. (Kannste ja mal schauen, was in dieser Datei alles drin steht.)

Zum Takt-Problem:
1. Mit wieviel Herz lauft der Pic?
2. Haste die LED am richtigen Port angesteckt?
3. Wenn du einen Quarz verwendest: sind die 2 Kondensatoren zwischen Quarz und Masse vorhanden?
4. Ist schon ein bisschen Kritisch, wenn der Takt über Schalter/Stecker etc. läuft. Aber um da genauere Aussagen zu machen, müsstest du schon mal die Schaltung genauer beschreiben.

greez

ToniThiele
20.04.2007, 11:55
ich werde heut mal mein Multimeter mit rs232 oszi an die Platine ranhängen und schauen ob da was schwingt.
ich habe übrigens ein 8mhz schwinger.

Ich habe auch noch ein krumes 8, ... mhz quarz da da kann ich ja auch nochmal probieren. Ansonst einfach näher an den pic rücken (ohne stecker und lange leiterzüge dazwischen)

irgendwie muß es gehen!


Mfg
ich meld mich wieder
Danke


Toni

orph
20.04.2007, 14:37
hiho

also wenn du nen externen Takt von 8mhz hast, musst du in der Konfigurationszeile des Programms das hier schreiben: _HS_OSC

HS bedeutet High-Speed und ist für Frequenzen oberhalb von 4Mhz.
Was du gschrieben hast, LP, bedeutet Low-Power und ist für Frequ. kleiner als 1Mhz, meist so um die 200Khz, gemacht.

Probier das mal.
greez

ToniThiele
20.04.2007, 15:18
Jo, das war das Problem.


Ihr glaubt nicht wieviel Freude mir das bereitet das die LED nun leuchtet.



Vielen Dank für eure Hilfe.

Mfg

toni