PIC18 et langage C : j'ai un pb de débutant... - Page 3

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From French to

Threaded View
Re: PIC18 et langage C : j'ai un pb de débutant...
Le Sun, 18 Apr 2010 10:40:39 +0200, markus a écrit :

Quoted text here. Click to load it

avec moi cela fait 2

il y en a d'autres ?

Re: PIC18 et langage C : j'ai un pb de débutant ...
moi-meme a tapoté du bout de ses petites papattes :
Quoted text here. Click to load it

Moi j'ai déjà dit que je détestais la segmentation, je rajouterai juste
que je déteste les bus multiplexés. Après c'est chacun sa vie.

--
LeLapin



Re: PIC18 et langage C : j'ai un pb de débutant ...
markus a tapoté du bout de ses petites papattes :
Quoted text here. Click to load it

Maurette a du mal à s'assoir.

--
LeLapin



Re: PIC18 et langage C : j'ai un pb de débutan t...
Le 19/04/2010 02:12, LeLapin a écrit :
Quoted text here. Click to load it

:-)))

Re: PIC18 et langage C : j'ai un pb de débutan t...
vic a écrit :
Quoted text here. Click to load it
Je confirme !
Je suis en train tenter de débugger un p'tit prog sur atmega328 sans
outils adéquat (pas de programmateur avec jtag)... et c'est pas simple
(pour moi, évidemment)

Franssoa

Re: PIC18 et langage C : j'ai un pb de débutant...
Waow, nickel, merci à tous de vos réactions
Oui c'est sûr je dois me documenter un peu plus sur ce langage, mais je
ne trouve pas beaucoup d'infos (en français) sur le C pour PIC

j'ai une nouvelle question !
(...qui n'a pas grand chose a voir avec la première, alors je l'imbrique
dans ce post pour ne pas surcharger le forum)

J'ai mon prog principal qui est dans le fichier "main.c"
et depuis un fichier "MesRoutinesClavier.c" je voudrais avoir accès a
une variable déclarée dans main.c
On fait comment ?

Laurent


Re: PIC18 et langage C : j'ai un pb de débutant...
et toujours dans le registre 'chuicunepovtruf' :

comment faire en sorte qu'une fonction renvoie plusieurs valeurs ?

Ben oui avec "BYTE mafonction(void)" alors ma fonction retourne un octet,
mais comment je fais si je veut en retourner 3 d'un coup ?


Re: PIC18 et langage C : j'ai un pb de débutant...
Quoted text here. Click to load it

Il faut passer l'adresse des variables a l'appel de fonction (avec des
pointeurs), la fonction écrit dedans et voila.

Re: PIC18 et langage C : j'ai un pb de débutant...
On Apr 15, 10:54 pm, Laurent CLAUDE

Quoted text here. Click to load it

En C on peut dE9%finir des structures de donnE9%es hE9%tE9%rogE8%nes.

/* typage des E9%lE9%ments de la structure */

typedef struct {
unsigned char heure, minute, seconde, jour, mois;
unsigned int annee;
} Struc_Example;

/* pour initialiser les valeurs depuis la fonction */

void GetData( Struc_Example *ptr )
{
  ptr->heure 3D% 3;
  ptr->minute3D% 14;
  ptr->seconde 3D% 15;
 /* etc ... */
}

/* appel de la fonction */

Struc_Example StrucTime; /* declaration */
  GetData( &StrucTime ); /* appel */
  printf( " %u \r\n", StrucExample.anee ); /* affiche */

/* On peut meme implE9%menter une fonction acceptant */
/* un pointeur sur diffE9%rents types de donnE9%es ... */
/* en prE9%voyant un element de la structure dE9%finissant son type */

void GetData( void *ptr );


Re: PIC18 et langage C : j'ai un pb de débutant...
On Apr 15, 10:54 pm, Laurent CLAUDE

Quoted text here. Click to load it

En C on peut dE9%finir des structures de donnE9%es hE9%tE9%rogE8%nes.

/* typage des E9%lE9%ments de la structure */

typedef struct {
unsigned char heure, minute, seconde, jour, mois;
unsigned int annee;
} Struc_Example;

/* pour initialiser les valeurs depuis la fonction */

void GetData( Struc_Example *ptr )
{
  ptr->heure 3D% 3;
  ptr->minute3D% 14;
  ptr->seconde 3D% 15;
 /* etc ... */
}

/* appel de la fonction */

Struc_Example StrucTime; /* declaration */
  GetData( &StrucTime ); /* appel */
  printf( " %u \r\n", StrucTime.annee ); /* affiche */

/* On peut meme implE9%menter une fonction acceptant */
/* un pointeur sur diffE9%rents types de donnE9%es ... */
/* en prE9%voyant un element de la structure dE9%finissant son type */

void GetData( void *ptr );

Re: PIC18 et langage C : j'ai un pb de débutant...
Le Thu, 15 Apr 2010 23:01:26 +0200, Laurent CLAUDE a écrit :

Quoted text here. Click to load it

