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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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 confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 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
    Membre éclairé
    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
    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 confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 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 éclairé Avatar de femtosa
    Inscrit en
    Juin 2002
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 253
    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
    Membre éclairé
    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
    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
    Membre éclairé
    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
    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

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