Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Premier programme ASM avec pic-as.exe
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#11 Message par satinas » jeu. 18 févr. 2021 07:23 lien vers la Data-Sheet : Cliquez ici

Hello JMarc et bonjour à tous

En route pour de nouvelles aventures :-)
Je te conseille d'installer MpLabX 5.35 et rester sur MpAsm. Pic-as est trop récent, il vaut mieux attendre qu'il arrive à maturité, à moins d'avoir un pic vraiment récent non reconnu par la 5.35.
c'est dans les vieux pots qu'on fait les meilleures soupes :)

Premier programme ASM avec pic-as.exe
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#12 Message par JMarc » jeu. 18 févr. 2021 08:33 lien vers la Data-Sheet : Cliquez ici

satinas a écrit :Je te conseille d'installer MpLabX 5.35 et rester sur MpAsm.


D’accord, je fais cela ce soir

Premier programme ASM avec pic-as.exe
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#13 Message par Temps-x » jeu. 18 févr. 2021 19:14 lien vers la Data-Sheet : Cliquez ici

Bonsoir satinas, JMarc, et tout le forum,

satinas a écrit :Source du message Je te conseille d'installer MpLabX 5.35 et rester sur MpAsm


Je suis d'accord avec satinas, MPLAB X v5.35 et très bien, pas la peine d'installer la dernière version de MPLAB X v.... qui ne me plait pas du tout. :mad:

Personnellement j'utilise un simple éditeur, comme je le décrit ICI ça évite pas mal de problème. :-D

==> A+
Modifié en dernier par Temps-x le ven. 19 févr. 2021 00:58, modifié 2 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Premier programme ASM avec pic-as.exe
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#14 Message par JMarc » jeu. 18 févr. 2021 20:23 lien vers la Data-Sheet : Cliquez ici

Bonsoir temps-x

C’est compliqué avec Apple, j’ai encore perdu la soirée :cry:
Il y a des mise à jour automatique et ça ne prend plus en charge les applications 32bits. Il y a un pach mais je ne m’en sort pas. Cela me notifie lors de l’assemblage "bad cpu "

Je poursuis mes recherches

Premier programme ASM avec pic-as.exe
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#15 Message par Temps-x » ven. 19 févr. 2021 01:26 lien vers la Data-Sheet : Cliquez ici

Re

Achète toi un Pc, comme ça tu auras une compatibilité pour tour les programmes. :wink: Tu peux te le monter à partir de 150 euros en neuf.


==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Premier programme ASM avec pic-as.exe
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#16 Message par JMarc » ven. 19 févr. 2021 06:51 lien vers la Data-Sheet : Cliquez ici

Bonjour temp-x, satinas,

J’ai dans le bureau un pc mais pour rester avec mon épouse, je programme devant la télé avec un portable. J’utilise également xcode pour faire les applications iphone d’ou le choix d’un Mac

Cette nuit je n’ai pas réussi à assembler avec 5.30 du coup j’ai réinstallé 5.40 et je vais tenté as pic
Si je n’y arrive pas, j’irai sur le pc

Premier programme ASM avec pic-as.exe
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#17 Message par satinas » ven. 19 févr. 2021 08:01 lien vers la Data-Sheet : Cliquez ici

Bonjour,

Pc-as est utilisable, mais tu vas avoir des surprises :)
Par exemple l'opérateur modulo % n'est plus reconnu, il faut faire (1000 mod 256) à la place de (1000 % 256)

Les sections prédéfinies sont à la fin du fichier include.
C:\Program Files\Microchip\xc8\pic\include\proc\16f877.inc
psect udata_shr,class=COMMON,space=SPACE_DATA,noexec
psect udata,class=RAM,space=SPACE_DATA,noexec
psect udata_bank0,class=BANK0,space=SPACE_DATA,noexec
psect udata_bank1,class=BANK1,space=SPACE_DATA,noexec
psect udata_bank2,class=BANK2,space=SPACE_DATA,noexec
psect udata_bank3,class=BANK3,space=SPACE_DATA,noexec
psect code,class=CODE,space=SPACE_CODE,delta=2
psect data,class=STRCODE,space=SPACE_CODE,delta=2,noexec
psect edata,class=EEDATA,space=SPACE_EEPROM,delta=2,noexec