AMHA pour les bases comme pour du C classique en enlevant tout ce qui est
en calcul flottant.

Pour les accès bits par contre cela doit dépendre du compilateur.
Pour ton traitement particulier il doit y avoir moyen d'y mettre de
l'assembleur pour optimiser cette partie.

compares : if(!(CLAV & col)) return col | row;
avec : btfsc var,bit
    goto xx

pas photo au niveau code généré.

Re: PIC18 et langage C : j'ai un pb de débutant...
Quoted text here. Click to load it

Hum ah bon ? Comment tu sais ce que va générer le compilateur dans ce cas?

Et a priori il n'a pas besoin d'optimiser pour le moment, s'il a des
problèmes de performance, ce qu'il ne dit pas, ce n'est surement pas là.
"Premature optimization is the root of all evil" ;-)

v.

Re: PIC18 et langage C : Merci Beaucoup !!
Le 16/04/2010 13:40, vic a écrit :

Quoted text here. Click to load it

En effet, les manques de performances se situent (encore) entre le siège
et le clavier ;-)

Je vous remercient TOUS beaucoup d'avoir participé a ce sujet, j'ai
appris beaucoup grave a votre aide, aujourd'hui j'en suis arrivé a
résoudre mes premiers exercices en C, je suis très content car ça
faisait longtemps que je reculais le moment de faire ce pas...

Mais ne vous inquiétez pas, je vais revenir rapidement avec de nouvelles
questions basiques !!

Laurent

Re: PIC18 et langage C : j'ai un pb de débutant...
Le Fri, 16 Apr 2010 13:40:49 +0200, vic a écrit :

Quoted text here. Click to load it

tu ne le sais pas tant que tu ne l'as pas fait compiler (merci  M La
Palice)

IL y a sans doute une option où le code assembleur généré est inclus dans
le listing. De mon temps (...) le compilateur transformait le C en
assembleur puis assemblait le résultat.
Cette manière permet d'affiner le code dans les sections critiques.

Le plus efficace est toujours de passer ces sections en assembleur.

Maintenant même les PICS deviennent puissants cela aide.

Re: PIC18 et langage C : j'ai un pb de débutant...

Quoted text here. Click to load it
===============
Vois  dans ton livret d'instruction les types  de variable (static, extern,
auto ...) .
Pour  un compilateur "c" classique  il suffit de les déclarer avant la
fonction "main" , elle sera utilisable  universellement  dans le main et les
fichiers < include>
Quoted text here. Click to load it



Re: PIC18 et langage C : j'ai un pb de débutant...

"Laurent CLAUDE"
Quoted text here. Click to load it
============
Compilateur proche "C" classique :

Fonction RTC (par exemple lecture chip horloge I2C  pcf 8583 )

void RtcGetClock (int& hr, int& min, int& sec) {
   hr = xx... (appel de la fonction lisant le chip )
   min = xx...
   sec = xx...
}

void main(){
..../....
RtcGetClock (hh,mn,ss);
printf( "\n\r%2X:%2X:%2X",hh,mn,ss);
 /*(cette fonction a simplement appelé dans hh,mn,ss la valeur pointée par
&hr &min &sec */
.../...
}

Quoted text here. Click to load it



Re: PIC18 et langage C : j'ai un pb de débutant...
On Apr 16, 9:57 am, "maiorE9%"

Quoted text here. Click to load it

En gE9%nE9%ral, en C le passage par adresses se dE9%clare ainsi :

 void RtcGetClock( int *hr, int *min, int *sec )

Et s'appelle ainsi :

 int hr, min, sec;
 RtcGetClock( &hr, &min, &sec );

Le prE9%fixe & signifie AB% adresse de la variable BB%
(ce qui permet E0% la fonction d'en modifier la valeur)
et E0% l'intE9%rieur de la fonction le prE9%fixe *
permet d'accE9%der E0% la valeur de la variable.

Re: PIC18 et langage C : j'ai un pb de débutant...
Quoted text here. Click to load it


Passage par rE9%fE9%rence. C'est du C++.

C'est quoi comme compilateur ?

--
-Stan


Re: PIC18 et langage C : j'ai un pb de débutant...

snipped-for-privacy@q15g2000yqj.googlegroups.com...
Quoted text here. Click to load it


Passage par référence. C'est du C++.

C'est quoi comme compilateur ?
==============================
  "Custom Computer Service"
Pas tellement orienté objet car il n'y a pas de notion de classe mais
simplement une utilisation des  pointeurs.





Re: PIC18 et langage C : j'ai un pb de débutant...
Quoted text here. Click to load it

Sans parler des aspects POO, il y a pas de choses
trE8%s utiles en C++, qui ont d'ailleurs E9%tE9% introduites
dans C99.

Mais je ne crois pas que les rE9%fE9%rences soient supportE9%es en C99.

Je suis surpris qu'ils aient introduit les
rE9%fE9%rences dans CCS.
OF9% trouve t-on la liste complE8%te des features de ce compilo,
je n' ai pas trouvE9% sur leur site.

--
-Stan

Site Timeline