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 ---
- 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 ---
Modérateur : mazertoc
Premier programme ASM avec pic-as.exe
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 :)
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
Premier programme ASM avec pic-as.exe
Bonsoir satinas, JMarc, et tout le forum,
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.
Personnellement j'utilise un simple éditeur, comme je le décrit ICI ça évite pas mal de problème.
A+
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.
Personnellement j'utilise un simple éditeur, comme je le décrit ICI ça évite pas mal de problème.
A+
Modifié en dernier par Temps-x le ven. 19 févr. 2021 00:58, modifié 2 fois.
Premier programme ASM avec pic-as.exe
Premier programme ASM avec pic-as.exe
Premier programme ASM avec pic-as.exe
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
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
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.
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
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
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
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
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.
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
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
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 18 invités