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 : Jérémy
Erreur de ROM !
Erreur de ROM !
bonjour
Donc avec point origine,ok.J'ai pas fait le test sous XC8 mais ahma, cela doit-être pareil . La limite de 0X800 en ASM la réponse est dans le jeux instruction TBLRD avec plusieurs combinaisons d’offset et son pointeur TBLPT (U,H,L) qui est sur 24bits (pour un point origine, a la limite oui pour la clarté de lecture mais pas obligatoire, car incrémentation du pointeur est bien sur sur 24bits).
je reviens sur l’impossibilité en C. Ce verrou ,AMHA (pas très doué en C) est du, au-fait qu'il n'utilise pas ces instructions pour accéder a la flash mais avec des pointeurs lambda,et ferme la parenthèse.
Cela ouvre plein de perspectives, mais aussi un savoir manipuler fichier asm avec C ou objet avec C ,dans un projet et suivant le compli, chacun a sa sauce. Autre problème les fonts sont pour un format en C, sous ASM les données sont du style:
jeremy tu es devant ton fameux 4 lors du fil précédent et ma proposition en ASM .Donc oui possible avec un peu de travail j'ai pas trop gratter sur le logiciel des fonts s'il peut sortir Ce format si oui pas grand chose comme boulot
Autre atout pour ce type ASM,C c'est la rapidité je sais déjà dit
sur la chercher une donnée puisqu'il y a des instructions pour cela.
A+
PS si quelqu'un est tenté par l'aventure je suis partant
Donc avec point origine,ok.J'ai pas fait le test sous XC8 mais ahma, cela doit-être pareil . La limite de 0X800 en ASM la réponse est dans le jeux instruction TBLRD avec plusieurs combinaisons d’offset et son pointeur TBLPT (U,H,L) qui est sur 24bits (pour un point origine, a la limite oui pour la clarté de lecture mais pas obligatoire, car incrémentation du pointeur est bien sur sur 24bits).
je reviens sur l’impossibilité en C. Ce verrou ,AMHA (pas très doué en C) est du, au-fait qu'il n'utilise pas ces instructions pour accéder a la flash mais avec des pointeurs lambda,et ferme la parenthèse.
Cela ouvre plein de perspectives, mais aussi un savoir manipuler fichier asm avec C ou objet avec C ,dans un projet et suivant le compli, chacun a sa sauce. Autre problème les fonts sont pour un format en C, sous ASM les données sont du style:
Code : Tout sélectionner
ORG 0X8FF
QUATRE
DB 0x00 , 0x02 , 0x06 , 0x0A , 0x12 , 0x12 , 0x22 , 0x42 ; LCD page 0
DB 0x82 , 0xFF , 0x02 , 0x02 , 0x02 , 0x00 , 0x00 , 0x00
jeremy tu es devant ton fameux 4 lors du fil précédent et ma proposition en ASM .Donc oui possible avec un peu de travail j'ai pas trop gratter sur le logiciel des fonts s'il peut sortir Ce format si oui pas grand chose comme boulot
Autre atout pour ce type ASM,C c'est la rapidité je sais déjà dit
A+
PS si quelqu'un est tenté par l'aventure je suis partant
Erreur de ROM !
bon
j'ai besoin de vacances
la description du haut c'est pour un 18F mais le principe reste le même puis pour le 16F le pointeur est sur 16 bits EEADRH et EEADRL
dans le jardin
de retour du jardin
fait un test en ASM j'ai faire une font de 4096 octets soit 1 page c'est bien le complilateur C qui block a 2048
ici vue de 4 pages dispos sur ton µC
donc oui, si tu veux des fonts plus grand que 2048 on peu faire cela en ASM
image de la flash
fin de la flash
sur 4096 octes
A+
j'ai besoin de vacances
dans le jardinde retour du jardin
ici vue de 4 pages dispos sur ton µC
donc oui, si tu veux des fonts plus grand que 2048 on peu faire cela en ASM
image de la flash
fin de la flash
sur 4096 octes
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Anonymous le mar. 31 mai 2016 17:29, modifié 1 fois.
Erreur de ROM !
Pour ceux qui sont sous XC8 pour positionner un tableau a une adresse particulière voici:
Bien oui quand meme
A+
Code : Tout sélectionner
const char mesPagesRom [] @ 0x800={
"BIENVENU ***"
"Compteur Amperes"
};
Bien oui quand meme
A+
Erreur de ROM !
- paulfjujo

