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
MikroC vous aide à perdre votre temps, souriez
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
encore une boulette de MikroC !
ou comment perdre plus de 2 plombes sur un probleme INEXISTANT ...
morceau de code posant probleme :
message windows :
je cherche , tourne en rond , SANS TROUVER quoi que ce soit ...
DIVISER POUR MIEUX REGNER !
je decoupe mon code en petit morceaux ( mise en commentaire de certaines parties ) jusqu'à trouver une compilation sans erreurs ..
et là je tombe sur la fonction ci -dessus ????
par harsard je modifie le nom de variable Source en variable source ..
BINGO !
De quoi etre dégouté de ce MikroC ! apres avoir laché 240 boules !
moi qui aimait tant C18 gratuit ! (bon j'aurais pas pu programmer mon 12F avec C18, d'accord)
Je vais fini par retourner sur le monstrueux MPLAB X
ou MPLAB XPRESS ..
le projet mikroc en cours concerné par ce probleme ( Generateur DDS minimaliste avec sortie signal ana sur RA2 ... pas encore finalisé )
ou comment perdre plus de 2 plombes sur un probleme INEXISTANT ...
morceau de code posant probleme :
Code : Tout sélectionner
// version avec probleme : because majuscule sur Source
void strConstRamCpy(unsigned char *dest, const code char *Source)
{
while (*Source) *(dest++) = *(Source++) ;
*(dest)=0;
}
message windows :
189 300 Syntax Error: ')' expected, but '"Mini_DDS_12F1840"' found Mini_DDS_12F1840_180415.c
192 402 ; expected, but '=' found Mini_DDS_12F1840_180415.c
192 371 Specifier needed Mini_DDS_12F1840_180415.c
192 396 Invalid declarator expected'(' or identifier Mini_DDS_12F1840_180415.c
193 371 Specifier needed Mini_DDS_12F1840_180415.c
193 396 Invalid declarator expected'(' or identifier Mini_DDS_12F1840_180415.c
196 393 '' Identifier redefined Mini_DDS_12F1840_180415.c
196 300 Syntax Error: '(' expected, but '{' found Mini_DDS_12F1840_180415.c
0 102 Finished (with errors): 15 avr. 2018, 18:07:38 Mini_DDS_12F1840.mcppi
je cherche , tourne en rond , SANS TROUVER quoi que ce soit ...
DIVISER POUR MIEUX REGNER !
je decoupe mon code en petit morceaux ( mise en commentaire de certaines parties ) jusqu'à trouver une compilation sans erreurs ..
et là je tombe sur la fonction ci -dessus ????
par harsard je modifie le nom de variable Source en variable source ..
Code : Tout sélectionner
// OK avec la version ci-dessous et source sans majuscule au début !
/*
void strConstRamCpy(unsigned char *dest, const code char *source)
{
while (*source) *(dest++) = *(source++) ;
*dest = 0 ; // terminateur
}
BINGO !
Code : Tout sélectionner
0 1144 Used RAM (bytes): 168 (70%) Free RAM (bytes): 72 (30%) Used RAM (bytes): 168 (70%) Free RAM (bytes): 72 (30%)
0 1144 Used ROM (program words): 4058 (99%) Free ROM (program words): 38 (1%) Used ROM (program words): 4058 (99%) Free ROM (program words): 38 (1%)
0 125 Project Linked Successfully Mini_DDS_12F1840.mcppi
0 128 Linked in 47 ms
0 129 Project 'Mini_DDS_12F1840.mcppi' completed: 281 ms
0 103 Finished successfully: 15 avr. 2018, 19:43:42 Mini_DDS_12F1840.mcppi
De quoi etre dégouté de ce MikroC ! apres avoir laché 240 boules !
moi qui aimait tant C18 gratuit ! (bon j'aurais pas pu programmer mon 12F avec C18, d'accord)
Je vais fini par retourner sur le monstrueux MPLAB X
ou MPLAB XPRESS ..
le projet mikroc en cours concerné par ce probleme ( Generateur DDS minimaliste avec sortie signal ana sur RA2 ... pas encore finalisé )
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
MikroC vous aide à perdre votre temps, souriez
WOUAH truc de fou juste pour une majuscule tu a eu une erreur. En effet il y a de quoi être dégouté. Nous ne sommes même pas maitre d’écrire nos propre procédure
@++
@++
MikroC vous aide à perdre votre temps, souriez
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
la reponse sur mikroelektronika
[i ]
You already have an define in your code:
#define Source "Mini_DDS_12F1840"
That's the mistake.
Peter
[/i]
MAIS ..
------------------- ma reponse ---------------------------------
hello,
PARBLEU, mais c'est bien sur !
Thank's for your help..
Normally, global variable are separate from local variable ..
if i add in my globale variable :
unsigned char *source;
and use (same variable name!)
i get NO errors in compile ..
does it means that #define = reserved name for only one variable into the program ?
--------------------------------------------------------------------
pourtant le distingo entre variable globale et variable locale est bien établi..
le #define serait donc particulier.
Attendons une reponse de MikroE sur ce point ...
on en apprend ou on s'adapte tous les jours ...
j'ai meme vu sur le site MicroChip forum, cette forme d'ecriture
SSPBUFF;
Quoi t-est-ce-que ?
sous entendu que le compilo ferait un
dummy=SSPBUFF ;
disgression:
si on ne garde pas une certaine rigueur d'ecriture de programme, et qu'on se dit que le compilo corrigera
ça craint un maximum pour les futures voitures sans conducteur !
Ne pas oublieraussi qu'un compilo , c'est d'abord un programme !
De la à écrire un code en SMS , y a pas loin.
[i ]
You already have an define in your code:
#define Source "Mini_DDS_12F1840"
That's the mistake.
Peter
[/i]
MAIS ..
------------------- ma reponse ---------------------------------
hello,
PARBLEU, mais c'est bien sur !
Thank's for your help..
Normally, global variable are separate from local variable ..
if i add in my globale variable :
unsigned char *source;
and use (same variable name!)
Code : Tout sélectionner
void strConstRamCpy(unsigned char *dest, const code char *source)
{
while (*source) *(dest++) = *(source++) ;
*dest = 0 ; // terminateur
}
i get NO errors in compile ..
does it means that #define = reserved name for only one variable into the program ?
--------------------------------------------------------------------
pourtant le distingo entre variable globale et variable locale est bien établi..
le #define serait donc particulier.
Attendons une reponse de MikroE sur ce point ...
on en apprend ou on s'adapte tous les jours ...
j'ai meme vu sur le site MicroChip forum, cette forme d'ecriture
SSPBUFF;
Quoi t-est-ce-que ?
sous entendu que le compilo ferait un
dummy=SSPBUFF ;
disgression:
si on ne garde pas une certaine rigueur d'ecriture de programme, et qu'on se dit que le compilo corrigera
ça craint un maximum pour les futures voitures sans conducteur !
Ne pas oublieraussi qu'un compilo , c'est d'abord un programme !
De la à écrire un code en SMS , y a pas loin.
MikroC vous aide à perdre votre temps, souriez
Bonjour,
J'aurais dû y penser hier en voyant ton post ...
Tu peux avoir des variables globales et locales de même nom. La variable locale sera prioritairement utilisée tant qu'elle reste en vie.
Les defines et macros sont traitées par le préprocesseur C.
Pour le define, ce n'est que find et replace tout simple effectivement.
Pour les macros, c'est plus compliqué car il faut traiter les arguments, mais c'est toujours du traitement de texte.
Un deuxième source C ainsi étendu est généré par le préprocesseur, et l'étape de compilation peut alors commencer.
Le préprocesseur détecte peu d'erreur, il indiquera par exemple qu'il manque un argument lors de l'utilisation d'une macro, ou une tentative de redefine sans utiliser #undef. Dans ton cas il a rien vu car sa syntaxe était respectée. C'est le compilateur qui a crié.
J'aurais dû y penser hier en voyant ton post ...
Tu peux avoir des variables globales et locales de même nom. La variable locale sera prioritairement utilisée tant qu'elle reste en vie.
Les defines et macros sont traitées par le préprocesseur C.
Pour le define, ce n'est que find et replace tout simple effectivement.
Pour les macros, c'est plus compliqué car il faut traiter les arguments, mais c'est toujours du traitement de texte.
Un deuxième source C ainsi étendu est généré par le préprocesseur, et l'étape de compilation peut alors commencer.
Le préprocesseur détecte peu d'erreur, il indiquera par exemple qu'il manque un argument lors de l'utilisation d'une macro, ou une tentative de redefine sans utiliser #undef. Dans ton cas il a rien vu car sa syntaxe était respectée. C'est le compilateur qui a crié.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 47 invités