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 ---
- 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 ---
Modérateur : mazertoc
Musique Rtttl avec NCO1
Bonjour tout le monde,
Je tiens à préciser qu'il existe d'autre Pic que le Pic18F27K42 qui font le NCO(Numerically Controlled Oscillator), donc ne vous arrêter pas à ce pic.
Comme promis je m'attaque à la création des sons Rtttl avec le Pic18F27K42 voici son datasheet ICI
J'ai donc utilisé comme je l'avais mentionné la norme NCO conseillé par notre confrère paulfjujo.
Pour faire simple, j'ai créé une fréquence de 1000 Hz, histoire de voir ce que ça donne, pour trouver la valeur à mettre dans les registres NCO1INCU, NCO1INCH, NCO1INCL, j'ai utilisé la formule conseillé par la datasheet de ce Pic18F27K42,
Voici la formule
J'ai pris comme horloge une Fréquence de 31250 Hz, qui est configurable dans le registre NCO1CLK
Après avoir appliqué la formule je trouve une valeur de H'FFFF' (65535) qui est à mettre dans les registres NCO1INCU, NCO1INCH, NCO1INCL.
Une fois fait, et le pic programmé je trouve au fréquencemètre 963 Hz, Je m’aperçois que la formule ne fonctionne pas !!
Je me retrouve avec une imprécision, il est donc impossible de ce fier à la formule pour créer des notes de musiques, qui demande beaucoup de précision.
Moi qui croyais avoir la possibilité de créer des mélodies avec cette méthode, c'est rappé, à moins que quelle qu'un connaisse le pourquoi de la chose
Code pour une fréquence théorique de 1000 Hz
Ci joins les fichier pour ceux qu'ils veulent l'essayer dans leur Pic18F27K42, avec cette fois-ci la source ASM complète : Prototype.zip
Pour vous montrer la précision des notes, voici un tableau avec la fréquence des notes de musique
Suite à l'intervention de paulfjujo, qui m'a démontré quand peut affiner la précision de la fréquence avec le registre OSCTUNE
Chose que j'ai faite, et là surprisse !! les fréquences était à peu près correct, j'ai donc voulu faire des essais avec plusieurs extrait de mélodie.
voici les titres
1) pour la partition que chabb à écrit (Furelise)
2) Léve-toi, Soldat
3) Hey Jude
4) Rondo Alla
5) Boléro de Ravel
6) Mission Impossible
7) Laurel And Hardy
8) Davy Croquette
9) Eurovision
10) Benny Hill
Ce qui donne ceci en vidéo
https://www.youtube.com/watch?v=x3dp2FG9Rtw
Je fourni pour ceux qui voudrais faire une modification ou un essai, le code ASM, et le code compilé de cette vidéo,
Comme ça, si vous possédez le Pic18F27K42 vous pourrez tester le programme, je vais faire un petit schéma.
Schéma
Je tiens à signaler que j'ai utilisé un vieux haut parleur d'une veille télévision à tube cathodique que j'ai cannibalisé, c'est un haut parleur de 4 ohms, mais vous pouvez prendre un haut parleur de 8 ohms, bon ce plan n'est pas très bon, mais il fonctionne, par la suite j'utiliserai un ampli de classe D, comme sur l'image ci-dessous
Voici le datasheet de l'ampli : PAM8403
je vous rappelle que la sortie du NCO1 se fait actuellement sur RC7 : fichiers code, et compiler de cette vidéo : Prototype2.zip
Il y a aucun calcul, le pic fait que lire la fréquence qui est déjà près calculé pour le NCO1, ainsi que la durée des notes.
Tout se trouve dans la partition qui est écrit en hexadécimal, idem pour le titre de la mélodie.
Pour l'instant la durée des notes est géré par une temporisation, ce qui ne rends pas le pic autonome... par la suite je compte me servir
d'un timer qui compteras par palier de 1ms.
Maintenant que tout fonctionne, je vais vous parlez du logiciel Rtttl, que vous pouvez télécharger ICI, le logiciel Rtttl sert à écouter les sons au format Rtttl, créer des sons Rtttl, modifier des son Rtttl, et générer un fichier pour la norme NCO1.
Je vous parlerai juste la façon de généré une mélodie pour NCO1 , pour ceux faire, il vous faut éditer la mélodie, il vous suffit ensuite de faire comme sur l'image ci-dessous.
Un code va être généré dans le presse papier, ce code et à mettre en zone mémoire programme de votre pic, ou eeprom, dans le cas du Pic18F27K42 vous pouvez à peu près mettre 40 morceaux de musiques de 2 minutes en mémoire programme(ce qui vous fait 80 minutes de musiques)
Pour ceux qui voudrais changer la fréquence d'horloge du registre NCO1CLK il vous faudra le faire dans le code ASM, et dans le logiciel Rtttl ou cela est prévu, comme sur l'image ci-dessous
Dans cette exemple, j'ai pris une Fréquence d'horloge NCO1 31250 Hz ( mode 4)
Si vous changer la fréquence d'horloge du registre NCO1CLK dans le code ASM, vous devez le faire aussi dans le logiciel Rtttl, sinon les notes seront erroné, les valeurs doivent être identique en code ASM et logiciel Rtttl
Maintenant je vais m'attaquer à le rendre autonome, sans que celui-ci soit bloqué avec les temps des notes, de plus je prévois un réglage avec bouton, pour affinement du registre OSCTUNE
Ben voilà c'est fait, avec une vidéo en prime
https://www.youtube.com/watch?v=0bgR6P6I6U4
Dans cette exemple, je peux régler osctune, ecrire en eeprom, faire clignter une led sans que cela affecte la mélodie, je vous laisse pour les plus intéressés le fichier code, ainsi que le fichier compiler de cette vidéo que vous pouvez télécharger ICI
Bon, j'attends des compositeurs......
A+
Je tiens à préciser qu'il existe d'autre Pic que le Pic18F27K42 qui font le NCO(Numerically Controlled Oscillator), donc ne vous arrêter pas à ce pic.
Comme promis je m'attaque à la création des sons Rtttl avec le Pic18F27K42 voici son datasheet ICI
J'ai donc utilisé comme je l'avais mentionné la norme NCO conseillé par notre confrère paulfjujo.
Pour faire simple, j'ai créé une fréquence de 1000 Hz, histoire de voir ce que ça donne, pour trouver la valeur à mettre dans les registres NCO1INCU, NCO1INCH, NCO1INCL, j'ai utilisé la formule conseillé par la datasheet de ce Pic18F27K42,
Voici la formule
J'ai pris comme horloge une Fréquence de 31250 Hz, qui est configurable dans le registre NCO1CLK
Après avoir appliqué la formule je trouve une valeur de H'FFFF' (65535) qui est à mettre dans les registres NCO1INCU, NCO1INCH, NCO1INCL.
Une fois fait, et le pic programmé je trouve au fréquencemètre 963 Hz, Je m’aperçois que la formule ne fonctionne pas !!
Je me retrouve avec une imprécision, il est donc impossible de ce fier à la formule pour créer des notes de musiques, qui demande beaucoup de précision.
Moi qui croyais avoir la possibilité de créer des mélodies avec cette méthode, c'est rappé, à moins que quelle qu'un connaisse le pourquoi de la chose
Code pour une fréquence théorique de 1000 Hz
Code : Tout sélectionner
BANKSEL PIR4 ; bank 57
bcf PIR4,NCO1IF ; désacivation des interruptions sur NCO1
BANKSEL RC7PPS ; bank 58
movlw 0x26 ; mode NCO1
movwf RC7PPS ; sortie sur RC7
BANKSEL NCO1CON ; bank 63
ini_nco1
clrf NCO1CON ;
clrf NCO1ACCU ;
clrf NCO1ACCH ;
clrf NCO1ACCL ;
movlw 0x00 ;
movwf NCO1INCU ;
movlw 0xFF ; pour avoir 1000 Hz = H'FFFF'
movwf NCO1INCH ;
movlw 0xFF ;
movwf NCO1INCL ;
movlw B'00000100' ; source d'horloge 31250 Hz
movwf NCO1CLK ;
bcf NCO1CON,PFM ; NCO1 fonctionne en mode fréquence d'impulsion cycle à 50% (bit 0)
bcf NCO1CON,NCO1POL ; le signal de sortie NCO1 n'est pas inversé (bit 4)
bsf NCO1CON,NCO1EN ; mise en service (bit 7)
Ci joins les fichier pour ceux qu'ils veulent l'essayer dans leur Pic18F27K42, avec cette fois-ci la source ASM complète : Prototype.zip
Pour vous montrer la précision des notes, voici un tableau avec la fréquence des notes de musique
Suite à l'intervention de paulfjujo, qui m'a démontré quand peut affiner la précision de la fréquence avec le registre OSCTUNE
Chose que j'ai faite, et là surprisse !! les fréquences était à peu près correct, j'ai donc voulu faire des essais avec plusieurs extrait de mélodie.
voici les titres
1) pour la partition que chabb à écrit (Furelise)
2) Léve-toi, Soldat
3) Hey Jude
4) Rondo Alla
5) Boléro de Ravel
6) Mission Impossible
7) Laurel And Hardy
8) Davy Croquette
9) Eurovision
10) Benny Hill
Ce qui donne ceci en vidéo
https://www.youtube.com/watch?v=x3dp2FG9Rtw
Je fourni pour ceux qui voudrais faire une modification ou un essai, le code ASM, et le code compilé de cette vidéo,
Comme ça, si vous possédez le Pic18F27K42 vous pourrez tester le programme, je vais faire un petit schéma.
Schéma
Je tiens à signaler que j'ai utilisé un vieux haut parleur d'une veille télévision à tube cathodique que j'ai cannibalisé, c'est un haut parleur de 4 ohms, mais vous pouvez prendre un haut parleur de 8 ohms, bon ce plan n'est pas très bon, mais il fonctionne, par la suite j'utiliserai un ampli de classe D, comme sur l'image ci-dessous
Voici le datasheet de l'ampli : PAM8403
je vous rappelle que la sortie du NCO1 se fait actuellement sur RC7 : fichiers code, et compiler de cette vidéo : Prototype2.zip
Il y a aucun calcul, le pic fait que lire la fréquence qui est déjà près calculé pour le NCO1, ainsi que la durée des notes.
Tout se trouve dans la partition qui est écrit en hexadécimal, idem pour le titre de la mélodie.
Pour l'instant la durée des notes est géré par une temporisation, ce qui ne rends pas le pic autonome... par la suite je compte me servir
d'un timer qui compteras par palier de 1ms.
Maintenant que tout fonctionne, je vais vous parlez du logiciel Rtttl, que vous pouvez télécharger ICI, le logiciel Rtttl sert à écouter les sons au format Rtttl, créer des sons Rtttl, modifier des son Rtttl, et générer un fichier pour la norme NCO1.
Je vous parlerai juste la façon de généré une mélodie pour NCO1 , pour ceux faire, il vous faut éditer la mélodie, il vous suffit ensuite de faire comme sur l'image ci-dessous.
Un code va être généré dans le presse papier, ce code et à mettre en zone mémoire programme de votre pic, ou eeprom, dans le cas du Pic18F27K42 vous pouvez à peu près mettre 40 morceaux de musiques de 2 minutes en mémoire programme(ce qui vous fait 80 minutes de musiques)
Pour ceux qui voudrais changer la fréquence d'horloge du registre NCO1CLK il vous faudra le faire dans le code ASM, et dans le logiciel Rtttl ou cela est prévu, comme sur l'image ci-dessous
Dans cette exemple, j'ai pris une Fréquence d'horloge NCO1 31250 Hz ( mode 4)
Si vous changer la fréquence d'horloge du registre NCO1CLK dans le code ASM, vous devez le faire aussi dans le logiciel Rtttl, sinon les notes seront erroné, les valeurs doivent être identique en code ASM et logiciel Rtttl
Maintenant je vais m'attaquer à le rendre autonome, sans que celui-ci soit bloqué avec les temps des notes, de plus je prévois un réglage avec bouton, pour affinement du registre OSCTUNE
Ben voilà c'est fait, avec une vidéo en prime
https://www.youtube.com/watch?v=0bgR6P6I6U4
Dans cette exemple, je peux régler osctune, ecrire en eeprom, faire clignter une led sans que cela affecte la mélodie, je vous laisse pour les plus intéressés le fichier code, ainsi que le fichier compiler de cette vidéo que vous pouvez télécharger ICI
Bon, j'attends des compositeurs......
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le dim. 20 nov. 2022 13:15, modifié 51 fois.
Musique Rtttl avec NCO1
Musique Rtttl avec NCO1
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
Attention voir dataheet page 93
le 32KHz coorespondrait plutot à ... Frequence dispo 31Khz ou 31,25KHz
à verifier en mettant RA6 clockout dans la config bit ..et frequencemetre dessus
je retesterai aussi de mon coté en C ..
Temps-x a écrit :
je trouve pour 1000 Hz une valeur à mettre dans les registres H'FFFF' (65535), une fois fait, et le pic programmé je trouve au fréquencemètre 963 Hz.
Je m’aperçois que la formule ne fonctionne pas, je me retrouve avec une imprécision, il est donc impossible de ce fier à la formule pour créer des notes de musiques, qui demande beaucoup de précision.
Moi qui croyais avoir la possibilité de créer des mélodies avec cette méthode, c'est rappé, à moins que quelle qu'un connaisse le pourquoi de la chose.
Attention voir dataheet page 93
le 32KHz coorespondrait plutot à ... Frequence dispo 31Khz ou 31,25KHz
à verifier en mettant RA6 clockout dans la config bit ..et frequencemetre dessus
je retesterai aussi de mon coté en C ..
Musique Rtttl avec NCO1
Re
Voici une explication ICI
Le programme pour lire est composé des sons Rtttl avec des cours exemple ICI
Ok, pour voir si ta théorie est la bonne je prends 500 Hz comme fréquence de sortie avec un calcul sur une horloge de 31250 Hz
31250/((2*500Hz)*1048575) = 33554 décimal soit 0x8312 hexadécimal
Essai en réelle... trouvé au fréquencemètre 494 Hz bon on se rapproche de la vérité, manque 6 Hz... c'est énorme en musique(voir le tableau en post #1)
On inversent la formule je trouve une fréquence d'horloge de 30875 Hz c'est très près de 31000 Hz
Test sur RA6
CONFIG CLKOUTEN = ON ; Bit d'activation de la sortie d'horloge
J'ai rien qui sort...
F6FCO a écrit :Source du message tu peux expliquer ce que sont les sons rtttl ?
Voici une explication ICI
Le programme pour lire est composé des sons Rtttl avec des cours exemple ICI
paulfjujo a écrit :Source du message Attention voir dataheet page 93
le 32KHz coorespondrait plutot à ... Frequence dispo 31Khz ou 31,25KHz
Ok, pour voir si ta théorie est la bonne je prends 500 Hz comme fréquence de sortie avec un calcul sur une horloge de 31250 Hz
31250/((2*500Hz)*1048575) = 33554 décimal soit 0x8312 hexadécimal
Essai en réelle... trouvé au fréquencemètre 494 Hz bon on se rapproche de la vérité, manque 6 Hz... c'est énorme en musique(voir le tableau en post #1)
On inversent la formule je trouve une fréquence d'horloge de 30875 Hz c'est très près de 31000 Hz
Test sur RA6
CONFIG CLKOUTEN = ON ; Bit d'activation de la sortie d'horloge
J'ai rien qui sort...
Musique Rtttl avec NCO1
- F6FCO
Expert- Messages : 1417
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Merci pour le lien,
J'ai été écouter la vidéo mais je n'ai pas perçé plus parce que mon neurone est actuellement branché conversion A/D et je suis monotâche.
Mais j'ai apprécié et çà rejoint un de mes (multiples) projets futurs. J'avais déjà bricolé avec de la musique simple ( viewtopic.php?f=20&t=683 ), l'idée sera de coupler 5 PIC qui feront chacun leur note pour simuler les 5 cordes d'une guitare et pouvoir ainsi jouer des accords et des partitions de guitare complexes, genre Flamenco ( j'aime bien le flamenco, des fois je me fais mal et çà y ressemble).
Mais bon c'est pour plus tard, on ne peut pas être partout
J'ai été écouter la vidéo mais je n'ai pas perçé plus parce que mon neurone est actuellement branché conversion A/D et je suis monotâche.
Mais j'ai apprécié et çà rejoint un de mes (multiples) projets futurs. J'avais déjà bricolé avec de la musique simple ( viewtopic.php?f=20&t=683 ), l'idée sera de coupler 5 PIC qui feront chacun leur note pour simuler les 5 cordes d'une guitare et pouvoir ainsi jouer des accords et des partitions de guitare complexes, genre Flamenco ( j'aime bien le flamenco, des fois je me fais mal et çà y ressemble).
Mais bon c'est pour plus tard, on ne peut pas être partout
Musique Rtttl avec NCO1
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Temps-x a écrit :...
Essai en réel... trouvé au fréquencemètre 494 Hz bon on se rapproche de la vérité, manque 6 Hz... c'est énorme en musique(voir le tableau en post #1)
On inversent la formule je trouve une fréquence d'horloge de 30875 Hz c'est très près de 31000 Hz
6/500=> erreur de 1,2%
Attention avec FSOC interne , on peut avoir + - 3% via le reglage de OSCTUNE ..
donc on pourrait corriger cette erreur .
FOSC interne peut aussi varier avec la valeur de VCC ( sur la gamme 3.3 à 5V)
reste à voir plutot avec un pilotage par Quartz au lieu de FOSC interne
si cela peut eviter des ajustements manuels.
j'ai pas encore testé de mon coté ...
Musique Rtttl avec NCO1
Re
C'est une veille vidéo, qui ne reflète pas la réalité, depuis le programme à considérablement était améliorer (voir la partition de chabb avec le nouveau programme ICI)
Mon bute c'est de ne pas bidouiller manuellement, car je veux que tout le monde puisse profiter de ce programme quand il fonctionnera
- on mets le programme dans le pic, on lit la partition qui se trouve en mémoire programme.
Je vais essayer avec un quartz à 20 Mhz, dans la soirée ....
Prends ton temps Paul, rien ne presse
A+
F6FCO a écrit :Source du message J'ai été écouter la vidéo mais je n'ai pas percé plus parce que mon neurone est actuellement branché conversion A/D et je suis monotâche.
C'est une veille vidéo, qui ne reflète pas la réalité, depuis le programme à considérablement était améliorer (voir la partition de chabb avec le nouveau programme ICI)
paulfjujo a écrit :Source du message reste à voir plutot avec un pilotage par Quartz au lieu de FOSC interne
si cela peut eviter des ajustements manuels.
Mon bute c'est de ne pas bidouiller manuellement, car je veux que tout le monde puisse profiter de ce programme quand il fonctionnera
- on mets le programme dans le pic, on lit la partition qui se trouve en mémoire programme.
Je vais essayer avec un quartz à 20 Mhz, dans la soirée ....
paulfjujo a écrit :Source du message j'ai pas encore testé de mon coté ...
Prends ton temps Paul, rien ne presse
A+
Musique Rtttl avec NCO1
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Test reel avec appli en MikroC
Via le terminal , je peux modifier la source NCO1clock, l'INCREMENT ,
le mode de commande : via clavier terminal, ou valeur ADC 12 bit
et j'ai rajouté la possibilit de modif in line du OSCTUNE
gamme de -32 à + 31 pour -3% à +3%
Help
Help commandes :
NCO1CLK= (0 à 7) :
CONSIG=xxxxxxx 7 digits
INCREM=xxxxxxx 7 digits
MODE=x 0=Keyboard 1=Analog
OSCTUNE=+ ou -
NCO1CLK=4 (31KHz)
avec Osctune=0 j'ai 505Hz pour une consigne de 33825 correspondant bien à 500Hz ( en fait 499.999 !)
avec le clavier j'ai baissé jusqu'à OSCTUNE=-8 pour obtenir 500 HZ via mon analyser SQA 50MHz
A la limite on pourrait donc utiliser la liaison UART pour calibrer le LA 440HZ ..
et mettre le coeff correcteur OSCTUNE en EEPROM .. pour économiser un quartz + 2 capa
OSCTUNE=-
Mode 0=Keyboard NCO1CLK_Choix=4 Increment = 33825, Freq Output= 499.999
OSCTUNE=-
Decremente OSCTUNE)
OSCTUNE= -12
Mode 0=Keyboard NCO1CLK_Choix=4 Increment = 33825, Freq Output= 499.999
Mode 0=Keyboard NCO1CLK_Choix=4 Increment = 33825, Freq Output= 499.999
nota: j'ai bien ma sortie RA6 Clockout
Via le terminal , je peux modifier la source NCO1clock, l'INCREMENT ,
le mode de commande : via clavier terminal, ou valeur ADC 12 bit
et j'ai rajouté la possibilit de modif in line du OSCTUNE
gamme de -32 à + 31 pour -3% à +3%
Help
Help commandes :
NCO1CLK= (0 à 7) :
CONSIG=xxxxxxx 7 digits
INCREM=xxxxxxx 7 digits
MODE=x 0=Keyboard 1=Analog
OSCTUNE=+ ou -
NCO1CLK=4 (31KHz)
avec Osctune=0 j'ai 505Hz pour une consigne de 33825 correspondant bien à 500Hz ( en fait 499.999 !)
avec le clavier j'ai baissé jusqu'à OSCTUNE=-8 pour obtenir 500 HZ via mon analyser SQA 50MHz
A la limite on pourrait donc utiliser la liaison UART pour calibrer le LA 440HZ ..
et mettre le coeff correcteur OSCTUNE en EEPROM .. pour économiser un quartz + 2 capa
OSCTUNE=-
Mode 0=Keyboard NCO1CLK_Choix=4 Increment = 33825, Freq Output= 499.999
OSCTUNE=-
Decremente OSCTUNE)
OSCTUNE= -12
Mode 0=Keyboard NCO1CLK_Choix=4 Increment = 33825, Freq Output= 499.999
Mode 0=Keyboard NCO1CLK_Choix=4 Increment = 33825, Freq Output= 499.999
nota: j'ai bien ma sortie RA6 Clockout
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Musique Rtttl avec NCO1
Re
pour ton test,
Je vais faire un test en jouant sur le registre OSCTUNE, mais !! je me pose une question
Si une fréquence est bonne parce qu'elle a été calibrer avec le registre OSCTUNE, par exemple dans ton cas c'est 500 Hz, les autres fréquence vont t'ils suivent le même décalage.....
Si les décalages se suivre, c'est tout bon, dans ce cas là ont peut écrire un petit programme pour réglage automatique du registre OSCTUNE
Pour un réglage automatique, j'ai une petite idée : On fabrique une fréquence de 1000 Hz avec le registre NCO1, puis le programme vérifie si il y a bien 1000 Hz, si c'est pas le cas le programme augment ou diminue la valeur de OSCTUNE, une fois fait le programme refait une vérification jusqu’à temps que la valeur soit bonne.
J'ai hâte d'écrire le programme avec réglage automatique, ça doit être marrant à faire, et surtout une bonne combine.
Je vais regarder pourquoi je n'ai pas de sortie sur RA6
pour l'aide apporté.
A+
pour ton test,
Je vais faire un test en jouant sur le registre OSCTUNE, mais !! je me pose une question
Si une fréquence est bonne parce qu'elle a été calibrer avec le registre OSCTUNE, par exemple dans ton cas c'est 500 Hz, les autres fréquence vont t'ils suivent le même décalage.....
Si les décalages se suivre, c'est tout bon, dans ce cas là ont peut écrire un petit programme pour réglage automatique du registre OSCTUNE
Pour un réglage automatique, j'ai une petite idée : On fabrique une fréquence de 1000 Hz avec le registre NCO1, puis le programme vérifie si il y a bien 1000 Hz, si c'est pas le cas le programme augment ou diminue la valeur de OSCTUNE, une fois fait le programme refait une vérification jusqu’à temps que la valeur soit bonne.
J'ai hâte d'écrire le programme avec réglage automatique, ça doit être marrant à faire, et surtout une bonne combine.
Je vais regarder pourquoi je n'ai pas de sortie sur RA6
pour l'aide apporté.
A+
Musique Rtttl avec NCO1
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour temps-X et à tous,
l'erreur est proportionnelle en %, donc la correction doit s'appliquer à toutes les frequences
tu ne peux pas simplement ...
because ta mesure de frequence est AUSSI basée sur le timing FOSC
donc la proportionalitée est conservée , la mesure restera la meme
à moins de prendre une base de temps differente ..
exemple le 1Hz de la sortie SQWE RTC -> RB0 -> interrupt comptage pendant precisément 1 seconde
...independant de FOSC.
Temps-x a écrit :Si une fréquence est bonne parce qu'elle a été calibrer avec le registre OSCTUNE, par exemple dans ton cas c'est 500 Hz, les autres fréquence vont t'ils suivent le même décalage.....
l'erreur est proportionnelle en %, donc la correction doit s'appliquer à toutes les frequences
Temps-x a écrit : On fabrique une fréquence de 1000 Hz avec le registre NCO1, puis le programme vérifie si il y a bien 1000 Hz, si c'est pas le cas le programme augmente ou diminue la valeur de OSCTUNE, une fois fait le programme refait une vérification jusqu’à temps que la valeur soit bonne.
J'ai hâte d'écrire le programme avec réglage automatique, ça doit être marrant à faire, et surtout une bonne combine.
tu ne peux pas simplement ...
because ta mesure de frequence est AUSSI basée sur le timing FOSC
donc la proportionalitée est conservée , la mesure restera la meme
à moins de prendre une base de temps differente ..
exemple le 1Hz de la sortie SQWE RTC -> RB0 -> interrupt comptage pendant precisément 1 seconde
...independant de FOSC.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 86 invités