 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Sob Mar 03, 2007 2:00 pm Naslov sporočila: |
|
|
Prekinitve se običajno uporablja takrat, ko želiš določene stvari obdelati prednostno, torej takrat ko se zgodijo in ne glede na to kje se trenutno nahajaš v svojem programu.
Kar se pa tiče shranjevanje porta, ga moraš shranit takrat ko prideš v prekinitveno rutino, drugače ne gre. Saj ne boš vedel kdaj ti bo program skočil tja.
Timer je en od prožilcev prekinitve, jaz sem to uporabil v moji aplikaciji za real time clock.... je pa res, da že dolgo ne pišem več v assemblerju ampak v C++, assembler uporabim samo za časovno kritične operacije, ki jih je pa pri 200ns ciklu čedalje manj  |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Sob Mar 03, 2007 2:55 pm Naslov sporočila: |
|
|
gl83 je napisal/a: |
v cem je bistvena razlika med klicanjem podprogramov, in klicanjem prekinitve. Vem da, v nacinu . Kje so prednosti in slabosti ene, oziroma druge metode. |
Na podprograme lahko na preprostih mikrokontrolerckih gledas kot na SW interrupte z bolj kompliciranih arhitektur. Gre za dve neprimerljivi stvari - HW interrupt se sprozi takrat, ko to povzroci nek zunanji (z vidika CPUja) drazljaj, SW pa takrat, ko program to zeli. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
gl83 Član

Pridružen-a: Pet 02 Mar 2007 12:01 Prispevkov: 20 Aktiv.: 0.09 Kraj: Ljubljana
|
Objavljeno: Sob Mar 03, 2007 3:17 pm Naslov sporočila: |
|
|
Hvala za odgovor, se bom malce pozabaval. Enostavno, kaj je boljse ce imam senzor, ki mi daje impulz, da prozim prekinitve ali da preverjam stanje vhoda v podprogramu. Ali pa povsem narobe razmisljam in se to da resiti na kak drug nacin!
hvala
LP
goran |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Sob Mar 03, 2007 3:35 pm Naslov sporočila: |
|
|
Interrupt, razen ce program ni nikjer casovno kriticen oz. pocne kaj trivialnega, da si lahko privoscis malo lenobe in neucinkovitosti. Brez interruptov je hitreje napisano, to je pa tudi vse  _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Pon Mar 05, 2007 12:16 am Naslov sporočila: |
|
|
Vprašati se moraš tole vprašanje:
Ali bo izhod na senzorju dovolj dolg, da bo pic med preverjanjem stanja v programu to tudi zaznal. Če je odgovor da, potem ni nujno potrebna interrupt rutina.
Če pa je odgovor ne, potem pa napišeš interrupt rutino.
Če stvar ni časovno kritična in potrebuješ vhod samo kot neko indikacijo oziroma ga moraš obdelati nekje v programu, ti lahko interrupt rutina postavi samo zastavico v neki spremenljivki, ki jo potem periodično bereš.
Upam da ti pomaga to pri programiranju.  |
|
Nazaj na vrh |
|
 |
gl83 Član

Pridružen-a: Pet 02 Mar 2007 12:01 Prispevkov: 20 Aktiv.: 0.09 Kraj: Ljubljana
|
Objavljeno: Pon Mar 05, 2007 10:33 am Naslov sporočila: |
|
|
hvala, sem resil tezavo..samemu mi nebi uspelo ! Sedaj imam novo tezavo:D, na pritisk tipke zelim prizgati naslednjo ledico, prejsna, ki sem jo prizgal s taisto tipko pa mora ostat prizgana. Drugace pa je to samo vaja, v resnici pa hocem narest da se mi bo na 7 segmentnem led displeju za vsak pritisk tipke povecal stevec za ena...
hvala za odgovore..
LP
Goran |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Pon Mar 05, 2007 12:10 pm Naslov sporočila: |
|
|
S pritiskom na tipko povečaj spremenljivko (števec) in potem glede na to številko na izhodnem portu postaviš ustrezne pine. Za začetek poizkusi ta števec kar direktno na port postavit, tako boš dobil binearni izhod.  |
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Pon Mar 05, 2007 1:47 pm Naslov sporočila: |
|
|
gl83 je napisal/a: |
...aja, vhod bo opticno stikalo, tu ni tezav z odskakovanjm!... |
Optično stikalo (odvisno od izvedbe in od objekta, ki prekinja žarek) lahko ob vklopu zgenerira več impulzov, podobno kot bouncing pri mehanskem stikalu.
Jur |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Pon Mar 05, 2007 3:09 pm Naslov sporočila: |
|
|
> na 7 segmentnem led displeju za vsak pritisk tipke povecal stevec za ena
Nekaj podobnega je bil tudi moj projekt #2 (#1 je bil utripanje ledice).
Se pravi potrebuješ eno spremenljivko v kateri boš imel shranjeno število za izpis, nato jo povečuješ/zmanjšuješ po 1. Vsakič pa jo je potrebno izpisati. Oziroma, če boš imel večmestne številke, bo potrebno uporabiti multipleks način (7 skupnih pinov, 1 dodatni na vsak display) za prižiganje displayev (razen če ne boš uporabil 7 pinov za vsak display).
No skratka ko imaš cifro v spremenljivki, jo moraš razstaviti na enice, desetice, stotice in jo izpisovat.
Debounce pa je fino uporabljat - škodi ne, pomaga pa lahko  |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|