Duty ciklas 45-55% intervale

Y

yuenkit

Guest
Labas,

Paprastai, kai aš noriu naudoti PIC sąsajos kitą IC už Clk arba En PIN prietaiso, poślę logikos 1 ir tada laikytis logikos 0, kiekvieno ciklo metu.

pavyzdžiui
output_high (PIN_STOP);
Pulsas ();

kur impulsas
tuščia Pulsas () (
output_high (PIN_B0)
delay_ms (100)
output_low (PIN_B0)
delay_ms (100)
)

Tokiu būdu, aš galiu viską padaryti, nors ciklas ir impulso CLK nėra išsaugomi.

Dabar turiu sąsajos su IC, kuris, remiantis duomenų lape,
CLK: laikrodžio signalą iš išorinio duomenų valdytojas privalo turėti Duty Cycle per min / max apibrėžta specifikacija (paprastai 50%).

Koks yra šios problemos Išorinis sukamaisiais apžiūra?

 
Labas

There is no problem, pagal savo kodą, turite įvykdyti sąlygą.

output_high (PIN_STOP);
Pulsas ();

kur impulsas
tuščia Pulsas () (
output_high (PIN_B0)
delay_ms (100)
output_low (PIN_B0)
delay_ms (100)
)

padaryti jį 100ms didelis, ir mažas 100ms, o tai yra 50% takto ciklą, bet jūs turite padaryti tai 10ms didelės ir mažos 10ms, tai bus gana pakankamai tikslinės IC

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Šypsotis" border="0" />Kind dieną

 
Problema yra ta,

Uc vykdo instrukcijas, seką.Tarp impulsų, aš pridės kitus nurodymus, kurie padės pagerinti ciklai, o blogiausiu atveju, iš 45-55% intervale.

Tarkime, x yra laikas, kitos instrukcijosPulsas () / / Clk = 1 100ms, CLK = 0 100ms,
Intructions už 40ms,
Pulsas () / / Clk = 1 100ms, CLK = 0 100ms,

Jis baigiasi Clk = 0 100ms 40 ms.taip ciklas pasikeitė.

Kitu atveju, jei ISR yra įvesta, ciklas taip pat turėjo įtakos.

 
Geriausias būdas išspręsti šią naudoja pertraukia.Galite konfigūruoti laikmatis generuoti nutraukti kiekvienos 100ms (pagal jūsų pavyzdį) ir jungiamąsias savo produkcijos ISR.Nors yra šiek tiek užtrukti dalyvauja patekti nutraukti paslaugų įprastinių šis vėlavimas yra beveik pastovi, todėl vienodas tiek pusė ciklą.

Sėkmės!

Cyberblak

 

Welcome to EDABoard.com

Sponsor

Back
Top