aukšto Nutraukiama latency už PIC18F4520

M

mdeepamenon

Guest
Labas,
Mes dirbame PIC18F4520 mikro valdiklis su išorės generatorius iš 22,1184 MHz.Mes naudojame CCP2 surinkimo nutraukti kuri surinkimo kritimo krašto ne CCP2 PIN įvedimo.Į ISR už CCP2 modulis bus po kritimo krašto įvyko.Mes nustatėme, kad yra latentinis tarp atsiradimo kritimo krašto ir vykdymo pirmojo nurodymas ISR yra 13 mikro sekundžių.Tai yra didžiulis vėlavimą dėl kurio mes prarasti sinchronizacija.Prašome pasiūlyti būdas sumažinti nutraukti vėlavimą.A latency apie 8 mikro sekundžių bus idealiai tinka mūsų atveju.

Thanks and Regards,
Deepa

 
Kodėl nelyginę kristalų dažnis?Ar naudojate didelį prioritetą?
Ar naudojate 4xPLL?

 
Visų pirma, aš ne Natknąć Kompiliavimo, kad naudoja daugiau nei Paręnaście mašina ciklų kontekste taupymo dėl ISR.Jūsų atveju, su 22MHz osciliatoriaus, tai sudaro apie 2-3us geriausiu.

Nors kai kurie mikrosekundžių vyko už kontekste sutaupyti iki sekasi su ISR kodą savo vertę, CCPR2H ir CCPR2L registruose, kurie turi TIMER1 vertės metu gaudyti, vis dar galioja.

Turėkite omenyje, jokių kitų vėlesnių fiksuoti įvykius, kurie vyksta, o viduje ISR bus praleisti.Manau, kad rasite kad duomenų ši aiški.Taigi yra keletas surinkimo laiko apribojimus, jei jūs tikitės apdoroti duomenis.

Jei neturite fiksuoti įvykius tada, kai viduje ISR, nutraukti būklė neturi įtakos tikslumas Jūsų fiksavimo rodmenys.

 
Labas,
Ačiū už atsakymą.
Ypač dėl atrankos laikrodžio dažnis ir ji negali būti pakeista.
Į CCP2 nutraukti daro aukščiausios proirity.
Aš naudoju MPLAB IDE Versija 7.6 ir Hi-Tech PICC kompilatora Versija 8,53 PL3.
Manau, kad yra būtina įtraukti keletą žodžių apie ISR dizainas.
Į CCP2 ISR yra nukentėjo kai kritimo krašto yra atvejai CCP2 įvedimo Kaisčiai.
Į ISR Aš išjungti CCP2 nutraukti ir laukti vis kraštas.
Stiprėjant krašto bus idealiai atsirasti 17,3 mikro sekundžių po kritimo krašto.
Dabar problema yra, ji užima 13 mikro sekundes tiesiog įveskite į ISR ir aš palikta maždaug 4 mikro sekundžių išjungti pertraukti ir vykdyti instrukcijas laukia augant krašto.Šiuo metu nėra pakankamai nors kodas viduje ISR optimizuotas didžiausias.Vienintelis būdas fiksuoti auga krašto yra sumažinti pradinę nutraukti vėlavimą.
Prašome pasiūlyti metodas siekiant sumažinti vėlavimą.
Thanks and Regards,
Deepa

 
Kaip minėta anksčiau, 13us yra per daug laiko apsvarstyti savo generatorius greičiu.Manau, kad esate neteisus apie kažką.Jei naudojate MPLAB tada po kodas, ISR skyriuje čia ir leidžia pažvelgti.

Jūsų vynai taip pat gali vykdyti @ 40MHz, kurios neabejotinai paspartins kodo važtaraščius.

 
Naudokite śródtekstowy surinkimas kodas nutraukti paslaugų įprastinių.Tai padės taupyti C kompiliatorius išlaidos.

Į sveikatą

Ravi

 
labasgali jums skambinti funkciją, pertraukti vieną.

Mes jau turi šią problemą ir spręsti ją pašalinti visi skambučių veikti

iki

 
Aš programos, kuri iškviečia funkciją, nutraukti įprastinį, atrodo, dirba puikiai.

 
Ačiū visiems už atsakymą.Ši problema buvo dėl didelio pradinio kontekste taupymo.Aukštųjų technologijų c kompiliatorius naudoja daug temperory kintamųjų surinkimo lygiavertės programos.Norėdami išsaugoti visus šiuos kintamuosius daug laiko buvo panaudotas.todėl mes pašalinome daug kodą iš nutraukti įprastinį su pagrindiniais įprastinių ir turiu problema išspręsta.
Thanks and Regards,
Deepa

 

Welcome to EDABoard.com

Sponsor

Back
Top