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
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.
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
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.....
pour le retour
A+
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.....
pour le retour
A+
Premier programme ASM avec pic-as.exe
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.
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
Re
Un nouvelle assembleur, c'est Gérard qui va être content 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+
Un nouvelle assembleur, c'est Gérard qui va être content 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+
Premier programme ASM avec pic-as.exe
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.
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
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.
Premier programme ASM avec pic-as.exe
Premier programme ASM avec pic-as.exe
Premier programme ASM avec pic-as.exe
Bonjour Gérard, et tout le forum,
Tu es gâté par le père Noël cette année... c'est parce que tu as était sage.
A+
Gérard a écrit :Source du message Trop content...
Tu es gâté par le père Noël cette année... c'est parce que tu as était sage.
A+
Premier programme ASM avec pic-as.exe
Bonjour Satinas, Temps-x, Gérard, et ce qui nous lisent
Satinas...merci pour ce post. Je reviens en programmation, réinstalle les logiciels sous Os, et prise de tête avant d’avoir Écrit la moindre ligne. Après avoir installé la version 5.40 sur Mac (impossible d’installer la 5.45), il y a aussi un pach à installer car sinon il m’indique ”Bad cpu ”
Ensuite impossible d’assembler mes fichiers et du coup j’ai copié ton programme et cela fonctionne
Ce soir suite des aventures et ce n’est pas gagné
Satinas...merci pour ce post. Je reviens en programmation, réinstalle les logiciels sous Os, et prise de tête avant d’avoir Écrit la moindre ligne. Après avoir installé la version 5.40 sur Mac (impossible d’installer la 5.45), il y a aussi un pach à installer car sinon il m’indique ”Bad cpu ”
Ensuite impossible d’assembler mes fichiers et du coup j’ai copié ton programme et cela fonctionne
Ce soir suite des aventures et ce n’est pas gagné
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités