laiko skirtumą tarp dviejų Pins vyksta didelis

H

hobby_85

Guest
Labas, man reikia tiksliai išmatuoti laiko trunka dvejus Pins mano PIC 16F690 eiti aukštas.Iš esmės tai, ką ketinate daryti, tai naudoti laiko matavimo atstumu tarp dviejų taškų.Šaltinis siunčia RF ir ultragarso impulsų vienu metu, ir kadangi JAV signalus VVG RF signalų bitas, norėčiau gauti laiko skirtumas.

Anyway, parašiau kodą, bet problema turiu tai gaunu dvi vertes kiekvieno atstumo.Taigi galime pasakyti im 1.2m atstumu, man 11.6m arba 19.05m.kai jiems 2.4m, man 12.8M arba 20.2m.Iš esmės bet atokiau, gaunu du atsakymus.jei aš turiu tik vieną, aš galbūt galėtų įtraukti "h (at) CK" mano kodas, siekiant ją išspręsti, tačiau, kadangi jiems gauti du atsakymus, i dont know what to do.Aš žinau jos nėra tikslūs, o ne šiaip beveik tiksli net, bet jiems tik bando išspręsti 2 atsakymus problema dabar.

IVE pridėti mano kodas.please please please, any help / pasiūlymus / patarimus, būtų puiku.Ačiū visiems

Kodas# include <16F690.h>

# saugikliai INTRC, NOWDT, NOPROTECT, Sumažinti apšvietimui, Put SS

# naudoti nedelsiant (laikrodis = 4000000)

# USE RS232 (Baud = 19200, xmit = PIN_B7, VB = PIN_B5)int16 SR;

LC paslydau;

LC tripped1;

ilgai vertę;

int skaitiklis;

float atstumas;

int16 ctr1;# int_CCP1

tuščia CCP1_isr (tuščia)

(

vertė = CCP_1;

vertė = vertė (Skaitliukas * 65536);

paslydau = 1;

disable_interrupts (INT_CCP1);

)# int_TIMER1

tuščia TIMER1_isr (tuščia)

(

counter = counter 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);už (;;){contact_slave3 (); / / Po to, PINC1 turėtų būti didelė, atidžiai stebėjo PINC5už (SR = 0; CTR <65.535; Ctr ) (/ / Palaukite PINC1 eiti aukštas iki timeout

if (input (PIN_C1)) (

set_timer1 (0) / / set laikmatis vertė 0, pradėti skaičiuoti

enable_interrupts (INT_TIMER1);

counter = 0;

SR = 1; / / PINC1 išėjo didelis rinkinys SR = 0 break

break;

)

)jei (SR == 1) (/ / šioje vietoje, C1 išėjo didelis, pradžios laikmatis ir laukti C5 eiti aukštasenable_interrupts (INT_CCP1) / / laukti auga kraštas pinC5 iki timeout

for (ctr1 = 0; ctr1 <10000; ctr1 ) (if (paslydau) (delay_ms (200);

printf ( "TDOA yra:% lu mus \ r \ n") nustatyta vertė;

atstumas = (vertė) * (0,000008) * (348,4);

printf ( "Atstumas yra:% f metrų \ r \ n", atstumas);

paslydau = 0;

atstumas = 0;

vertė = 0;

tripped1 = 1;

break;

)

)if (tripped1 == 0) (

printf ( "\ r \ NŻadne JAV NUSTATYTų \ r \ n");

tripped1 = 0;))

else (/ / PINC1 didn't go aukštas, klaida

printf ( "\ r \ nSlave Mazgas 3 RF parašas nerastas \ r \ n");)delay_ms (1000);

paslydau = 0;

tripped1 = 0;

counter = 0;))

 
Ar Jūs patvirtino, kad perdavimo įrenginys tikrai siunčia tiek pat laiko signalų?

Be to, kas yra TDOA vertybės matote šių dviejų matavimo atstumą?

 
ChrisC rašė:

Ar Jūs patvirtino, kad perdavimo įrenginys tikrai siunčia tiek pat laiko signalų?Be to, kas yra TDOA vertybės matote šių dviejų matavimo atstumą?
 
hobby_85 rašė:

Atsakyti į jūsų klausimą, taip turiu patikrinti, ar du signalai išvykti siųstuvas tuo pačiu metu.
Atrodo, kad tai padaryti.
Tačiau, net jei yra šiek tiek atsilieka pagal vieną signalą, paliekant šiek tiek nuo kitų, gavimo įtaisas turi turėti galimybę nuolat patekti pačios VVG teisė?
 
jei dirbate frequancy tym domeno tada incease oji frewquancy tym bus automatiškai sumažės.

 
Atsiprašome atsakymus nedelsiant.Tiesiog maniau ID įdėti ką Panaikinti ir grįžti į ją.Deja apgauti didnt darbą.

Citata:Ar abu signalai išvykti siųstuvas su nuosekliai nustatytos nedelsiant (įskaitant ir niekas ne visi) tarp jų?

 
hobby_85 rašė:

usound signalas turi būti papildyta ir tada eina per palyginamąjį.
kad galėtų paaiškinti dėl vėlavimo bitų.
im just dabar tikrai, jeigu ji iš tiesų mano, kad ilgas nors.
(2 opamps ir 1 lyginamasis)
 

Welcome to EDABoard.com

Sponsor

Back
Top