Probleme mit MPLAB IDE

Gast #573590
Lesenswert?

Hi

Ich bin ein Noop was PICs betifft und versuche gerade mein erstes 
Probramm ( ein Lauflich von Sprut) zum laufen zu bringen.

Ich habe das Programm von sprut 
(http://www.sprut.de/electronic/pic/programm/lauflicht/lauflich.htm)
in eine Textdatei kopiert und als ASM compiliert.
jetzt rufe ich das mit MPLAB IDE auf und ändere den Prozessortypen (ich 
habe einen 16F628A)

Beim Assemblieren bekomme ich fast pro Zeile folgende Fehlermeldung:
Error[152]   C:\DOKUMENTE UND EINSTELLUNGEN\BESITZER\DESKTOP\LAUFLICHT 
MIT MPLAB IDE\4 LAUFLICHT.ASM 25 : Executable code and data must be 
defined in an appropriate section


Ab und zu sagt er noch ich solle PORTB definieren:
Error[113]   C:\DOKUMENTE UND EINSTELLUNGEN\BESITZER\DESKTOP\LAUFLICHT 
MIT MPLAB IDE\4 LAUFLICHT.ASM 35 : Symbol not previously defined (PORTB)

Was mache ich falsch?

Muss ich irgendwie noch etwas hinzufügen/definieren?
Und wenn wie mach ich das dann?

Schon mal vielen Dank im Vorraus.

Gy
Gast #573769
Lesenswert?

Ich arbeite nicht mit MPLAB, sondern wandle das mit dem Editor
erstellte ASM-File mit dem Programm MPASMWIN direkt in ein
HEX-File um.
Aber um Deine Fehlermeldung zu elliminieren, füge im File eine
ORG-Anweisung in der Zeile vor der Init ein. Dies teilt dem
Assembler mit, wo er das Programm im Speicher ablegen soll.

so wie hier:

  ORG 100
Init
  MOVLW....


MfG
Gast #573786
Lesenswert?

Juhuuuuu kein Error mehr!!!!!!!!!!!!

Aber leider auch kein Hex. File.
Stadt dessen diese Nachricht:

Executing: "C:\Programme\Microchip\MPASM Suite\MPAsmWin.exe" /q 
/p16F628A "Lauflicht 1.asm" /l"Lauflicht 1.lst" /e"Lauflicht 1.err" 
/o"Lauflicht 1.o"
Message[301] C:\PROGRAMME\MICROCHIP\MPASM SUITE\P16F628.INC 35 : 
MESSAGE: (Processor-header file mismatch.  Verify selected processor.)
Message[302] C:\DOKUMENTE UND EINSTELLUNGEN\BESITZER\DESKTOP\LAUFLICHT 
MIT MPLAB IDE\LAUFLICHT 1.ASM 30 : Register in operand not in bank 0. 
Ensure that bank bits are correct.
BUILD SUCCEEDED: Sat Jun 02 21:26:45 2007


Anscheinend muss ich mehr umstellen als nur das was ich getan hab. 
Hierfüar mal mein Programm:

    list p=16f628a

; Includedatei für den 16F628a einbinden
;
        #include <P16f628a.INC>
;
; Configuration festlegen
;
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator
;       __CONFIG        _PWRTE_ON & _WDT_OFF & _XT_OSC
;
; ab 4 MHz: Power on Timer, kein Watchdog, HS-Oscillator
         __CONFIG        _PWRTE_ON & _WDT_OFF & _HS_OSC
;
;**************************************************************
; Variablennamen vergeben

loops   Equ     0x22            ; Zähler für Warteschleife
loops2  Equ     0x23            ; Zähler für Warteschleife

;**************************************************************
; los gehts mit dem Programm
; Port B auf Ausgabe stellen

 ORG 010

Init
        bsf     STATUS, RP0     ; auf Bank 1 umschalten
        movlw   B'00000000'     ; PortB alle output
        movwf   TRISB
        bcf     STATUS, RP0     ; auf Bank 0 zurückschalten
        clrf    PORTB           ; alle LEDs ausschalten

; 1. LED einschalten

        bsf     PORTB,0         ; LED an RB0 einschalten

; Lauflicht

Loop
        call    Wait            ; Wartezeit
        rlf     PORTB,f         ; laufen zur nächsten LED
        goto    Loop


;**********************************************************
; Warteschleife 250 ms

Wait
        movlw   D'250'          ; 250 ms Pause
        movwf   loops

Wai
        movlw   .249           ; Zeitkonstante für 1ms
        movwf   loops2
Wai2    nop                    ;
        nop
        nop
        nop
        nop
        nop
        decfsz  loops2, F      ; 1 ms vorbei?
        goto    Wai2           ; nein, noch nicht
                               ;
        decfsz  loops, F       ; 250 ms vorbei?
        goto    Wai            ; nein, noch nicht
        retlw   0              ; das Warten hat ein Ende

        end




Nochmal  vielen Dank Atlas.

Es sieht so aus als ob mir einige Grundlagen zum Programierne fehlen. 
Kannst du mir ein Tutorial oder so empfehlen?

mfg Gy

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren