IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[AVR Atmel] AT90USB1287 prog micro-controleur


Sujet :

C

  1. #1
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut [AVR Atmel] AT90USB1287 prog micro-controleur
    Bonjour à tous,
    Je n'ai pas trouvé de section pour la programmation de micro-controleur.
    Etant donné que mon codage s'effectue en C, j'ai pensé qu' à défaut c'etait la section la plus appropriée.

    Je doit implémenter un schéduler, jusque la ca peu encore aller, le souci c'est que celui-ci devra se declencher avec des interruptions, contrairement à une prog basique ou c 'est le developpeur qui défini ces conditions d'execution.

    Voila comment se represente mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    void Main(void)
    {
        initialisation du timer
        démarrage du scheduler
     
        sei  // activation des interruptions
        for(;;) {}  
    }
     
     
     
    scheduler
    {
       init_tache1
       init_tache2
       ......
    }
    Ce que je souhaiterai savoir, c'est comment demarrer mes taches à partir d'une interruption.

    Voila j'espere avoir été claire

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ben dans la fonction qui est appelé quand tu reçoit l'interruption, tu appelles la fonction.

    Je pense ne pas avoir saisi le problème...

  3. #3
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Oui, ton cas s'appliquerai pour des appels à des "fonctions", mais pas à un ordonnanceur de taches.
    Parce que en faites j'ai une 1ere interruption qui me permet de définir une base de temps, à chaque fois que celle-ci est executée elle incremente un "tick", c'est justement ce "tick" qui va me permettre de lancer les taches de mon ordonnanceur.

    ps : désole pour la clarté de mon post mais j'avoue moi meme ne pas avoir tres bien compris le fonctionnement d'un scheduler.

    En tout cas MERCI, c'est bien gentil à toi skyrunner de m'avoir répondu, je suis tout à fait conscient que le dev de micro-controleur n'est pas tres répandu

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par moulefrite
    En tout cas MERCI, c'est bien gentil à toi skyrunner de m'avoir répondu, je suis tout à fait conscient que le dev de micro-controleur n'est pas tres répandu
    J'ai déjà fait de la dev sous micro controleur, mais c'était des PIC, je ne sais pas si ça change entre les deux.

  5. #5
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Je ne comprends pas ton problème ...

    Dans ta fonction d'interruption tu lance les tâches et puis voilà ... ? Appeler des fonctions se serai bien trop dangeureux pour une fonction d'interruption ... Trop long ... !

    Quelle genre de tâche doit lancer ton scheduler ... ?

  6. #6
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    D'après moi il ne doit y avoir une enorme différence, si ce n'est le nom des registres ainsi que des vecteurs d'interruptions.
    Après ca reste du C, si le dev ne se fait pas en assembleur biensur .

    En tout cas je débute et je trouve ca vachement interessant, un peu difficile à prendre en main, mais ca change drolement du dev traditionnel orienté applicatif (c,c++,c#,etc...)

  7. #7
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Salut femtosa,
    Alors le but de ce dev est de créer un automate autonome permettant de gerer un controle d'accès indépendants, je m'explique, il ne dispose d'aucune connexion à un PC, sauf pour récuperer le listing des personnes autorisées.

    l'appli devra faire :
    _ Le polling des lecteur de carte (vérifier qu'ils sont toujours present et fonctionnel).
    _ Scruter les lecteurs pour voir si aucune carte n'a été inseré.
    _ Vérifier que la porte est bien vérouillé.
    _ si une carte est inseré et que celle-ci est valide, ouverture de la porte, dans ce cas la scrutation devra etre desactivé jusqu'a la fermeture de la porte , etc...

    toutes ces taches devront etre implementé dans mon scheduler.
    Le souci c'est que je ne sais pas comment les lancer, on m'a conseillé d'utiliser un "tick" qui sera cadencé sur la frenquence d'horloge du CPU (clock) et en fonction de celui-ci exécuté tel ou tel tache.

    Voila j'espere avoir été assez clair


    edit : "L'expérience est le seul livre que les imbéciles comprennent ... !"
    tres interessantes cette tite phrase

  8. #8
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Ton microcontrôleur ne fait que ça ... ? Ou ce n'est qu'une partie de ton applic ... ?

    Car s'il ne fait que ça, pourquoi ne pas faire une simple boucle sans fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(1) { /*ton code*/ }
    qui fait tout ce que tu a mentionné dans ton précédent message ... ?

    Je ne vois pas l'utilité des interruptions qui apparement compliquent plus la chose ... Si tu désire effectuer toute ces taches qu'une fois par seconde par exemple, tu fais une attente dans ta boucle infini ...

    De toute façon, ton programme comporte bien une boucle infini non ... ? Sans cela comment il marche ?

  9. #9
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Pour le moment il n'y a que ca de défini, mais bon ce projet risque d'être sujet à évolution, c'est pourquoi on m'a demandé de tenir compte des intérruptions.

    Pour ce qui est de la boucle infini, oui, d'apres la datasheet, il semble obligatoire de disposer d'une boucle infini pour faire "peter" les interruptions.
    En ce qui concerne les temporisations je ne me suis pas encore attardé sur ce point la.

  10. #10
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    La prise en compte des interruptions n'as rien à voir avec l'évolution de ton projet d'après moi ... !

    Tu as des opérations spécifiques à réaliser. Tu structures bien ton prog et sans les interruptions tu peux le faire évoluer comme tu le veux !

    Example :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Tant que (1)
    {
      Polling des lecteurs de carte;
      Si la porte est fermer
        Scrutation des lecteurs;
        Verification de l'etat  de la porte;
      fin si;
      Si une carte est enfoncée
        Login;
      fin si
    }
    Chacune des opérations étant une fonction ... De ce fait, si tu veux mettre à jour ton applic pour ajouter des nouvelles fonctionnalités, tu ajoutes simplement une fonction ... Et pas d'interruptions là dedans.

    Citation Envoyé par moulefrite
    Pour ce qui est de la boucle infini, oui, d'apres la datasheet, il semble obligatoire de disposer d'une boucle infini pour faire "peter" les interruptions
    Ca veut dire quoi "peter" les interruptions ... ? C'est obligé d'avoir une boucle infini si tu ne dispose pas d'OS ... Sans cela, lorsque ton programme se termine, ton microcontrôleur va faire quoi ? Battre la mesure ? Faut toujours lui "donner à manger"

    Citation Envoyé par moulefrite
    En ce qui concerne les temporisations je ne me suis pas encore attardé sur ce point la
    Si tu n'as pas d'OS, une simple boucle dans laquelle tu fais "rien" suffit ... D'après la fréquence de ton horloge tu sais combien de fois "rien" faire. Et ce rien faire se traduit certainement par l'instruction 'nope()' ou du style (voir les spécification de ton microcontrôleur) ou même un simple 'sleep()' si tu as de la change !

  11. #11
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    faire "peter" les interruptions signifient les declencher.
    j'en ai discuté avec mon collegue et lui me suggère de rester sur un schéduler avec des fonctions de "callback" (c'est quoi ca ???).
    En tout cas eux restent figés sur le faite d'utiliser un timer pour définir au moin le temps écoulé entre chaque opérations.

  12. #12
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Bon alors je vois peut-être ce qu'ils veulent comme solution ...

    Voilà ce à quoi je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    --Ta fonction d'interruption
    Si on a X ticks d'horloge
      Specifier le polling des lecteurs
    fin si;
    Si on a Y ticks d'horloge
      Specifier la scrutation des lecteurs
    fin si;
    Si on a Z ticks d'horloge
      Specifier le login
    fin si;
     
    -- Ton programme principale
    Tant que (1)
    {
    Si on doit poller les lecteurs
    Polling des lecteurs de carte;
    fin si;
    Si on doit scruter les lecteurs
        Si la porte est fermer
          Scrutation des lecteurs;
          Verification de l'etat  de la porte;
        fin si;
    fin si;
    Si on doit vérifier un login
    Si une carte est enfoncée
          Login;
        fin si;
    fin si;
    }
    Peut être (certainement même) que les nombres de ticks d'horloge X, Y et Z seront les mêmes ...

    Je pense que ton collègue suggère de faire en fait les 4 opérations citées une fois tous les X ticks d'horloge.

    Je vois donc 2 solutions :

    • Une boucle sans fin avec appel des 4 fonctions différentes, puis attente active de X ticks d'horloge
    • Une boucle sans fin avec appel des 4 fonctions différentes uniquement lorsqu'une variable booléenne nous y autorise. Cette variable booléenne étant mise à 'vrai' dans la fonction d'interruption appelée tous les X ticks d'horloge et mise à 'faux' dans la boucle sans fin
    La deuxième solution est apparemment préféré de ton collègue. L'algorithe est donc celui que je viens de te proposer, mais simplifie le pour n'avoir qu'une valeur de ticks d'horloge ... Ce choix peut se justifié, je ne connais pas assez tu projet pour porter un jugement !

  13. #13
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par moulefrite
    Pour ce qui est de la boucle infini, oui, d'apres la datasheet, il semble obligatoire de disposer d'une boucle infini pour faire "peter" les interruptions.
    Citation Envoyé par moulefrite
    faire "peter" les interruptions signifient les declencher
    La boucle infini n'est pas indispensable au bon fonctionnement des interruptions, simplement si tu n'en a pas, ton programme va se terminer bien certainement avant qu'un interruption ne soit levée ... La boucle infini s'impose donc d'elle-même ...

  14. #14
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Oui en gros tu a résumé en 10min ce qui m'a pris plusieurs heures bravo .
    ca confirme donc bien ce que j'avais pensé.
    Mais au lieu de tous mettre dans la boucle infini on m'impose le scheduler, d'une part pour éviter les structures conditionnelles (if...else..endif).
    Pour se faire on m'a proposé de définir des #define dans mon scheduler (?).

    une alternative à l'utilsiation de plusieurs ticks est de travaillé sur les valeur "delta" (ex :valeur du tick apres execution tache 1 - valeur du tick avant execution tache 1 ).

  15. #15
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par moulefrite
    Mais au lieu de tous mettre dans la boucle infini on m'impose le scheduler, d'une part pour éviter les structures conditionnelles (if...else..endif)
    Qu'entends-tu par 'scheduler' ? Tu utilises un système d'exploitation sur ton microcontrôleur ? Dans ce cas, tu travailles je suppose avec des tâches --> multitâche !
    Ou alors c'est à toi de le faire le scheduler ?

    Citation Envoyé par moulefrite
    Pour se faire on m'a proposé de définir des #define dans mon scheduler (?)
    '#define' est une directive de pré-compilation (tu trouveras certainement plus d'info dans les cours de DVP), je ne vois pas en quoi ça a un rapport là-dedans ... Demandes des précisions ou fournit les-nous si tu les as déjà ...
    Citation Envoyé par moulefrite
    une alternative à l'utilsiation de plusieurs ticks est de travaillé sur les valeur "delta" (ex :valeur du tick apres execution tache 1 - valeur du tick avant execution tache 1 ).
    Avec ça tu va savoir combien de temps à duré l'execution de la tâche ... Je ne vois pas le rapport avec le temps d'attente avant l'execution de la prochaine !

  16. #16
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par femtosa
    Qu'entends-tu par 'scheduler' ? Tu utilises un système d'exploitation sur ton microcontrôleur ? Dans ce cas, tu travailles je suppose avec des tâches --> multitâche !
    Ou alors c'est à toi de le faire le scheduler ?
    Non il n'y a pas d 'OS dessus, je dois aussi le développer moi meme.

    Citation Envoyé par femtosa
    '#define' est une directive de pré-compilation (tu trouveras certainement plus d'info dans les cours de DVP), je ne vois pas en quoi ça a un rapport là-dedans ... Demandes des précisions ou fournit les-nous si tu les as déjà ...
    En faites on me demande ces directives dans le but de pouvoir implémenter différents micro controleur (PC y compris), ce qui permettrait la transportabilité du source.


    Citation Envoyé par femtosa
    Avec ça tu va savoir combien de temps à duré l'execution de la tâche ... Je ne vois pas le rapport avec le temps d'attente avant l'execution de la prochaine !
    oui je comprend ce que tu veu dire, c'est relativement identique à la difference que ta proposition sera plus simple à mettre en place.


    alors j'en ai parlé à mon collegue et il est daccord dans un premier temps, avec l'utilisation du while(1) {fonction},
    je comprend deja mieux le travail à réaliser.

    Donc si je comprend bien il n'est pas necéssaire d'utiliser plusieurs "timer" mais un seul avec une seule variable "tick".

    Pour l'avancement de mon projet j'ai réalisé l'interruption sur le vecteur de comparaison B "TIMER2_COMPB_vect", elle incremente bien mon "tick".

    Je viens aussi de tester dans mon main ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        for (;;) 
    	{
    		if (tick> 65536)
    			i++;
    	}
    ca semble etre opérationnel et recevable par mon patron.
    Donc affaire à suivre.

    En tous les cas un grand merci à toi femtosa pour ta précieuse aide, tu m'as permis d'avoir une vision extérieur qui m'a permis de clarifier mes doutes et mes idées. t'es un

  17. #17
    Membre actif Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    Points : 222
    Points
    222
    Par défaut
    Citation Envoyé par moulefrite
    Non il n'y a pas d 'OS dessus, je dois aussi le développer moi meme
    Je pense que le but est de développer un programme principale permettant d'appeler différents morceaux de code effectuant les opérations citées plus haut dans la discussion ... Ces morceaux de code étant de simple fonction et non des tâches au sens processus du terme ... Je n'aurais pas la prétention d'appeler ça un système d'exploitation ...
    Citation Envoyé par moulefrite
    En faites on me demande ces directives dans le but de pouvoir implémenter différents micro controleur (PC y compris), ce qui permettrait la transportabilité du source.
    Mouais ... Je vois, les '#define' te permettrons certainement de gérer plusieurs microprocesseur/microcontrôleur dans le cas d'instructions spécifiques à la plate-forme/matériel. Instructions que je te conseille d'éviter dans la mesure du possible !

    Citation Envoyé par moulefrite
    alors j'en ai parlé à mon collegue et il est daccord dans un premier temps, avec l'utilisation du while(1) {fonction},
    je comprend deja mieux le travail à réaliser.

    Donc si je comprend bien il n'est pas necéssaire d'utiliser plusieurs "timer" mais un seul avec une seule variable "tick".

    Pour l'avancement de mon projet j'ai réalisé l'interruption sur le vecteur de comparaison B "TIMER2_COMPB_vect", elle incremente bien mon "tick".

    Je viens aussi de tester dans mon main ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        for (;;) 
        {
            if (tick> 65536)
                i++;
        }
    ca semble etre opérationnel et recevable par mon patron.
    Donc affaire à suivre.
    Je vois pas d'autre solutions que le while(1) ... Mais ton collègue saura certainement t'expliquer ce qu'il veut !

    Tiens nous au courant si t'as des problèmes, les forums sont là pour ça

    Bon développement

  18. #18
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par femtosa
    Je pense que le but est de développer un programme principale permettant d'appeler différents morceaux de code effectuant les opérations citées plus haut dans la discussion ... Ces morceaux de code étant de simple fonction et non des tâches au sens processus du terme ... Je n'aurais pas la prétention d'appeler ça un système d'exploitation ...
    Moi non plus d'ailleurs lol, quand je disais ca je parlais du scheduler et non d'un OS

    En faites je répondais à la question sur le scheduler :
    Citation Envoyé par femtosa
    Ou alors c'est à toi de le faire le scheduler ?

    Citation Envoyé par femtosa
    Mouais ... Je vois, les '#define' te permettrons certainement de gérer plusieurs microprocesseur/microcontrôleur dans le cas d'instructions spécifiques à la plate-forme/matériel. Instructions que je te conseille d'éviter dans la mesure du possible !
    Bah c'est aussi ce qu'il m'ont dis mais bon pour l'instant pas trop le choix, ce sera sujet à discussion d'ici quelques temps.

    Citation Envoyé par femtosa
    Je vois pas d'autre solutions que le while(1) ... Mais ton collègue saura certainement t'expliquer ce qu'il veut !

    Tiens nous au courant si t'as des problèmes, les forums sont là pour ça

    Bon développement
    Merci en tout cas pour ton aide,

    ps : il serai interessant de créer une section micro controleur, ca permettrai d'aider les néophites commes moi.

Discussions similaires

  1. Acquisition des données sans micro-controleur
    Par ibtiag dans le forum Embarqué
    Réponses: 1
    Dernier message: 15/02/2015, 21h51
  2. test unitaire micro-controleur
    Par boubouboy dans le forum Débuter
    Réponses: 5
    Dernier message: 23/11/2011, 17h01
  3. Micro controleur AT90S1200
    Par Master C dans le forum Autres architectures
    Réponses: 4
    Dernier message: 11/06/2008, 17h08
  4. Réponses: 13
    Dernier message: 19/05/2008, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo