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
Confirmé
Confirmé
Messages : 647
Enregistré en : novembre 2015

#1 Message par satinas » jeu. 7 janv. 2021 10:23 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous et bonne année :)

Ce nouvel assembleur 8 bits est à utiliser depuis MpLabX 5.40.

Il faut semble-t-il déclarer dans les options link du projet MpLabX :
- la section de programme reset code.
- la section de programme interrupt code, si interruptions il y a.

Quelques différences avec MPASM, notamment cblock n'est plus reconnu.

Code : Tout sélectionner

;------------------------------------------------------------------------------
; exemple de programme MpLabX 5.45 assembleur pic-as.exe (xc8) 7/1/2021
; - 16F876 16F877 16F876A 16F877A 16LF876A 16LF877A 16F887
; - quartz 16MHz
; - led clignotante à la seconde
; - port série transmit/receive

#include <xc.inc>

OSCF      equ   16000000        ; Fosc = 16MHz
FCY       equ   OSCF/4          ; Fcy  = 4MHz
TCY       equ   1000000000/FCY  ; Tcy  = 250ns
VAL_BRG   equ   FCY/4/38400-1   ; rs   = 38400 bauds
   
;------------------------------------------------------------------------------
; config hardware
;------------------------------------------------------------------------------
#ifdef __16F887
; CONFIG1
  CONFIG FOSC  = HS       ; Oscillator Selection bits (HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN)
  CONFIG WDTE  = OFF      ; Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
  CONFIG PWRTE = OFF      ; Power-up Timer Enable bit (PWRT disabled)
  CONFIG MCLRE = ON       ; RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
  CONFIG CP    = OFF      ; Code Protection bit (Program memory code protection is disabled)
  CONFIG CPD   = OFF      ; Data Code Protection bit (Data memory code protection is disabled)
  CONFIG BOREN = OFF      ; Brown Out Reset Selection bits (BOR disabled)
  CONFIG IESO  = OFF      ; Internal External Switchover bit (Internal/External Switchover mode is disabled)
  CONFIG FCMEN = OFF      ; Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
  CONFIG LVP   = OFF      ; Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming)
; CONFIG2
  CONFIG BOR4V = BOR40V   ; Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
  CONFIG WRT   = OFF      ; Flash Program Memory Self Write Enable bits (Write protection off)
#else
; CONFIG
  CONFIG FOSC  = HS       ; Oscillator Selection bits (HS oscillator)
  CONFIG WDTE  = OFF      ; Watchdog Timer Enable bit (WDT disabled)
  CONFIG PWRTE = OFF      ; Power-up Timer Enable bit (PWRT disabled)
  CONFIG CP    = OFF      ; FLASH Program Memory Code Protection bits (Code protection off)
  CONFIG BOREN = OFF      ; Brown-out Reset Enable bit (BOR disabled)
  CONFIG LVP   = OFF      ; Low Voltage In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
  CONFIG CPD   = OFF      ; Data EE Memory Code Protection (Code Protection off)
#endif

;------------------------------------------------------------------------------
; macros
;------------------------------------------------------------------------------
movlf       macro     d8,adr8
            movlw     d8
            movwf     adr8
            endm

;------------------------------------------------------------------------------
; data en eeprom
;------------------------------------------------------------------------------
psect edata
            db        0x13,0x14
            db        0x15,0xee

;------------------------------------------------------------------------------
; 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

psect udata_bank1
var_bk1:    ds        1     ; 0x0a0 bank 1
 
var_bk2     equ       0x120 ; 0x120 bank 2

;------------------------------------------------------------------------------
; reset
; ajouter au projet MpLabX custom linker option -> -Preset_vect=0h
;------------------------------------------------------------------------------
psect reset_vect, class=code, delta=2
_reset:     goto      init

;------------------------------------------------------------------------------
; interrupts
; ajouter au projet MpLabX custom linker option -> -Pint_vect=4h
;------------------------------------------------------------------------------
psect int_vect, class=code, delta=2
            movwf     save_w
            movf      RCREG,W
            addlw     1
            movwf     TXREG
            movf      save_w,W
            retfie
 
;------------------------------------------------------------------------------
; code
;------------------------------------------------------------------------------
init:       bsf       RP0             ; bank 1
            movlf     VAL_BRG,SPBRG
            movlf     0x24,TXSTA      ; uart tx on, brgh=1
            bcf       TRISC,2         ; led
            bcf       RP0             ; bank 0
            movlf     0x90,RCSTA      ; uart on, rx on
            movf      RCREG,W

            bsf       RP0             ; bank 1
            clrf      BANKMASK(var_bk1)
            bcf       RP0             ; bank 0
            bsf       RP1             ; bank 2
            clrf      var_bk2
            bcf       RP1             ; bank 0

            bcf       RCIF
            bsf       RP0             ; bank 1
            bsf       RCIE
            bcf       RP0             ; bank 0
            bsf       PEIE
            bsf       GIE

