Bonjour,
je suis un bricoleur, je programme en assembleur sur un pic 16f876.
Je rencontre un problème au passage de la première page de code à la suivante.
A la compilation j'ai le message " Crossing page boundary -- ensure page bits are set."
Fidèle étudiant de Monsieur Bigonoff j'ai tenté de comprendre l'utilisation de GOTOX, PCLAX - GOTSX,CALLX, PCLAX - CALLSX.
Mais voila, ça fait un bail que je galère.
A la fin de mon programme je rajoute 3 fichiers en include comme ci-dessous.
include <routines_18b20.inc>
include <LCD_recepteur.inc>
include <tempo.inc>
Donc, a mon avis j'ai une partie de code qui déborde sur une autre page.
1) Est-ce bien exact?
2) Comment savoir Où ?
3) Mettre un GOTOX, CALLX, ... ok mais exemple dans la routine appelée par CALLX doit-on mettre quelque chose quand celle-ci appelle une autre routine, un autre CALLX ?
Ensuite j'ai essayé GOTOX dans cette partie: (prg principal)
btfsc okmes ; Test si besoin mesure, saute si=0 (pas de mesure)
call mesurex ; =1 effectue une mesure DS18b20
call lecture_ds1307 ; lit l'heure
call aff1307 ; affiche l'heure
GOTOX appel
4) Est-ce convenable? (Ca à l'air de marcher).?
5) Est-ce convenable si je fais ceci pour la partie CALL ?
PCLAX mesurex
btfsc okmes ;Test si besoin mesure, saute si=0 (pas de mesure)
CALLSX mesurex ; =1 effectue une mesure DS18b20
CALLX lecture_ds1307 ; lit l'heure
CALLX aff1307 ; affiche l'heure
GOTOX appel
J'ai testé ces manips, mais mon programme plante. Je rajoute dans les sous-routines appelées les gotox, plcax, callx, callsx, gotsx.
je n'en finis pas de retoucher les fichiers en include aussi et toujours le même résultat.
Si vous avez expérimenté ces macros, pouvez-vous m'aider s'il vous plaît ?
( un exemple vaut mieux que milles mots). Merci
-----