Maître- Messages : 3261
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Bien vu MaÎ,
mettre le string en direct ...
ce qui donne sous mikroC
compilation sans erreur et
le listing confirme OK
mettre le string en direct ...
ce qui donne sous mikroC
Code : Tout sélectionner
const char mesPagesRom []={
"BIENVENU ***"
"Compteur Amperes"
} absolute 0x0600;
const char repere0[]={0,1} absolute 0x06FE;
const char repere1[]={2,3} absolute 0x0FFE;
const char repere2[]={4,5} absolute 0x17FE;
#include "Font_bold12a.h" // -4 car
#include "Font_bold12b.h" // -4 car
#include "Font_bold12c.h" // -4 car
.. dans le main
c1= mesPagesRom [0]; // utilisation pour que le compilo voit bien cette table de chars
c1= repere0[0];
c2= repere1[0];
c3= repere2[0];
c1= Font_arial_12a_bold[0];
c2= Font_arial_12b_bold[0];
c3= Font_arial_12c_bold[0];
compilation sans erreur et
le listing confirme OK
Code : Tout sélectionner
[code=php]
;16F1847_test.c,11 :: _mesPagesRom
0x0600 0x3442 ;_mesPagesRom+0
0x0601 0x3449 ;_mesPagesRom+1
0x0602 0x3445 ;_mesPagesRom+2
.... etc ..
0x061B 0x3473 ;_mesPagesRom+27
0x061C 0x3400 ;_mesPagesRom+28
; end of _mesPagesRom
;16F1847_test.c,16 :: _repere0
0x06FE 0x3400 ;_repere0+0
0x06FF 0x3401 ;_repere0+1
; end of _repere0
;16F1847_test.c,4 :: _Font_arial_12a_bold
0x0800 0x3400 ;_Font_arial_12a_bold+0
0x0801 0x3400 ;_Font_arial_12a_bold+1
..etc ..
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Erreur de ROM !
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Hello,
Je suis honnête , j'ai rien compris !!!
Dans ton commentaire Paul tu signale que tu place la "font" en enlevant les 4 caractères ! mais ca fonctionne si tu ne les mets pas , car elle ne dépasse pas 2048 .
Je ne pense pas avoir le niveau pour suivre votre conversation ......
Je suis honnête , j'ai rien compris !!!
Dans ton commentaire Paul tu signale que tu place la "font" en enlevant les 4 caractères ! mais ca fonctionne si tu ne les mets pas , car elle ne dépasse pas 2048 .
Je ne pense pas avoir le niveau pour suivre votre conversation ......
Erreur de ROM !
- paulfjujo

Maître- Messages : 3261
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
tu signale que tu places la "font" en enlevant les 4 caractères ! mais ca fonctionne si tu ne les mets pas
On est , semble t -il tous d'accord sur ce point là...
en enlevant 4 car on reste sur une taille de table <= à 2048 .
dans le post precedent, j'ai simplement voulu montrer la syntaxe MikroC par rapport à celle de XC8 (presentée par Maï)
pour fixer une adresse de variable (pointeur sur constante) en Flash rom .
un string ou un simple byte .
Dans le meme espace de 2048 byte, si la fonte occupe 2040 bytes
on peut encore y placer des variables (ou plutot pointeur de constantes)
de 2041 à 2047 .. ( en comptant de 0 à 2047 => 2048 cases)
la notion variable et constante n'étant pas tres parlante, pas tres claire , dans ces cas de figures..
je dis variable .. car on pointe sur une table de valeurs en ROM qui sont constantes
mais que l'on peut choiisir en fonction d'un indice dans la table , et donc de recuperer ensuite une variable (en RAM)
sur laquelle on peut agir/modifier.
si la valeur declarée en rom n'est pas dans une table
ce n'est qu'une constante .. imposible de la modifier .. une vraie Constante.
const char maconstante=9;
rappel: equivalent à un
#define maconstante 9
Erreur de ROM !
Bonsoir
Moi j'ai démontré, avec mes tests que c'est MICROC qui bride à 2048 tous tableaux(question de pointeurs)et paul dans son exemple confirme cela , alors que sur ton pic une page fait 4096 octets,j'ai fait aussi,bien sur, un test en C
Voila affaire réglé, peut-être pas.Tu as fais un essai avec un 18F ? , moi oui ->page 4096
A+
Moi j'ai démontré, avec mes tests que c'est MICROC qui bride à 2048 tous tableaux(question de pointeurs)et paul dans son exemple confirme cela , alors que sur ton pic une page fait 4096 octets,j'ai fait aussi,bien sur, un test en C
Voila affaire réglé, peut-être pas.Tu as fais un essai avec un 18F ? , moi oui ->page 4096
A+
Erreur de ROM !
Erreur de ROM !
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités

