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
problemo avec UART Write text de taille > 256 octest
- paulfjujo

Maître- Messages : 3261
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
j'ai remplacé UART1_Write_Text(buffer2);
par
UART1_Write_String(buffer2);
où buffer2 est ma table de reception UART2 de taille 512 byrtes
et NO PROBLEMO !
de ce fait j'ai abandonné l'usage de memory manager ...
utilité ?
j'ai remplacé UART1_Write_Text(buffer2);
par
UART1_Write_String(buffer2);
où buffer2 est ma table de reception UART2 de taille 512 byrtes
et NO PROBLEMO !
de ce fait j'ai abandonné l'usage de memory manager ...
Code : Tout sélectionner
void UART1_Write_String(unsigned char * St)
{
int i;
unsigned char c0;
i=0;
while(1)
{
c0= *(St+i);
if(c0==0) break; // sortie sur terminateur de string
UART1_Write(c0);
i++; // pourrait permettre une sortie sur nb de caracteres maxi...si on veut Bretelles et ceinture !
}
}
problemo avec UART Write text de taille > 256 octest
Bonjour Paul
C'est ce que j'ai fais, hier , avec mes tests en prenant ma routine écriture LCD et ça passait sans problème.
Alors le pourquoi ????
Tu es pugnace (tu lâches pas)
peso j'aurais déjà mis la routine en ASM. De plus, pas très compliqué
A+
C'est ce que j'ai fais, hier , avec mes tests en prenant ma routine écriture LCD et ça passait sans problème.
Code : Tout sélectionner
void UART1_Write_String(char * Str)
{
int i;
while (*(Str+i)>0)
{
Write_XC8_LCD (Str,i);
i++;
}
}Alors le pourquoi ????
Tu es pugnace (tu lâches pas)
A+
problemo avec UART Write text de taille > 256 octest
Bonjour,
Le code suivant fonctionne par miracle...
En effet, il n'y a aucune raison pour que la variable locale i prenne la valeur 0 suite à sa déclaration (cf. Variables locales ;-)
Le code suivant fonctionne par miracle...
Code : Tout sélectionner
void UART1_Write_String(char * Str)
{
int i;
while (*(Str+i)>0)
{
Write_XC8_LCD (Str,i);
i++;
}
}
En effet, il n'y a aucune raison pour que la variable locale i prenne la valeur 0 suite à sa déclaration (cf. Variables locales ;-)
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
problemo avec UART Write text de taille > 256 octest
oui claudius tu as raison
donc :
Tu suis, cela fait plaisir, par contre, tu ne sais pas pourquoi notre ami Paul a ce soucis
cela serait mieux pour lui, plutôt que mon i=0, ou peut être un bout de code de ta part pour nous expliquer cela.Plaisir de voir ce bout de code
allez A+
donc :
Code : Tout sélectionner
int i=0;Tu suis, cela fait plaisir, par contre, tu ne sais pas pourquoi notre ami Paul a ce soucis
allez A+
problemo avec UART Write text de taille > 256 octest
- paulfjujo

Maître- Messages : 3261
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Hi paulfjujo,
Unfortunately, there is limitation for UART1_Write_Text.
In the Help menu in the compiler (version 6.6.3) is written that text should be limited to 255 characters and zero terminated.
Best regards,
Lana
cela pourrait se comprendre pour les 16F avec peu de RAM..
mais avec les 18FxxJxx ?
ils s'endorment sur leurs lauriers ( en train de faner !)
une routine ASM avec instructions evoluées TBLPTR, TBLWT*+ MOVFF ?
problemo avec UART Write text de taille > 256 octest
problemo avec UART Write text de taille > 256 octest
problemo avec UART Write text de taille > 256 octest
Bonsoir,
Cela n'est pas un problème de taille de RAM, mais d'organisation segmentée en bank de 256 octets de cette RAM de ces PICs ;-)
Maintenant, lire:
- The PIC 18F452 Memory and Addressing
- PIC16 Specifics
- Linear Data Memory
Une bonne routine ASM avec gestion des bank résoudrait définitivement le problème du support contiguë de la RAM et en cela, je rejoins notre ami maï ;-)
Sinon, entièrement d'accord avec ta remarque: Ils ne se cassent pas la nénette MikroC...
paulfjujo a écrit: cela pourrait se comprendre pour les 16F avec peu de RAM ... mais avec les 18FxxJxx ?
ils s'endorment sur leurs lauriers ( en train de faner !)
Cela n'est pas un problème de taille de RAM, mais d'organisation segmentée en bank de 256 octets de cette RAM de ces PICs ;-)
Maintenant, lire:
- The PIC 18F452 Memory and Addressing
- PIC16 Specifics
- Linear Data Memory
Une bonne routine ASM avec gestion des bank résoudrait définitivement le problème du support contiguë de la RAM et en cela, je rejoins notre ami maï ;-)
Sinon, entièrement d'accord avec ta remarque: Ils ne se cassent pas la nénette MikroC...
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
problemo avec UART Write text de taille > 256 octest
- paulfjujo

Maître- Messages : 3261
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Bonsoir HULK28,
Le mode debugger (software) de mikroC ne me permet pas de faire du pas à pas..
Hormis si ça n'interfere pas avec les peripheriques
et je n'ai pas d'outils pour ...genre debugger in circuit ..
et justement mon seul outil est l'UART .
j'utilise donc cette version .. qui pour l'instant me permet d'avancer ..
avec un MaxCar < à la taille maxi de la table contenant le string à envoyer
au cas ou il manquerait un Zero terminateur de string..=
d'urgence sans planter le programme
par ecrasement de variable.
et visu du probleme sur le terminal
Claudius:
tout à fait d'accord sur ce point,
c'est d'ailleurs dans ce sens que j'ai repondu à mikroE forum
HULK28 a écrit :Tu as essayé de faire du pas à pas pour voir quand ça plante et où?
Le mode debugger (software) de mikroC ne me permet pas de faire du pas à pas..
Hormis si ça n'interfere pas avec les peripheriques
et je n'ai pas d'outils pour ...genre debugger in circuit ..
et justement mon seul outil est l'UART .
j'utilise donc cette version .. qui pour l'instant me permet d'avancer ..
avec un MaxCar < à la taille maxi de la table contenant le string à envoyer
au cas ou il manquerait un Zero terminateur de string..=
d'urgence sans planter le programmepar ecrasement de variable.
et visu du probleme sur le terminal
Code : Tout sélectionner
void UART1_Write_String(unsigned char * St,int MaxCars)
{
int i;
unsigned char c0;
i=0;
while(1)
{
c0= *(St+i);
if(c0==0) break;
UART1_Write(c0);
i++;
if (i>MaxCars) break;
}
}
Claudius:
Cela n'est pas un problème de taille de RAM, mais d'organisation segmentée en bank de 256 octets de la RAM de ces PICs
tout à fait d'accord sur ce point,
c'est d'ailleurs dans ce sens que j'ai repondu à mikroE forum
problemo avec UART Write text de taille > 256 octest
Ce n'est pas tant qu'ils ne se cassent pas la nénette, c'est qu'il vaut mieux prendre un ticket pour avoir accès à des développeurs de niveaux supérieurs.
Le forum de MikroC, comme chez d'autres fournisseurs de compilo
, permet tout juste de dépanner les newbies.
Pour avoir des réponses plus pointues il ne faut pas hésiter à poster un ticket.
Le forum de MikroC, comme chez d'autres fournisseurs de compilo
Pour avoir des réponses plus pointues il ne faut pas hésiter à poster un ticket.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités



