www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

pic klicanje posameznih izhodov
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Sob Mar 03, 2007 2:00 pm    Naslov sporočila:   Odgovori s citatom

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 Very Happy
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.58

PrispevekObjavljeno: Sob Mar 03, 2007 2:55 pm    Naslov sporočila:   Odgovori s citatom

gl83 je napisal/a:
v cem je bistvena razlika med klicanjem podprogramov, in klicanjem prekinitve. Vem da, v nacinu Cool . 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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
gl83
Član
Član



Pridružen-a: Pet 02 Mar 2007 12:01
Prispevkov: 20
Aktiv.: 0.09
Kraj: Ljubljana

PrispevekObjavljeno: Sob Mar 03, 2007 3:17 pm    Naslov sporočila:   Odgovori s citatom

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! Shocked

hvala

LP

goran
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.58

PrispevekObjavljeno: Sob Mar 03, 2007 3:35 pm    Naslov sporočila:   Odgovori s citatom

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 Laughing
_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Pon Mar 05, 2007 12:16 am    Naslov sporočila:   Odgovori s citatom

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. Cool
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gl83
Član
Član



Pridružen-a: Pet 02 Mar 2007 12:01
Prispevkov: 20
Aktiv.: 0.09
Kraj: Ljubljana

PrispevekObjavljeno: Pon Mar 05, 2007 10:33 am    Naslov sporočila:   Odgovori s citatom

hvala, sem resil tezavo..samemu mi nebi uspelo Confused ! 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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Pon Mar 05, 2007 12:10 pm    Naslov sporočila:   Odgovori s citatom

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. Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Pon Mar 05, 2007 1:47 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
snow
Član
Član



Pridružen-a: Tor 27 Dec 2005 14:02
Prispevkov: 341
Aktiv.: 1.44
Kraj: Ljubljana || Velenje

PrispevekObjavljeno: Pon Mar 05, 2007 3:09 pm    Naslov sporočila:   Odgovori s citatom

> 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 Laughing
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
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: 491 dni


Powered by phpBB © 2001, 2005 phpBB Group