bcl:        call      seconde
            movlf     'U',TXREG
            bsf       PORTC,2
            call      seconde
            movlf     'U',TXREG
            bcf       PORTC,2
            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
           
Modifié en dernier par satinas le jeu. 7 janv. 2021 17:10, modifié 1 fois.

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

#2 Message par Temps-x » jeu. 7 janv. 2021 16:06 lien vers la Data-Sheet : Cliquez ici

Bonjour satinas, et tout le forum,

Je ne connais pas cette assembleur, sous quelle système d'exploitation est t'il présent ?

As tu regardé le fichier qui est include xc.inc ? et peux tu le mettre en téléchargement.

ça ressemble beaucoup à MPASM, reste à voir les avantage et inconvénient.....

Merci ! pour le retour

==> 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
satinas
Confirmé
Confirmé
Messages : 647
Enregistré en : novembre 2015

#3 Message par satinas » jeu. 7 janv. 2021 16:28 lien vers la Data-Sheet : Cliquez ici

Pic-as, c'est le nouvel assembleur livré avec xc8, et imposé depuis la version MpLabX 5.40, qui n'existe qu'en 64 bits. MPASM n'étant plus reconnu, il n'évoluera sans doute plus. On pourra sans doute assembler avec Pic-as hors MpLabX, reste à trouver comment.

xc.inc est le fichier header qui se charge de sélectionner le fichier header spécifique au pic. C'est comme avant, sauf que c'est plus compatible avec MPASM.

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

#4 Message par Temps-x » jeu. 7 janv. 2021 17:16 lien vers la Data-Sheet : Cliquez ici

Re

:eek: Un nouvelle assembleur, c'est Gérard qui va être content :-D actuellement je suis sous Windows XP (Pack 3) version 32 bits.

Donc, je ne peux pas installer cette version de MpLab X 5.40 en 64 bits, car j'ai pas vu MPLAB X 5.40 en 32 bits.

On se dirige de plus en plus vers des programmes qui tourne en 64 bits, et je me rends compte qu'il faut sans arrêt se mettre à jour, ça devient pénible.

As tu essayés MPASM sous système d'exploitation 64 bits, normalement il devrait fonctionné vu qu'il est en 32 bits, pas contre l'inverse n'est pas vrai.

==> 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
satinas
Confirmé
Confirmé
Messages : 647
Enregistré en : novembre 2015

#5 Message par satinas » jeu. 7 janv. 2021 17:27 lien vers la Data-Sheet : Cliquez ici

En plus MpLabX 5.45, c'est 6Go sur le disque.
Oui, heureusement tout ce qui marchait avant en 32 bits continue à marcher sur un OS 64 bits. D'ailleur j'ai passé mon WIndows 10 très récemment en 64 bits. Par contre j'ai l'impression qu'il rame beaucoup plus en 64 bits, peut être à cause du Covid ambiant.
Le problème c'est qu'il faut avoir 3 versions, Mplab 8.92 et MpLabX 5.35 pour MPASM, et MLabX >= 5.40 pour les nouveaux pics.

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

#6 Message par Temps-x » jeu. 7 janv. 2021 17:37 lien vers la Data-Sheet : Cliquez ici

satinas a écrit :Source du message Le problème c'est qu'il faut avoir 3 versions, Mplab 8.92 et MpLabX 5.35 pour MPASM, et MLabX >= 5.40 pour les nouveaux pics.


Pour assembler pas besoin d'avoir 3 versions, il faut juste l'assembleur qui fait (110 M)

Sur mon disque dur j'ai Mplab 8.92 qui me sert à trouver les erreurs programme, et Mplab x 5.35 que j'utilise pour programmer les Pic récent, c'est tout.

A+
Modifié en dernier par Temps-x le jeu. 7 janv. 2021 18:14, modifié 1 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
satinas
Confirmé
Confirmé
Messages : 647
Enregistré en : novembre 2015

#7 Message par satinas » jeu. 7 janv. 2021 17:41 lien vers la Data-Sheet : Cliquez ici

MPASM c'est pour les récréations et le bootloader, sinon je fais surtout du C :)

Premier programme ASM avec pic-as.exe
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1399
Âge : 62
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#8 Message par Gérard » sam. 9 janv. 2021 14:33 lien vers la Data-Sheet : Cliquez ici

Temps-x a écrit :Re

:eek: Un nouvelle assembleur, c'est Gérard qui va être content :-D

...

==> A+


Trop content... :lol:

exit
Le 18 / 04 / 2019 je suis devenu papy de jumeaux, une fille et un garçon. Quel bonheur.

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

#9 Message par Temps-x » sam. 9 janv. 2021 15:43 lien vers la Data-Sheet : Cliquez ici

Bonjour Gérard, et tout le forum,

Gérard a écrit :Source du message Trop content... :lol:

Tu es gâté par le père Noël cette année... c'est parce que tu as était sage. :-D

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


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité