Routine MT8889 generateur/decodeur DTMF en C - Ressources > Composants spécifiques - Articles et téléchargements
Routine MT8889 generateur/decodeur DTMF en C - Ressources > Composants spécifiques - Articles et téléchargements
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
proposer
 
   
             
 
Catégories
 
   
             
 
Recherche
 
   
 
Articles-et-telechargements > Ressources > Composants spécifiques > Routine MT8889 generateur/decodeur DTMF en C

Routine MT8889 generateur/decodeur DTMF en C

Publié par david le 19/12/2005 (4966 lectures)

Je vais expliquer l'utilisation du C avec plusieurs routines que j'ai plus ou moins fait mais toutes adaptées à mon cas mais elles sont assez généralistes.

On peut faire avec cette routine les choses suivantes :
  • émettre un code DTMF
  • recevoir un code DTMF
  • détecter un type de sonnerie
  • initialiser le périphérique
  • configurer suivant ce que l'on veut faire


Tout d'abord, il faut initialiser le périphérique DTMF avec la routine suivante:

ResetDtmf();

immédiatement suivi d'une configuration

ConfigDtmf();

ou

ConfigCP();

S'il n'y a pas de configuration, le périphérique génère une fréquence continu à sa sortie.


Configuration:

ConfigCP() sert uniquement à configurer en tant que détection de sonnerie
ConfigDtmf() sert uniquement à configurer en tant que générateur/décodeur DTMF
Ne pas oublier de changer de mode pour bien détecter ce que l'on veut.


Détection d'un type de sonnerie:

Data=DetectionTypeSonnerie();

Cette variable va permettre de savoir quel type de sonnerie est détecté. Elle doit être du type 'unsigned char Data'
Il est aussi intégré une routine qui permet d'envoyer en clair sur le port SCI le type de sonnerie détecté, ce message peut être mis en commentaire sans gêner le programme.


Réception d'un code DTMF:

Data=ReceptionDataDtmf();

Cette variable va permettre de savoir quel code DTMF est détecté. Elle doit être du type 'unsigned char Data'
Il est aussi intégré une routine qui permet d'envoyer en clair sur le port SCI le code DTMF détecté, ce message peut être mis en commentaire sans gêner le programme.
Tous les codes DTMF de 0 à D peuvent être reçus, * et # compris.


Emission d'un code DTMF:

EmissionDataDtmf(9);

Cette routine va permettre d'envoyer un code DTMF. Il est aussi intégré une routine qui permet d'envoyer en clair sur le port SCI le code DTMF envoyé, ce message peut être mis en commentaire sans gêner le programme. Le "0" sera transforme automatiquement en valeur 0x0A pour être conforme au datasheet
Tous les codes DTMF de 0 à D peuvent être envoyés, * et # compris.

Composition d'un numero:

#pragma MESSAGE DISABLE C1825
  EmissionNumeroDtmf(0180808080)

#pragma MESSAGE DEFAULT C1825

Le pragma est obligatoire sinon vous avez une erreur de compilation, ceci permet de l'eliminer


Toutes ces routines fonctionnent mais ne sont sûrement pas optimisés au niveau temps CPU, n'oublie pas de les faire partager dans le cas de modif.


Fichiers liés à cet article
Nom de fichier Publié le Hits
Télécharger ce fichier Code source
en C
04/09/2006 639

Article précédent Article suivant
Article précédent Interfacer un 68HC908 avec une RTC DS1302
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat
Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Routine MT8889 generateur/decodeur DTMF en C - Ressources > Composants spécifiques - Articles et téléchargements