Étape 5: Code, sortie et vitesse
Une fois que je construis mon contrôleur où le code est destiné à être mis en place, je vais poster plus de photos, mais voici le code. C’est assez bien documenté et commenté, donc j’ai s’entraînait tous les commentaires sur cette page.
Le code exécuté sur un atmeag328P prend 52ms pour terminer chaque cycle qui analyse les fréquences 196hz à 3136hz (bande passante d’un violon). Notez que le réglage de la portée des retards pour tester l’affectera grandement votre vitesse !
Mise à jour 21 juillet 2015: compte tenu de mes besoins, je n’aimais vraiment si les hautes fréquences au-dessus de 3000 hz a obtenu un alias car mes besoins étaient fondés sur les principes fondamentaux de violon variait de 196 hz à 3136 hz. Par conséquent, diminuer la fréquence d’échantillonnage ADC à 19,2 khz qui permet au processeur de plus de temps pour traiter les données disponibles. L’utilisation d’un scalaire de 64 a entraîné un délai d’exécution 17ms, mais réduit le 3136hz à seulement 12 échantillons pour amdf. Va plus lentement améliorerait probablement la vitesse encore, mais la résolution de fréquence plus élevée est perdue. Le code ne reflète pas cette modification.
Vous pouvez adapter pour utiliser des entiers pour une plus grande précision si vous le souhaitez.
Vous devrez probablement remplacer le code pour l’affichage d’une commande de série ou quelque chose comme ça.