Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

MPLAB assembleur PIC18F2680



  1. #1
    Neszreth

    MPLAB assembleur PIC18F2680


    ------

    Salut,
    je tente de créer un petit programme de test pour mon PIC 18F2680 dans MPLAB mais j'ai beaucoup d'erreurs de compilation, pouvez_vous me dire quel est le problème?

    code asm :
    Code:
    include "P18F2680.inc"
    
    delay:
    	MOVLW FFh
    	DECFSZ WREG
    RETURN
    
    main:
    	CLRF PORTA
    	CLRF LATA
    	CLRF TRISA
    	label:
    		MOVLW FFh
    		MOVWF PORTA
    		RCALL delay
    		MOVLW 00h
    		MOVWF PORTA
    		RCALL delay
    	GOTO label
    GOTO main
    END

    Voilà le résultat de la compilation :
    Code:
    ----------------------------------------------------------------------
    Debug build of project `G:\carte_ack mplab\carte_ack.mcp' started.
    Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01
    Preprocessor symbol `__DEBUG' is defined.
    Thu May 28 16:21:17 2009
    ----------------------------------------------------------------------
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F2680 "carte_ack.asm" /l"carte_ack.lst" /e"carte_ack.err" /d__DEBUG=1
    Warning[205] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 1 : Found directive in column 1. (include)
    Error[113]   G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 4 : Symbol not previously defined (FFh)
    Warning[203] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 6 : Found opcode in column 1. (RETURN)
    Warning[207] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 12 : Found label after column 1. (label)
    Error[113]   G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 13 : Symbol not previously defined (FFh)
    Warning[203] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 20 : Found opcode in column 1. (GOTO)
    Warning[205] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 21 : Found directive in column 1. (END)
    Halting build on first failure as requested.
    ----------------------------------------------------------------------
    Debug build of project `G:\carte_ack mplab\carte_ack.mcp' failed.
    Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01
    Preprocessor symbol `__DEBUG' is defined.
    Thu May 28 16:21:21 2009
    ----------------------------------------------------------------------
    BUILD FAILED



    -----

  2. #2
    Neszreth

    Re : MPLAB assembleur PIC18F2680

    Bon désolé, j'ai rapidement trouvé une solution pour les erreurs; il faut écrire 0xFF et non pas FFh, bref la compilation fonctionne mais j'ai encore des warnings :

    Code:
    ----------------------------------------------------------------------
    Debug build of project `G:\carte_ack mplab\carte_ack.mcp' started.
    Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01
    Preprocessor symbol `__DEBUG' is defined.
    Thu May 28 16:28:41 2009
    ----------------------------------------------------------------------
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p18F2680 "carte_ack.asm" /l"carte_ack.lst" /e"carte_ack.err" /d__DEBUG=1
    Warning[205] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 1 : Found directive in column 1. (include)
    Warning[203] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 6 : Found opcode in column 1. (RETURN)
    Warning[207] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 12 : Found label after column 1. (label)
    Warning[203] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 20 : Found opcode in column 1. (GOTO)
    Warning[205] G:\CARTE_ACK MPLAB\CARTE_ACK.ASM 21 : Found directive in column 1. (END)
    Executing: "C:\Program Files\Microchip\MPASM Suite\mplink.exe" /p18F2680 "carte_ack.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"carte_ack.cof" /M"carte_ack.map" /W /x
    MPLINK 4.30.01, Linker
    Copyright (c) 2009 Microchip Technology Inc.
    Errors    : 0
    
    Loaded G:\carte_ack mplab\carte_ack.cof.
    ----------------------------------------------------------------------
    Debug build of project `G:\carte_ack mplab\carte_ack.mcp' succeeded.
    Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01
    Preprocessor symbol `__DEBUG' is defined.
    Thu May 28 16:28:47 2009
    ----------------------------------------------------------------------
    BUILD SUCCEEDED

  3. #3
    Neszreth

    Cool Re : MPLAB assembleur PIC18F2680

    OK, en fait les warnings sont tous évités en modifiant la place des instructions, il faut les mettre à une certaine place (tabulations).
    Voici le code modifié et compilé correctement :

    Code:
    	include "P18F2680.inc"
    
    delay:
    	MOVLW 0xFF
    	DECFSZ WREG
    	RETURN
    
    main:
    	CLRF PORTA
    	CLRF LATA
    	CLRF TRISA
    label:
    		MOVLW 0xFF
    		MOVWF PORTA
    		RCALL delay
    		MOVLW 00h
    		MOVWF PORTA
    		RCALL delay
    	GOTO label
    	GOTO main
    	END

  4. #4
    gedonet

    Re : MPLAB assembleur PIC18F2680

    Bonjour
    Les deux erreurs portent sur le formatage des nombres, pour Microchip FFh cela ne veut rien dire, par contre si tu ecris 0xFF ou H'FF', tes nombres hexa seront reconnu.
    Pour le reste ce sont des warnings assés explicites.
    Gilles

  5. A voir en vidéo sur Futura
  6. #5
    Neszreth

    Question Re : MPLAB assembleur PIC18F2680

    J'ai un petit probleme dans mon programme :

    Code:
    	include "P18F2680.inc"
    
    main:
    	CLRF PORTA
    	CLRF LATA
    	CLRF TRISA
    label:
    		MOVLW 0xFF
    		MOVWF PORTA
    		MOVLW 0xFF
    HERE	DECFSZ WREG
    		GOTO HERE
    		MOVLW 0x00
    		MOVWF PORTA
    		MOVLW 0xFF
    HERE2	DECFSZ WREG
    		GOTO HERE2
    	GOTO label
    	GOTO main
    	END
    Juste après label, je tente de mettre le portA à FF, en simulation WREG passe bien à FF après l'instruction MOVLW 0xFF mais ensuite l'instruction MOVWF PORTA me remplace l'ancienne valeur 0x00 par 0x50 au lieu du 0xFF voulu...
    Une idée ???

  7. #6
    gedonet

    Re : MPLAB assembleur PIC18F2680

    Bonjour
    Je ne connais pas ton pic, mais j'imagine que tu as des pins du portA qui sont en analogique, c'est l'erreur classique.
    Gilles

  8. #7
    Neszreth

    Unhappy Re : MPLAB assembleur PIC18F2680

    Salut,
    bon bah effectivement j'avais oublié le registre ADCON1 pour mettre toutes les pins du PORTA en numérique (sortie), mais j'ai quand meme un probleme qui persiste

    dans ce code :
    Code:
    	include "P18F2680.inc"
    
    main:
    
    	CLRF OSCCON
    	MOVLW 0x73
    	MOVWF OSCCON
    la simulation :
    au départ le registre OSCCON est à 0x08 et à la fin il est à 0x78 alors qu'il devrait logiquement faire 0x73 ou 0x7B si jamais l'horloge interne est stabilisée.


    ensuite dans :
    Code:
    	CLRF PORTA
    	CLRF LATA
    	CLRF TRISA
    	MOVLW 0x0F
    	MOVWF ADCON1
    	MOVLW 0xFF
    	MOVWF PORTA
    la simulation donne:
    PORTA passe de 0x00 à 0x7F à la fin alors qu'il devrait passer à 0xFF


    Bref, je n'arrive pas à modifier correctement les registres, suis-je stupide à ce point ?

  9. #8
    gedonet

    Re : MPLAB assembleur PIC18F2680

    Bonjour
    Pour la seconde partie du code, sur le portA, cela vient de la config de l'oscillateur, je te laisse chercher, je te donnerai la reponse à ton prochain message si tu ne trouves pas, pour moi cela fonctionne.
    Pour la premiere partie avec OSCCON c'est un peut delicat, il faut bien comprendre comment fonctionne ce type d'oscillateur, si cela t'interresse j'ai ecrit un fichier maquette pour le 16F88, qui a pratiquement le même type d'oscillateur interne, ou je parle des reglages pour cette oscillateur. On trouve ce fichier sur le site de Bigonoff, troisieme sujet de la rubrique "Trucs, astuces, et aides" ou sur mon site: http://gedonet.free.fr/aide_pic/aide_pic.htm
    Gilles

  10. #9
    Neszreth

    Re : MPLAB assembleur PIC18F2680

    Bon déjà j'ai pu remarquer que mon PIC ne démarrait pas parcequ'il ya des bits de configuration à régler dans MPLAB qu'il fallait forcer, j'ai désormais réussi à caller la fréquence du PIC sur l'oscillateur RC interne.

  11. #10
    gedonet

    Re : MPLAB assembleur PIC18F2680

    Bonjour
    Comme tu ne sembles pas avoir trouvé la solution, il faut selectionner l'oscillateur: INTIO2 (Internal Oscillator with I/O on RA6 and RA7), sinon RA7 est utilisée pour autre chose qu'une I/O.
    Gilles

Discussions similaires

  1. C et assembleur
    Par mastermix dans le forum Électronique
    Réponses: 4
    Dernier message: 11/04/2009, 21h03
  2. assembleur
    Par biologiste-cqa dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 11/04/2009, 07h38
  3. Macro avec mplab en assembleur pour pic
    Par drache dans le forum Électronique
    Réponses: 0
    Dernier message: 17/03/2007, 15h38
  4. C ou assembleur ?
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 3
    Dernier message: 08/03/2006, 21h08
  5. Assembleur
    Par vae- dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 18/02/2006, 13h21
Découvrez nos comparatifs produits sur l'informatique et les technologies.