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
Bonjour à toute l'équipe du forum
content d'avoir de tes nouvelles nondediode et courage a tout les deux
voici mon devoir
voici mon devoir
Code : Tout sélectionner
CtlAff 0x80 ; select CG ROM afficheur et mode OR
DataAff_16 0x0000,0x42 ;set grp en 0000h
DataAff_16 0x2800,0x43 ; // set pavé grp 6x8 (40) ou 8x8 (30)
DataAff_16 0x0017,0x40 ; // set text en 1700h
DataAff_16 0x2800,0x41 ; // set pavé grp 6x8 (40) ou 8x8 (30)
CtlAff 0xa0 ; // épaisseur curseur 1 lignes (1 à 8)
CtlAff 0x9c ; // afficher grp/txt et cacher curseur
DataAff_16 0x1700,0x24
Code : Tout sélectionner
CtlAff macro ctr
movlw ctr
movwf CMD
call Envoi_cmd
endm
DataAff_16 macro x1,x2
movlw (x1) / 0x100
movwf DATA_H
movlw (x1) % 0x100
movwf DATA_L
movlw x2
movwf CMD
call Envoi_data_16
call Envoi_cmd
endm
Bonjour à toute l'équipe du forum
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour à toute l'équipe du forum
N'allons pas trop vite, c'est pas fini, il faut envoyer un texte.
Lol, JMarc on a fait un aller-retour. Ta macro "envoi_aff_16" précédente était bonne !
Le lcd attend DATA_L DATA_H CMD
et c'est pas très joli, alors grâce aux (puissantes !) macros, on inverse l'ordre des arguments, car c'est plus lisible avec la commande en premier. donc c'est :
DataAff_16 0x42, 0x0000 ; set grp en 0000h
Et dans la macro on fait ce qu'on veut
Lol, JMarc on a fait un aller-retour. Ta macro "envoi_aff_16" précédente était bonne !
Le lcd attend DATA_L DATA_H CMD
et c'est pas très joli, alors grâce aux (puissantes !) macros, on inverse l'ordre des arguments, car c'est plus lisible avec la commande en premier. donc c'est :
DataAff_16 0x42, 0x0000 ; set grp en 0000h
Et dans la macro on fait ce qu'on veut
Bonjour à toute l'équipe du forum
un grand merci satinas
donc voici la nouvelle mouture
avec les macros
et les sous routines
mais il me reste a mettre des tempos car sur le programme de nondediode, le pic attend une reponse de l'afficheur donc je pensai ignorer le test de reponse et le remplacer par une tempo et comprendre le datasheet pour mettre les bonnes initialisations
nondediode, il faudra quand même ouvrir le bouquin de bigonoff car nous sommes loin d'avoir fini
as tu un lien d'achat de ton ecran ?
donc voici la nouvelle mouture
Code : Tout sélectionner
bsf LCD_WR ; RB2 | 35 | S | Data Write afficheur
bsf LCD_RD ; RB3 | 36 | S | Data Read afficheur
bsf LCD_CE ; RB4 | 37 | S | Chip Enable
bsf LCD_CD ; RB5 | 38 | S | C/D
bsf LCD_RESET ; RB7 | 40 | S | Reset
call Delay50mS
bcf LCD_RESET ; RB7 | 40 | S | Reset
call Delay50mS
bsf LCD_RESET
CtlAff 0x80 ; select CG ROM afficheur et mode OR
DataAff_16 0x42,0x0000 ;set grp en 0000h
DataAff_16 0x43,0x2800 ;set pavé grp 6x8 (40) ou 8x8 (30)
DataAff_16 0x40,0x0017 ;set text en 1700h
DataAff_16 0x41,0x2800 ; set pavé grp 6x8 (40) ou 8x8 (30)
CtlAff 0xa0 ; épaisseur curseur 1 lignes (1 à 8)
CtlAff 0x9c ; afficher grp/txt et cacher curseur
DataAff_16 0x24,0x1700
avec les macros
Code : Tout sélectionner
CtlAff macro ctr
movlw ctr
movwf CMD
call Envoi_cmd
endm
DataAff_8 macro x1,x2
movlw x1
movwf CMD
movlw x2
movwf DATA_L
call Envoi_data_8
call Envoi_cmd
endm
DataAff_16 macro x1,x2
movlw x1
movwf CMD
movlw (x2) / 0x100
movwf DATA_H
movlw (x2) % 0x100
movwf DATA_L
call Envoi_data_16
call Envoi_cmd
endm
et les sous routines
Code : Tout sélectionner
Envoi_cmd
bsf LCD_CD ; etat haut pour commande
bcf LCD_CE ; Chip Enable
movf CMD,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
return
Envoi_data_8
bcf LCD_CD ; etat bas pour données
bcf LCD_CE ; Chip Enable
movf DATA_L,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
bsf LCD_CE ; Chip disable
return
Envoi_data_16
bcf LCD_CD ; etat bas pour données
bcf LCD_CE ; Chip Enable
movf DATA_L,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
movf DATA_H,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
bsf LCD_CE ; Chip disable
return
mais il me reste a mettre des tempos car sur le programme de nondediode, le pic attend une reponse de l'afficheur donc je pensai ignorer le test de reponse et le remplacer par une tempo et comprendre le datasheet pour mettre les bonnes initialisations
nondediode, il faudra quand même ouvrir le bouquin de bigonoff car nous sommes loin d'avoir fini
as tu un lien d'achat de ton ecran ?
Bonjour à toute l'équipe du forum
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour à toute l'équipe du forum
non ne l'envoi pas, il aurait vraiment été identique oui mais nous allons continuer a jouer comme cela
je te met le programme pour que tu puisses suivre mais il n'est pas fini, branche une led sur ra0 et une autre sur ra1
je te met le programme pour que tu puisses suivre mais il n'est pas fini, branche une led sur ra0 et une autre sur ra1
Code : Tout sélectionner
;---------------------------------------------------------GESTION AFFICHEUR-----------------------------------------------------------------
; TITRE: Gestion d'un afficheur LCD graphique
; DATE: 10/11/2018
; AUTEUR: nondediode
; PIC UTILISE: PIC16F877
; Gestion PP845 version 2019
; le quartz est de 4MHz
; essai JMarc Version 1,01
;----------------------------------------------------Brochage du PIC sur la carte---------------------------------------------------------
;
; Port | Broche | E/S | Description
; RA0 | 02 | S | Relais "MUTE"
; RA1 | 03 | S | Relais "PHASE"
; RA2 | 04 | S | LED droite
; RA3 | 05 | S | LED gauche
; RA4 | 06 | S | Relais de cde HT gauche et droit
; RA5 | 07 | S | Relais statique gauche et droit
; RB0 | 33 | E | Inter "on / off"
; RB1 | 34 | E | Bouton poussoir "OK"
; RB2 | 35 | S | Data Write afficheur
; RB3 | 36 | S | Data Read afficheur
; RB4 | 37 | S | Chip Enable
; RB5 | 38 | S | C/D
; RB6 | 39 | S | Font Size Select
; RB7 | 40 | S | Reset
; RC0 | 15 | S | Adressage entrée audio bit A
; RC1 | 16 | S | Adressage entrée audio bit B
; RC2 | 17 | S | Adressage entrée audio bit C
; RC3 | 18 | S | Adressage entrée audio bit D
; RC4 | 23 | S | LEDs Rouge droit et gauche
; RC5 | 24 | E | Bouton poussoir "INPUT"
; RC6 | 25 | E | Bouton poussoir "PHASE"
; RC7 | 26 | E | Bouton poussoir "MUTE"
; RD0 | 19 | S | Sortie bit D7 du LCD
; RD1 | 20 | S | Sortie bit D6 du LCD
; RD2 | 21 | S | Sortie bit D5 du LCD
; RD3 | 22 | S | Sortie bit D4 du LCD
; RD4 | 27 | S | Sortie bit D3 du LCD
; RD5 | 28 | S | Sortie bit D2 du LCD
; RD6 | 29 | S | Sortie bit D1 du LCD
; RD7 | 30 | S | Sortie bit D0 du LCD
;--------------------------------------------------DIRECTIVE D'ASSEMBLAGE POUR MPLAB-------------------------------------------------------
list p=16f877
#include <p16f877.inc>
radix dec ; on travaille en décimal par défaut
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC
OPTIONVAL EQU B'00001111'
;-------------------------------------------------Definition de la RAM------------------------------------------------------
cblock 0x20
TEMP ;temp buffer
DATAL ;instruction donnée =0
DATAH ;instruction donnée =1
COMMAND ;instruction
TABLECOUNT ;tablecounter
endc
cblock 0x70
w_temp : 1 ; Sauvegarde registre W
status_temp : 1 ; sauvegarde registre STATUS
FSR_temp : 1 ; sauvegarde FSR (si indirect en interrupt)
PCLATH_temp : 1 ; sauvegarde PCLATH (si prog>2K)
Tempj : 1
delai1_LED_TEMOIN : 1
delai2_LED_TEMOIN : 1
temptmr0 : 1
temp1tmr1 : 1
DATA_L : 1
DATA_H : 1
CMD : 1
STATUS_TEMP ;interruptcontextsave for STATUS
PCLATH_TEMP ;interruptcontextsave for PCLATH
COUNT1 ;delaycounter 1
COUNT2 ;delaycounter 2
COUNT3 ;delaycounter 3
DATA_EE_ADDR ;data EEPROM address buffer
DATA_EE_DATA ;data EEPROM data buffer
endc
group udata 0x90
GlcdControlBus res 1
;-------------------------------------------------Definition des constantes------------------------------------------------------
#DEFINE LED_TEMOIN PORTA,1
#DEFINE LED_TEMOIN2 PORTA,0
#DEFINE LCD_WR PORTB,2 ; RB2 | 35 | S | Data Write afficheur
#DEFINE LCD_RD PORTB,3 ; RB3 | 36 | S | Data Read afficheur
#DEFINE LCD_CE PORTB,4 ; RB4 | 37 | S | Chip Enable
#DEFINE LCD_CD PORTB,5 ; RB5 | 38 | S | C/D
#DEFINE LCD_RESET PORTB,7 ; RB7 | 40 | S | Reset
LCD_DATA EQU PORTD
;--------------------------------------------Definition des registres temporaires------------------------------------------------------
;--------------------------------------------Directives des programmes------------------------------------------------------
;=====================================Macro=====================================
led_cligno_lent macro
movlw 0x28 ; longueur
movwf delai1_LED_TEMOIN
movlw 0x5A ; fréquence
movwf delai2_LED_TEMOIN
clrf temp1tmr1
endm
led_cligno_rapide macro
movlw 0x08 ; longueur
movwf delai1_LED_TEMOIN
movlw 0x0A ; fréquence
movwf delai2_LED_TEMOIN
clrf temp1tmr1
endm
led_cligno_flash macro
movlw 0x29 ; longueur
movwf delai1_LED_TEMOIN
movlw 0x2A ; fréquence
movwf delai2_LED_TEMOIN
clrf temp1tmr1
endm
CtlAff macro ctr
movlw ctr
movwf CMD
call Envoi_cmd
endm
DataAff_8 macro x1,x2
movlw x1
movwf CMD
movlw x2
movwf DATA_L
call Envoi_data_8
call Envoi_cmd
endm
DataAff_16 macro x1,x2
movlw x1
movwf CMD
movlw (x2) / 0x100
movwf DATA_H
movlw (x2) % 0x100
movwf DATA_L
call Envoi_data_16
call Envoi_cmd
endm
;===============================================================================
org 0x000 ; Debut du programme principale
goto START ; Saut à START
;*****************************************************************************
; ROUTINE INTERRUPTION *
;*****************************************************************************
;sauvegarder registres
;---------------------
org 0x004 ; adresse d'interruption
movwf w_temp ; sauver registre W
swapf STATUS,w ; swap status avec résultat dans w
movwf status_temp ; sauver status swappé
movf FSR , w ; charger FSR
movwf FSR_temp ; sauvegarder FSR
bsf STATUS,RP0 ; sélectionner banque1
btfss PIE1,TMR1IE ; tester si interrupt autorisée
goto intsw1 ; non sauter
bcf STATUS,RP0 ; oui, sélectionner banque0
btfss PIR1,TMR1IF ; oui, tester si interrupt en cours
goto intsw1 ; non sauter
MOVLW 0x3C ; int toute le 100ms
MOVWF TMR1H
MOVLW 0xB3
movwf TMR1L
incf temp1tmr1,f
movf delai2_LED_TEMOIN,w ;on test si Xfois
subwf temp1tmr1,W
btfss STATUS,Z
goto suite_led_temoin
bcf LED_TEMOIN
; bsf LED_TEMOIN
clrf temp1tmr1
goto sautintsw9
suite_led_temoin
movf delai1_LED_TEMOIN,w
subwf temp1tmr1,W
btfss STATUS,Z
goto sautintsw9
bsf LED_TEMOIN
; bcf LED_TEMOIN ; inversion des sorties pour la platine essais
sautintsw9
bcf PIR1,TMR1IF ; effacer flag interupt
intsw1
bcf STATUS,RP0 ; oui, sélectionner banque0
;restaurer registres
;-------------------
restorereg
bcf STATUS,RP0
movf FSR_temp , w ; charger FSR sauvé
movwf FSR ; restaurer FSR
swapf status_temp,w ; swap ancien status, résultat dans w
movwf STATUS ; restaurer status
swapf w_temp,f ; Inversion L et H de l'ancien W
; sans modifier Z
swapf w_temp,w ; Réinversion de L et H dans W
; W restauré sans modifier status
retfie
;-------------------------------------------------INITIALISATION------------------------------------------------------
START
; Registre d'options (banque 1)
; -----------------------------
BANKSEL OPTION_REG ; sélectionner banque 1
movlw OPTIONVAL ; charger masque
movwf OPTION_REG ; initialiser registre option
; registres interruptions (banque 1)
; ----------------------------------
bsf INTCON,PEIE ; autoriser interruptions périphériques
bcf STATUS,RP0 ; passer banque 0
; autoriser interruptions (banque 0)
; ----------------------------------
bsf T1CON,0X4
bcf T1CON,0X5
MOVLW 0x3C ; int toute le 100ms
MOVWF TMR1H
MOVLW 0xB3
movwf TMR1L
BSF T1CON,TMR1ON ;on TMR1 bit a 1
CLRF PORTA ; Remise à 0 du port A
CLRF PORTB ; Remise à 0 du port B
CLRF PORTC ; Remise à 0 du port C
CLRF PORTD ; Remise à 0 du port D
CLRF PORTE ; Remise à 0 du port E
bsf STATUS,RP0 ; Banque 1
clrf TRISA ; PortA en sortie
movlw b'00000110'
movwf ADCON1 ; sortie digital
; PORTA, PORTB, PORTC, and PORTE outputs
CLRF TRISB ; PORTD defaults to input
CLRF TRISC ;
CLRF TRISE ;
BSF PIE1,TMR1IE ;valide le TMR1
bcf STATUS,RP0 ; Banque 0
led_cligno_lent
bsf INTCON,GIE ; valider interruptions
bsf LCD_WR ; RB2 | 35 | S | Data Write afficheur
bsf LCD_RD ; RB3 | 36 | S | Data Read afficheur
bsf LCD_CE ; RB4 | 37 | S | Chip Enable
bsf LCD_CD ; RB5 | 38 | S | C/D
bsf LCD_RESET ; RB7 | 40 | S | Reset
call Delay50mS
bcf LCD_RESET ; RB7 | 40 | S | Reset
call Delay50mS
bsf LCD_RESET
CtlAff 0x80 ; select CG ROM afficheur et mode OR 10000000
DataAff_16 0x42,0x0000 ;set grp en 0000h
DataAff_16 0x43,0x2800 ;set pavé grp 6x8 (40) ou 8x8 (30)
DataAff_16 0x40,0x0017 ;set text en 1700h
DataAff_16 0x41,0x2800 ; set pavé grp 6x8 (40) ou 8x8 (30)
CtlAff 0xa0 ; épaisseur curseur 1 lignes (1 à 8) 10100000
CtlAff 0x9c ; afficher grp/txt et cacher curseur 10011100
DataAff_16 0x24,0x1700
; DataAff('A'-32); CtlAff10(0xc0); // afficher 'A'
DataAff_8 0x24,0xc0 ; afficher 'D'
loop
nop
led_cligno_rapide
GOTO loop ; boucle principale
;-------------------------------------------------Programme tempo------------------------------------------------------
Delay50mS
MOVLW 0x40 ; Charge la valeur dans W
MOVWF COUNT1 ; Transfert de W sur COUNT1
MOVWF COUNT2 ; Transfert de W sur COUNT2
DECFSZ COUNT1,F ; On décrémente COUNT1,F
GOTO $-1 ; Comptage de boucle
DECFSZ COUNT2,F ; On décrémente COUNT2,F
GOTO $-3 ; Comptage de boucle
RETURN
Delay
MOVWF COUNT3 ; Transfert de W sur COUNT3
CALL Delay50mS ; Appel de l'étiquette Delay50mS
DECFSZ COUNT3,F ; On décrémente COUNT3,F
GOTO $-2 ; Comptage de boucle
RETURN
;===============================================================================
Envoi_cmd
bsf LCD_CD ; etat haut pour commande
bcf LCD_CE ; Chip Enable
movf CMD,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
return
Envoi_data_8
bcf LCD_CD ; etat bas pour données
bcf LCD_CE ; Chip Enable
movf DATA_L,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
bsf LCD_CE ; Chip disable
return
Envoi_data_16
bcf LCD_CD ; etat bas pour données
bcf LCD_CE ; Chip Enable
movf DATA_L,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
movf DATA_H,w
movwf LCD_DATA
bcf LCD_WR ; Data Write afficheur actif etat bas
nop
bsf LCD_WR
bsf LCD_CE ; Chip disable
return
END
Modifié en dernier par JMarc le mer. 5 déc. 2018 08:33, modifié 2 fois.
Bonjour à toute l'équipe du forum
J'avais un Toshiba TLX 1741, le néon faisait un petit bruit sympa. Mais toutes ces tensions d'alim ...
- il manque un "bsf LCD_CE" à la fin de "Envoi_cmd"
- et la broche FS du lcd ?
Quelques lignes à modifier ...
Les commandes 0x43 et 0x41 doivent être cohérentes avec l'état de la broche FS, ça devrait pas gêner les premiers essais.
Si l'on met FS à 1, on est en font 6x8, plus jolie que la 8x8 trop espacée, mais cela doit obliger à gérer le graphique par des segments de ligne de 6 pixels par octet, à vérifier.
- il manque un "bsf LCD_CE" à la fin de "Envoi_cmd"
- et la broche FS du lcd ?
Quelques lignes à modifier ...
Code : Tout sélectionner
DataAff_16 0x42, 0x0000 ; set grp en 0000h
DataAff_16 0x43, 30 ; set grp 8x8 (30*8 pixels par ligne)
DataAff_16 0x40, 0x1700 ; set txt en 1700h
DataAff_16 0x41, 40 ; set txt 6x8 (40 caractères par ligne)
DataAff_16 0x24, 0x1700 ; écrire en haut à gauche
DataAff_8 0xc0, 'D'-32 ; afficher 'D'
Les commandes 0x43 et 0x41 doivent être cohérentes avec l'état de la broche FS, ça devrait pas gêner les premiers essais.
Si l'on met FS à 1, on est en font 6x8, plus jolie que la 8x8 trop espacée, mais cela doit obliger à gérer le graphique par des segments de ligne de 6 pixels par octet, à vérifier.
Modifié en dernier par satinas le mer. 5 déc. 2018 19:16, modifié 3 fois.
Bonjour à toute l'équipe du forum
Réponse à JMarc
pas de soucis pour moi, ci-dessous le listing d'assemblage obtenu en insérant les 3 lignes invoquées dans un programme en cours de développement. J'ai juste remplacé le nom du port de sortie par un qui existe sur mon Pic (12F675).
0xfe, c'est bien ~(1<<RS)
cordialement
pas de soucis pour moi, ci-dessous le listing d'assemblage obtenu en insérant les 3 lignes invoquées dans un programme en cours de développement. J'ai juste remplacé le nom du port de sortie par un qui existe sur mon Pic (12F675).
0xfe, c'est bien ~(1<<RS)
Code : Tout sélectionner
607: init
608: RS EQU 0
072 0805 MOVF 0x5, W 609: movf GPIO, W ; met la pin RS à l'état bas (ce n'est pas un pulse
073 39FE ANDLW 0xfe 610: andlw ~(1<<RS)
074 0085 MOVWF 0x5 611: movwf GPIO
612:
cordialement
Bonjour à toute l'équipe du forum
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour tout le monde,
Voilà je suis installé avec le matos, on va pouvoir vivre les évolutions ensemble
Pour répondre à SATINAS au sujet du modèle de l'écran Toshiba. Celui dont je dispose est la référence: TLX-711A-E0. Il était monté sur une autre imprimante du même type mais je n'ai plus en mémoire la marque et la référence des imprimantes. il y a qq années où j'ai débarrassé l'entreprise d'un collègue de tout un stock de matériel mesure. Certains étaient HS d'autres réparables, j'ai sauvé ce que j'ai pu et j'ai désossé tout le reste. Donc bcp de matos en épave que j'ai redistribué et conservé en pièces détachées.
A présent je vais charger le prg et commencer les tests
Je vous rejoins dans qq minutes
Voilà je suis installé avec le matos, on va pouvoir vivre les évolutions ensemble
Pour répondre à SATINAS au sujet du modèle de l'écran Toshiba. Celui dont je dispose est la référence: TLX-711A-E0. Il était monté sur une autre imprimante du même type mais je n'ai plus en mémoire la marque et la référence des imprimantes. il y a qq années où j'ai débarrassé l'entreprise d'un collègue de tout un stock de matériel mesure. Certains étaient HS d'autres réparables, j'ai sauvé ce que j'ai pu et j'ai désossé tout le reste. Donc bcp de matos en épave que j'ai redistribué et conservé en pièces détachées.
A présent je vais charger le prg et commencer les tests
Je vous rejoins dans qq minutes
Bonjour à toute l'équipe du forum
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Résultat fichier JMarc version 1.01
Juste qu'à la compilation une erreur s'affiche pour la ligne "group udata 0x90" placée dans le pavé -------- définition de la RAM---------.
L'erreur est déclarée comme directive non autorisée " Directive only allowed when generating an object files"
J'ai donc isolé cette ligne et j'ai lancé le programme
L'écran s'affiche avec le trait horizontale qui s’efface qq secondes après. Y'a donc du bon malgré l'erreur de cette ligne.
En revanche, aucunes LED clignote
A+
Juste qu'à la compilation une erreur s'affiche pour la ligne "group udata 0x90" placée dans le pavé -------- définition de la RAM---------.
L'erreur est déclarée comme directive non autorisée " Directive only allowed when generating an object files"
J'ai donc isolé cette ligne et j'ai lancé le programme
L'écran s'affiche avec le trait horizontale qui s’efface qq secondes après. Y'a donc du bon malgré l'erreur de cette ligne.
En revanche, aucunes LED clignote
A+
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités