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 ---

Double tempo avec un seul timer ?

http://ww1.microchip.com/downloads/en/DeviceDoc/41412F.pdf

Forum général sur le langage C !

Modérateur : Jérémy

Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

Double tempo avec un seul timer ?

Messagepar Jérémy » mar. 8 août 2017 23:20

Bonsoir à tous,

Je cherche à piloter des servos moteurs avec ma télécommande. (voir ce post )
Comme je ne comprends pas le fichu mode de fonctionnement du mode "Wake up on radio", je voudrais me servir d'un timer pour passer en stand by mode a certain intervalle.

Étant limité par le nombre de timer j'ai tenter d’utiliser un seul timer pour faire deux tempo alternativement. Le but serait d'avoir 200ms endormi et 20ms reveillé ( ratio de 10%) .

J'ai eu comme idée de procédé comme ceci .

Je vous passe toute la config, pour garder seulement l'interruption :

Code : Tout sélectionner


  if 
( (TMR0IF_bit) && (TMR0IE_bit) ){       // débordement du timer 0
    TMR0IF_bit = 0;      // Je RAZ le flag

    STB = ~STB;         // j'inverse la broche du stand-By, je passe en standby à 1 , en mode réveillé à 0 .
    
    if 
(STB == 1){        // Si le mode standby est activé je pars pour 200ms 
        T0CON         = 0x84;   //Je configure mon timer0 pour 200 ms
        TMR0H         = 0x3C;
        TMR0L         = 0xB0;
     }
     else{
        T0CON         = 0x81;   // 20ms
        TMR0H         = 0x63;
        TMR0L         = 0xC0;
     }

  }



Pensez-vous que ce soit bien ? et quel serait les inconvénients si il y en avait ?
Pourrais-je effectué la même chose pour piloter un servo moteur ?
Tout en sachant que la précision du timer n'est pas critique !

Merci !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

cyril13110
Confirmé
Confirmé
Messages : 740
Enregistré en : avril 2016
Localisation : 13

Double tempo avec un seul timer ?

Messagepar cyril13110 » mer. 9 août 2017 12:41

salut jeremy,
en resumé tu veux envoyer un creneau de 20ms passer en stand by jusqu'au prochein appuie du BP?

Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

Double tempo avec un seul timer ?

Messagepar Jérémy » mer. 9 août 2017 13:17

en resumé tu veux envoyer un creneau de 20ms passer en stand by jusqu'au prochein appuie du BP?


Non non pas d'appui sur BP, tout sur débordement de timer .

Je souhaite que mon module Radio ce mette en veille pendant 200ms , puis ce réveil pendant 20ms , tout ça avec un seul timer !
Et j’espère pouvoir appliqué ce même principe pour commander mes servos. Du genre une sortie à 0 pendant 18ms puis à 1 pendant 1m à 2ms( suivant la valeur injectée dabns les registres). Peut être qu'avec un savant jeu de combinaison conditionnelles, on pourrait même envisager de piloter deux servos avec un seul timer .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Avatar de l’utilisateur
paulfjujo
Expert
Expert
Messages : 2597
Enregistré en : juillet 2015
Localisation : 01800
Contact :

Double tempo avec un seul timer ?

Messagepar paulfjujo » mer. 9 août 2017 18:58

bonsoir jeremy

ta solution me semble jouable .
genere donc un signal periodique de 220 ms avec etat bas de 20 ms
Aide toi, le ciel ou FantasPic t'aidera

Avatar de l’utilisateur
Temps-x
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

Double tempo avec un seul timer ?

Messagepar Temps-x » mer. 9 août 2017 21:15

Bonjour Jérémy, cyril13110, paulfjujo, et bonjour tous le monde,

J'ai déplacé le sujet en section ASM, pour lire la suite cliquer ici : viewtopic.php?p=6640#p6640

A+
Modifié en dernier par Temps-x le jeu. 10 août 2017 00:15, modifié 5 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Avatar de l’utilisateur
paulfjujo
Expert
Expert
Messages : 2597
Enregistré en : juillet 2015
Localisation : 01800
Contact :

Double tempo avec un seul timer ?

Messagepar paulfjujo » mer. 9 août 2017 22:06

bonsoir à tous

Le watchdog ... C'est un bon rappel
c'est son module radio qu'il veut mettre en sommeil ...

il y a aussi la reception sur l'UART ( mais pas sur un 16F84) qui peut reveiller un PIC en mode sleep ( testé OK sur un 16F1847 )
Aide toi, le ciel ou FantasPic t'aidera

Avatar de l’utilisateur
Temps-x
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

Double tempo avec un seul timer ?

Messagepar Temps-x » mer. 9 août 2017 22:14

Bonsoir paulfjujo

c'est son module radio qu'il veut mettre en sommeil ...


oops encore une, bon je vais pas pollué le post de Jérémy, exit je sors

A+
Modifié en dernier par Temps-x le mer. 9 août 2017 23:59, modifié 4 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

Double tempo avec un seul timer ?

Messagepar Jérémy » mer. 9 août 2017 22:27

Hello par ici,

Merci de vos réponses c'est effectivement le module radio que je souhaite endormir et non mon PIC .

Je ne suis pas encore au watchdog ! je ne suis pas encore assez moustachu pour ça ! humour!!

Mon idée fonctionne bien pour le module. reste a trouver un système pour les servos moteurs ! piloter deux servos avec 1 seul timer peut être intéressant.

Merci ! d'avoir regarder mon petit bout de code ! Car franchement je ne m'en sortais pas avec le mode prévue pour mon module radio !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

Double tempo avec un seul timer ?

Messagepar JMarc » mer. 9 août 2017 23:53

Bonjour tout le monde

Et pourquoi pas faire l'interruption sur la petite valeur ici 20 ms et faire un compteur d'interruptions pour la grande valeur vu que c'est un multiple :sifflotte:

Si 10 fois interruption alors 200 ms

Avatar de l’utilisateur
paulfjujo
Expert
Expert
Messages : 2597
Enregistré en : juillet 2015
Localisation : 01800
Contact :

Double tempo avec un seul timer ?

Messagepar paulfjujo » jeu. 10 août 2017 08:57

bonjour,


pour aller dans le sens de JMARC,

pouquoi pas 1ms, si un pas de commande de 1ms te suffit pour commander tes 2 servos
1er compteur pour le 1er servo
2em compteur pour le 2em servo
3em compteur (0 à 220) pour la mise en sommeil
Les 3 compteurs testés dans l' interruption.

tes servos se commandent bien par une pulse de largeur 1 à 2ms ? ( toutes les 20mS)
ou autre ?

auquel cas il faut un autre timer ! pour elaborer la largeur voulue du creneau
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 55 invités