help interpretation programme en "C"

Règles du forum
Cette section est dédié a vos projets, descriptions et demandes d'aide.
Merci de limiter le nombre de sujet par projets.
Lorsqu'un sujet deviens long vous pouvez éditer le premier message pour maintenir à jour le descriptif et garder en lisibilité
Avatar de l’utilisateur
F1CHF
Electrolab::Membre
Messages : 349
Enregistré le : 02 mars 2017, 22:57
Localisation : Franconville
Contact :

help interpretation programme en "C"

Messagepar F1CHF » 26 janv. 2021, 12:00

bonjour
j'ai trouvé un exemple de diviseur par 1000 a l'aide d'un pic
(qui peut servir dans le cas d'un GPSDO avec TXCO 10 mhz)
par contre je suis curieux et j'aimerais bien comprendre pourquoi le programme est si complexe (a mes yeux)
je met le schema du montage et le fichier en langage "C"
si qqun pouvait m'expliquer ce qu'il comprend ..
merci d'avance
Fichiers joints
schema.JPG
c'est juste la partie 12-675 qui est importante
schema.JPG (61.7 Kio) Vu 4122 fois
divider.txt
copie en texte du programme source
(4 Kio) Téléchargé 185 fois
Avatar de l’utilisateur
NicoM
Electrolab::Membre
Messages : 175
Enregistré le : 01 mars 2017, 16:05
Localisation : Paris
Contact :

Re: help interpretation programme en "C"

Messagepar NicoM » 26 janv. 2021, 12:32

Il n'est pas abominablement compliqué, il fait plein de fois la même chose à la suite.
Le commentaire en tête de programme (abominablement mal formaté) indique qu'il y a 3 sorties : 1 kHz, et deux 10 kHz en quadrature. Ça suppose donc 40 étapes successives par tour de boucle à 1 kHz.

Nico M.
Avatar de l’utilisateur
F1CHF
Electrolab::Membre
Messages : 349
Enregistré le : 02 mars 2017, 22:57
Localisation : Franconville
Contact :

Re: help interpretation programme en "C"

Messagepar F1CHF » 26 janv. 2021, 13:55

Merci d'avoir pris le temps de travailler pour moi, en effet j'ai été surpris par le nombre de boucles
mais dans son texte, le gars parle en effet de sorties multiples, dans mon cas un simple diviseur suffit !
voila ce qu'il dit " (je vais essayer un coupé / collé !)
Le diviseur
Le PIC 16F675 utilise les 10 Mhz de l'oscillateur comme signal d'horloge et est responsable de la génération d'une sortie de 10 kHz qui varie en fonction de l'horloge d'entrée. Dans d'autres implémentations, cela se fait avec plusieurs compteurs 74HC390 intégrés, augmentant la taille et la puissance du système. Le PIC a plus de sorties que nécessaire, nous pouvons donc le programmer pour obtenir d'autres signaux intéressants. Dans mon cas, j'ai implémenté dans l'une des sorties un autre signal 90KHz déphasé de 90º par rapport au principal, afin d'expérimenter des détecteurs à verrouillage basés sur cette technique (merci Ignacio, EB4APL). Il est également intéressant d'avoir une sortie 1KHZ que nous pouvons utiliser, par exemple, pour ajuster la base de temps de notre oscilloscope. Ici, nous pouvons voir une capture des deux sorties 10KHz, 90e déphasées:

youppi ça fonctionne !
Avatar de l’utilisateur
rude_ulm
Electrolab::Membre
Messages : 293
Enregistré le : 03 mars 2017, 10:52
Localisation : Houilles

Re: help interpretation programme en "C"

Messagepar rude_ulm » 26 janv. 2021, 17:39

Oui c'est un peu bourrin comme méthode, mais si ça fonctionne et si ça rentre ... Ca ressemble vaguement à un DDS
Cependant sauf erreur de ma part car j'ai regardé ça rapidement :
Il y a 2516 cycles machine !!
10M / 4 = 2500 kHz / 2516 = 1kHz ????

Aurais je manqué un épisode ?
Dom
qui aurait peut être utilisé un timer et une machine d'état
Avatar de l’utilisateur
F1CHF
Electrolab::Membre
Messages : 349
Enregistré le : 02 mars 2017, 22:57
Localisation : Franconville
Contact :

Re: help interpretation programme en "C"

Messagepar F1CHF » 26 janv. 2021, 18:31

normalement la sortie c'est du 10 khz ! en effet j'ai pas compris pourquoi il y autant de boucles !
le but est d'avoir un petit diviseur par 1000 qui tienne dans la main !
on avait parlé FPGA, mais c'est pas de la tarte ... faut avoir des neurones assez frais et surtout connaître
merci d'avoir cherché
papy F1CHF
Avatar de l’utilisateur
NicoM
Electrolab::Membre
Messages : 175
Enregistré le : 01 mars 2017, 16:05
Localisation : Paris
Contact :

Re: help interpretation programme en "C"

Messagepar NicoM » 27 janv. 2021, 09:38

F1CHF a écrit :le but est d'avoir un petit diviseur par 1000 qui tienne dans la main !
on avait parlé FPGA, mais c'est pas de la tarte ... faut avoir des neurones assez frais et surtout connaître

Pas besoin d'un FPGA, un CPLD suffit amplement pour faire un bête compteur à 10 bits. Ça peut faire un bon sujet d'initiation, d'ailleurs.
Ceci étant dit, le composant risque d'être plus cher qu'un PIC (Farnell : CPLD 1er prix 1,66 €, PIC12F675 0,98€, µC 8 bits AVR ATtiny 0,3 €)

Nico M.
Avatar de l’utilisateur
F1CHF
Electrolab::Membre
Messages : 349
Enregistré le : 02 mars 2017, 22:57
Localisation : Franconville
Contact :

Re: help interpretation programme en "C"

Messagepar F1CHF » 28 janv. 2021, 10:11

Oui j'ai regardé sur le net la partie CPLD mais ils parlent de programmation en VHDL
la vache encore un langage "tartemollesque"
je vais essayer de tester avec un 12F675 pour voir si cela divise par 1000
sans comprendre vraiment ce que le loulou a écrit
merci
papy F1CHF
Avatar de l’utilisateur
NicoM
Electrolab::Membre
Messages : 175
Enregistré le : 01 mars 2017, 16:05
Localisation : Paris
Contact :

Re: help interpretation programme en "C"

Messagepar NicoM » 28 janv. 2021, 10:25

F1CHF a écrit :Oui j'ai regardé sur le net la partie CPLD mais ils parlent de programmation en VHDL
la vache encore un langage "tartemollesque"


Je ne sais pas ce que tu entends par "tartemollesque". Pour la programmation de ces composants (CPLD ou FPGA), qui n'ont rien à voir avec des µP/µC, on utilise des langages de description matérielle (Hardware Description Language), qui ne sont pas des langages de programmation, les deux principaux étant le Verilog et le VHDL.
C'est pas très compliqué mais il faut juste garder à l'esprit qu'on décrit de l'électronique, pas qu'on programme un micro.

Nico M. ("expert FPGA et VHDL", c'est mon patron qui le dit. Moi je suis trop modeste ;-) )
Avatar de l’utilisateur
F1CHF
Electrolab::Membre
Messages : 349
Enregistré le : 02 mars 2017, 22:57
Localisation : Franconville
Contact :

Re: help interpretation programme en "C"

Messagepar F1CHF » 28 janv. 2021, 11:07

Tartemolesque ou abracadantesque !
j'ai regardé les quelques exemples et on retrouve des exemples de programmation en VHDL
et c'est un tout nouveau monde pour moi ...
mais je suis pas contre de commander la partie hardware, de monter une maquette et avec l'aide d'un "sachant"
de faire un prototype
papy F1CHF (qui va encore se coucher moins bête qu'il s'est levé ce matin !) hi ...
Avatar de l’utilisateur
rude_ulm
Electrolab::Membre
Messages : 293
Enregistré le : 03 mars 2017, 10:52
Localisation : Houilles

Re: help interpretation programme en "C"

Messagepar rude_ulm » 29 janv. 2021, 10:26

Bonjour,
Pour mes petits montages j'utilise le PIC12F1571/72
Il a plusieurs avantages
rapide 32MHz
plein de périphériques intégrés :
3 PWM
UART
CAN
CNA (modeste certes)
Mesure de température
etc ...

Il existe en dip8 ce qui est good pour les protos et il est moins cher que les autres chez RS

Donc il suffit de configurer l'un des PWM pour sortir du 10kHz avec un rapport cyclique de 50%, ce qui bouffe seulement quelques octets et cerise sur le gâteau il reste un petit µP quasi complet pour faire autre chose, (il reste 2 PWM et tous les autres périphériques et on a bouffé 2IO pour la clock et la sortie 10kHz)

Dom

Retourner vers « Les Projets »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité