Poizvedba o Pulse Width

P

Pete

Guest
Lep pozdrav vsem:

Jaz sem eksperimentirati o merilnih sam impulz in izmerjena vrednost prikaže v binarni, kot prikazano v portd z 8 LED diod.Seveda časa sem rabil, je 16bit, ampak ne vem še, kako prikazati v 16 LED z 2 pristanišč.Tudi, širino impulza I vložek je celo število ali vrednost celo od 1usec do 50usec.
Kaj narobe z mojo kodo spodaj?Pričakujem, da če bom input 1usec impulzov, bo LED brati 00.000.001, za 2 usec 00.000.010, za 3 usec 00.000.011, za 4usec
00000100, itd ..To ne prikaže na ta način in sem zbegan, kako umerjanje to, ali je moja koda napačna.Potrebujete vašo pomoč / pripombe.Hvala .../ / Nič prekinitev metoda

dolgo pulse_width;

main ()
(
trisb0 = 1, / / da portb0 input
trisd = 0x00, / / da portd output
portd = 0;
while (1)
(
setup_timer_1 (T1_DISABLED);
set_timer1 (0) / / do preobremenitev v 51us
while (! input (PIN_B0));
setup_timer_1 (T1_INTERNAL);
while (input (PIN_B0));
setup_timer_1 (T1_DISABLED);
pulse_width = get_timer1 ();
PORTD = pulse_width;
)
)

 
živjo

mislim problem bodisi zaradi neusklajenosti s frekvenco kristalnega oscilatorja ur z uporabo frekvenc u se uporabljajo v kodo ali drugo časovno obdobje 1us ne dojemajo ur oko za prikaz sprememb v fractilon sekundah
tako povečali zamude, tako da u lahko vidijo spremembe

 
Uporabljam 20MHz ura.Z mojim območju vnosa v usecs, so LED osvetljena, vendar binarno vrednost ni pravilna, ki ustreza širino impulza imam inputted.
Torej moj problem je bodisi moja koda je narobe, ali sem pravilno kodo, vendar ne kalibrira pravilno prikazati pravilno branje v binarni.Razumem, za vsako vrstico kode, je nekaj zamude.

 

Welcome to EDABoard.com

Sponsor

Back
Top