Les options de link ne sont plus nécessaires en utilisant le paramètre abs pour absolute.

Code : Tout sélectionner

;------------------------------------------------------------------------------
; reset
;------------------------------------------------------------------------------
psect rst, abs, class=CODE, delta=2
            org       0
_reset:     goto      init

;------------------------------------------------------------------------------
; interrupts
;------------------------------------------------------------------------------
psect int, abs, class=CODE, delta=2
            org       4
            movwf     save_w
            incf      RCREG,W
            movwf     TXREG
            movf      save_w,W
            retfie

;------------------------------------------------------------------------------
; code
;------------------------------------------------------------------------------
psect code

init:       bsf       RP0             ; bank 1
            ...
            ...
            ...
            ...

;------------------------------------------------------------------------------
            end       _reset


Premier programme ASM avec pic-as.exe
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#18 Message par JMarc » sam. 20 févr. 2021 21:47 lien vers la Data-Sheet : Cliquez ici

Bonsoir tout le monde

Satinas, merci beaucoup, je vais étudier cela

premier programme sur la base du tiens avec Pic-as que j'ai modifié a ma sauce, 18F4525
il faut rajouter les ":" après chaque étiquettes
j'ai du modifier "psect reset_vect, class=code, delta=2" en "delta=1" et je ne sais pas a quoi cela correspond

mais cela fait du bien de vous retrouver :-D

Code : Tout sélectionner

;  essai pic as
;  18F4525
;  JMP fevrier 2021 d'apres un exemple de Monsieur Satinas
    
; - quartz interne 8MHz
; - led clignotante à la seconde


#include <xc.inc>
;#include <pic18.inc>    

OSCF      equ   8000000        ; Fosc = 8MHz
FCY       equ   OSCF/4          ; Fcy  = 4MHz
TCY       equ   1000000000/FCY  ; Tcy  = 250ns
VAL_BRG   equ   FCY/4/38400-1   ; rs   = 38400 bauds
   
;------------------------------------------------------------------------------
; config 
;------------------------------------------------------------------------------    

 ;CONFIG    OSC = HS     ;INTIO67 ;HS        ; Oscillateur principal (LP,XT,HS,RC,EC,ECIO,HSPLL,RCIO)
 config OSC = INTIO67   ; intosc 8MHz     voir config dans init
 CONFIG PWRT = OFF        ; Délai au démarrage (ON/OFF)
 CONFIG WDT = OFF        ; Mise en service watchdog (ON/OFF)
 CONFIG WDTPS = 128        ; Postdiviseur du watchdog (1,2,4,8,16,32,64,128)
 CONFIG LVP = OFF        ; Programmation basse tension autorisée (ON/OFF)
 CONFIG DEBUG = OFF        ; Debugger hors service (laisser sur OFF)
 CONFIG CP0 = OFF        ; code protection sur block 0 (ON/OFF)
 CONFIG CP1 = OFF        ; code protection sur block 1 (ON/OFF)
 CONFIG CP2 = OFF        ; code protection sur block 2 (ON/OFF)
 CONFIG CPB = OFF        ; code protection sur bootblock  (ON/OFF)
 CONFIG CPD = OFF        ; Code protection sur eeprom (ON/OFF)
 CONFIG WRT0 = OFF        ; Protection écriture block 0 (ON/OFF)
 CONFIG WRT1 = OFF        ; Protection écriture block 1 (ON/OFF)
 CONFIG WRT2 = OFF        ; Protection écriture block 2 (ON/OFF)
 CONFIG WRTB = OFF        ; Protection écriture bootblock (ON/OFF)
 CONFIG WRTC = OFF        ; Protection écriture configurations (ON/OFF)
 CONFIG WRTD = OFF        ; Protection écriture zone eeprom (ON/OFF)
 CONFIG EBTR0 = OFF        ; protect. lecture de table block 0 (ON/OFF)
 CONFIG EBTR2 = OFF        ; protect. lecture de table block 2 (ON/OFF)
 CONFIG EBTRB = OFF        ; protect. lecture de table bootblock (ON/OFF)

;------------------------------------------------------------------------------
; data en ram
;------------------------------------------------------------------------------
psect udata_bank0
        
wloopu:     ds        1     ; 0x020 bank 0
wlooph:     ds        1     ; 0x021
wloopl:     ds        1     ; 0x022
save_w:     ds        1     ; 0x023


;------------------------------------------------------------------------------
; reset
; ajouter au projet MpLabX custom linker option -> -Preset_vect=0h
;------------------------------------------------------------------------------
psect reset_vect, class=code, delta=1    ; delta=2
_reset:     goto      init
  
;------------------------------------------------------------------------------
init:     
    clrf    PORTA               ; effacement des ports
    clrf    PORTB
    clrf    PORTC
    clrf    PORTD

    clrf    TRISA               ; ports en sortie
    clrf    TRISB              
    clrf    TRISC            
    bsf     TRISC,6         ; RC6 et RC7 en entrée
    bsf     TRISC,7
    clrf    TRISD
    
    bcf     OSCCON,0    ;SCS1 et 
    bsf     OSCCON,1    ;SCS0 =10 = oscilateur interne
    bsf     OSCCON,4    ;IRCF2:IRCF0 =111 = 8Mhz
    bsf     OSCCON,5
    bsf     OSCCON,6
    
;===============================================================    
bcl:        call    seconde
        bsf        LATA,0
    
        call    seconde
        bcf        LATA,0
      

            goto      bcl        
;================================================================
        
seconde:    movlw     100
            call      wait_w_10ms
            return

;------------------------------------------------------------------------------
; tempos de 10ms, 100ms et W fois 10ms
;------------------------------------------------------------------------------
wait_100ms: movlw     10                ; tempo de 100ms, modifie wloopu,wlooph,wloopl,W
wait_w_10ms:movwf     wloopu            ; tempo en dizaines de ms (10ms à 2,55s)
w91:        call      wait_10ms         ; modifie wloopu,wlooph,wloopl,W
            decfsz    wloopu,F
            goto      w91
            return
;
wait_10ms:  movlw     10000000/4/256/TCY; environ 10ms avec une boucle de 4 cycles
            movwf     wlooph            ; modifie wlooph,wloopl,W
w92:        clrf      wloopl
w93:        clrwdt                      ; 1 cycle
            decfsz    wloopl,F          ; 1 cycle       
            goto      w93               ; 2 cycles si saut
            decfsz    wlooph,F
            goto      w92
            return
 
;------------------------------------------------------------------------------
            end       _reset

Premier programme ASM avec pic-as.exe
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#19 Message par satinas » dim. 21 févr. 2021 07:13 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

delta c'est la taille en octets du plus petit élément adressable de la section.
Il est à 2 sur les 16F, on ne peut adresser que des mots de 14 bits, soit 2 octets. Quand le PC s'incrémente de 1, il se déplace en fait de 2 octets.
Sur les 18F c'est 1, car bien que les mots soient de 16 bits soit 2 octets, tous les octets sont adressables par TBLPTR, et le PC s'incrémente de 2 pour 2 octets de déplacement, le bit b0 du PC restant toujours à 0.
Pour la ram c'est 1, on l'adresse octet par octet.
La valeur de delta par défaut est 1, donc tu peux l'omettre.

En ce qui concerne l'eeprom data, dans le fichier 18f4525.inc, c'est delta=2, et là je comprends pas car elle est adressable octet par octet avec EEADRH/EEADR/EEDATA.

Premier programme ASM avec pic-as.exe
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#20 Message par JMarc » dim. 21 févr. 2021 09:25 lien vers la Data-Sheet : Cliquez ici

Bonjour Satinas et les nouveaux Pic-as forumeurs

Merci pour les explications

Je m’attaque au interruptions


https://ww1.microchip.com/downloads/en/DeviceDoc/MPASM%20to%20MPLAB%20XC8%20PIC%20Assembler%20Migration%20Guide%2050002973A.pdf
[ur l=https://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB%20XC8%20PIC%20Assembler%20User%27s%20Guide%2050002974A.pdf][/url]

https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers#tabs



Bonne lecture


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 47 invités