différence de temps> entre les deux broches allant de haut

H

hobby_85

Guest
Salut, j'ai besoin de mesurer avec précision la différence de temps qu'il faut pour que deux broches sur mon 16F690 PIC pour aller haut.Fondamentalement, ce que j'ai l'intention de faire est d'utiliser la différence de temps de mesurer la distance entre deux points.Une source envoie un RF et une impulsion ultrasonique dans le même temps, et parce que les signaux des États-Unis décalage des signaux RF par un peu, je devrais obtenir une différence de temps.

de toute façon, j'ai écrit le code, mais le problème que j'ai est que je reçois deux ensembles de valeurs pour chaque distance.Donc disons que 1,2 im loin, je reçois ou 11,6 millions de 19.05m.où 2,4 millions de GI, j'obtiens 12,8 M 20,2 M ou.Fondamentalement pour n'importe quelle distance, je reçois deux réponses.si je suis seul, je pourrais ajouter un "h (at) ck 'à mon code pour le corriger, mais depuis im obtenir deux réponses, je ne sais pas quoi faire.Je sais que ce n'est pas précis, pas de toute façon précise, même à proximité, mais im seulement essayer de résoudre le problème 2 réponses pour le moment.

ive-joint mon code.S'il vous plaît s'il vous plaît s'il vous plaît, toute aide / suggestions / conseils serait formidable.Merci tous

Code:# Include <16F690.h>

# Fusibles INTRC, NOWDT, NOPROTECT, une baisse de tension, PUT, HS

retarder la consommation de # (horloge = 4000000)

# Utiliser rs232 (baud = 19200, xmit = PIN_B7, AN = PIN_B5)int16 CTR;

déclenché int;

int tripped1;

valeur à long;

int compteur;

flotteur à distance;

int16 ctr1;# Int_CCP1

void CCP1_isr (void)

(

= valeur CCP_1;

Valeur = valeur (* contre 65536);

déclenché = 1;

disable_interrupts (INT_CCP1);

)# Int_TIMER1

void TIMER1_isr (void)

(

compteur = compteur 1;

)void main ()

(setup_adc_ports (NO_ANALOGS | VSS_VDD);

setup_timer_1 (T1_INTERNAL | T1_DIV_BY_8);

enable_interrupts (GLOBAL);

setup_ccp1 (CCP_CAPTURE_RE);pour (;;){contact_slave3 (); / / Après cela, PINC1 devrait aller élevé, suivie de près par PINC5for (ctr = 0; CTR <65535; ctr ) (/ / Attendre PINC1 d'aller jusqu'au haut de délai d'attente

if (entrée (PIN_C1)) (

set_timer1 (0); / / valeur de la minuterie à 0, commencez à compter

enable_interrupts (INT_TIMER1);

compteur = 0;

ctr = 1; / / PINC1 a élevé, mis en ctr = 0, pause

break;

)

)if (CTR == 1) (/ / À ce stade, C1 a élevé, début de la minuterie et attendre C5-vous à atteindreenable_interrupts (INT_CCP1); / / attendre front montant de pinC5 jusqu'au timeout

pour (ctr1 = 0; ctr1 <10000; ctr1 ) (if (déclenché) (delay_ms (200);

printf ("TDOA est:% Lu nous \ n \ r", valeur);

= distance (valeur) * (0,000008) * (348,4);

printf ("La distance est:% f \ m« r \ n, la distance);

déclenché = 0;

distance = 0;

value = 0;

tripped1 = 1;

break;

)

)if (tripped1 == 0) (

printf ("\ r nNO \ américaines ont détecté \ r \ n");

tripped1 = 0;))

else (/ / PINC1 ne va pas de haut, l'erreur

printf ("\ r \ nSlave Node 3 RF signature not found \ r \ n");)delay_ms (1000);

déclenché = 0;

tripped1 = 0;

compteur = 0;))

 
Avez-vous confirmé que le dispositif de transmission est vraiment envoyer deux signaux en même temps?

Aussi, quelles sont les valeurs TDOA vous voyez pour ces deux distances de mesure?

 
ChrisC a écrit:

Avez-vous confirmé que le dispositif de transmission est vraiment envoyer deux signaux en même temps?Aussi, quelles sont les valeurs TDOA vous voyez pour ces deux distances de mesure?
 
hobby_85 a écrit:

Pour répondre à votre question, oui, j'ai vérifié pour voir si les deux signaux laisser l 'émetteur en même temps.
Il semble de le faire.
Toutefois, même s'il ya un léger décalage en termes d'un signal en laissant un peu après l'autre, le dispositif de réception doit être en mesure de toujours obtenir le même décalage à droite?
 
Si vous travaillez dans le domaine tym Fréquence: type, puis incease tym frewquancy e sera automatiquement diminuer.

 
Désolé pour le retard de ma réponse.Juste pensé id mettre les choses de côté et y revenir.Malheureusement, le travail na pas tromper.

Citation:Ne laissez les deux signaux de l'émetteur avec un délai compatible fixes (y compris rien du tout) entre eux?

 
hobby_85 a écrit:

le signal usound doit être amplifié et traverse ensuite un comparateur.
qui pourrait expliquer un peu de retard.
Im juste maintenant que si elle a fait si longtemps que.
(2 amplificateurs opérationnels et 1 comparateur)
 

Welcome to EDABoard.com

Sponsor

Back
Top