Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

PIC16 ja rekursiivsed katkestused?

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    PIC16 ja rekursiivsed katkestused?

    Õhtast, häkkerid!
    Mure järgmine: prose (PIC16F648) viibib suvalistel hetkedel võrgu katkestust teenindamas. Samas võib suvalisel hetkel tekkida pordi seisu muutuse katkestus. Hea oleks mitte kumbagi maha magada aga kui muidu ei saa, siis võrgu oma (serial - RCIF) võib ajuti pikalt saata.
    Hüva, katkestuste nõue jääb ju püsti kuni teenindamiseni, seega katkestust otseselt maha ei magata kuid pordi seisu muutuse katkestuse puhul on oluline pordi seis kohe seivida. Kui aga prose tegeleb just sel hetkel võrguga, jõuab seis asjaolude õnnetul kokkulangemisel muutuda. Harva aga siiski.

    Takt on 11,0592MHz (kvarts) ja võrk käib 115200 Bd pealt. Pordi seisu muutus on sisuliselt impulss, mis sõltuvalt sinna ühendatud seadmest võib olla üsna nobe (isegi 20uS!). Oleks vaja rekursiivseid katkestusi aga see PIC nihukest trikki ei tunne.
    Kas näete probleemile mingit elegantset lahendust (peale asjalikuma prose valiku)? Mina enam ei oska vaadata...

    PS. Ei mäleta enam hästi aga kui ma sarnase küsimuse juba kunagi esitasin siis...vabandust.
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    #2
    Vs: PIC16 ja rekursiivsed katkestused?

    1) tee mõlema katkestuse handlerid võimalikult lühikeseks, st las ainult sämplivad puhvrisse. Pärast mainis aega neid töödelda. Tee selleks piisavalt pikad ringpuhvrid.
    2) Kui ikka liiga lühikeseks ei saa teha ühte, siis polli ühe handleri seest teise katkestuse lippu ja kui see on püsti läinud, siis võta pordist sample puhvrisse. Jällegi, pärast aega töödelda.

    Comment

    Working...
    X