Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Pet Mar 23, 2012 6:23 pm Naslov sporočila: PIC multitasking |
|
|
Ali je možno da pic ˝multitaska˝ ?
Rabim napisat nek program, ki bi štel in prikazoval na 7-segmente display-e na enkrat.
Kako bi napisal (če je možno) da bi se 2 funkciji izvajali istočasno in si delili podatke? _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Pet Mar 23, 2012 7:06 pm Naslov sporočila: |
|
|
Ne rabiš multitaskinga, s prekinitvami se tole komot naredi. Malo poglej po forumu, imaš cel kup primerov... _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.33
|
Objavljeno: Pet Mar 23, 2012 7:12 pm Naslov sporočila: |
|
|
Se strinjam z gumby-em. Za poganjanje več 7 segmentnih prikazovalnikov res ne potrebuješ multitaskinga. Če pa vztrajaš pri multitaskingu, si pa poglej kakšen RTOS za PICe, naprimer http://www.freertos.org. _________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Pet Mar 23, 2012 8:19 pm Naslov sporočila: |
|
|
Da pa se zato se ker noben 7 segmentni displej s procesorjem ne prižge hkrati ampak se prižiga po eno diodo v displeju. S tem se zniža poraba vezja, na vidljivost pa ne vpliva, ker se diode prižiga in ugaša zelo hitro in se s tem dobi učinek da svetijo vse hkrati. Diode se v bistvu krmilijo zaporedno ena za drugo, in ne rabiš multi-taskinga. Če imaš kakšno takšo stvar doma jo primi v roko in zamahni pred očmi se vidi, da diode utripajo. _________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
 |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Pet Mar 23, 2012 9:51 pm Naslov sporočila: |
|
|
gumby
o katerih prekinitvah to govoriš? _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
polhar Član


Pridružen-a: Sob 04 Mar 2006 9:11 Prispevkov: 360 Aktiv.: 1.53 Kraj: Dol pri Ljubljani
|
|
Nazaj na vrh |
|
 |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Sob Mar 24, 2012 1:21 pm Naslov sporočila: |
|
|
Sem vse preiskal in sedaj razumem kaj je prekinitev, ne znam pa vključiti timerja in ga prav nastaviti.
Bi mi lahko kdo napisal primer kako nastaviti timer na PIC 16F876?  _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
GJ Član


Pridružen-a: Čet 02 Nov 2006 15:51 Prispevkov: 946 Aktiv.: 4.17 Kraj: Ljubljana
|
Objavljeno: Sob Mar 24, 2012 3:10 pm Naslov sporočila: |
|
|
hahalolek je napisal/a: |
Sem vse preiskal in sedaj razumem kaj je prekinitev, ne znam pa vključiti timerja in ga prav nastaviti.
Bi mi lahko kdo napisal primer kako nastaviti timer na PIC 16F876?  |
Pokaži kaj si spisal do sedaj!
LP GJ |
|
Nazaj na vrh |
|
 |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Sob Mar 24, 2012 3:36 pm Naslov sporočila: |
|
|
Nič še nimam ker če ne znam vključit timerja se mi sploh ne splača pisat programa.
Timer rabim zato da bi nek program ki ga imam malo spremenil in ga moram na novo spisat. _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
GJ Član


Pridružen-a: Čet 02 Nov 2006 15:51 Prispevkov: 946 Aktiv.: 4.17 Kraj: Ljubljana
|
Objavljeno: Sob Mar 24, 2012 4:05 pm Naslov sporočila: |
|
|
hahalolek je napisal/a: |
Nič še nimam ker če ne znam vključit timerja se mi sploh ne splača pisat programa.
Timer rabim zato da bi nek program ki ga imam malo spremenil in ga moram na novo spisat. |
V čem delaš/pišeš programe, nisi navedel!
Osnovno frekvenco mikrokontrolerja nisi navedel.
Na koliko časa naj se ti izvede prekinitvena rutinal?
Tvoj obstoječi program že koristi prekinitve (interrupts)?
itd.
Drugače pa imaš MPLAB simulator in lahko najprej napišeš in sprobaš v simulatorju!
LP GJ |
|
Nazaj na vrh |
|
 |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Sob Mar 24, 2012 4:31 pm Naslov sporočila: |
|
|
Delam v MikroC.
Frekvenca je 4MHz.
Prekinitve bi že znal sam naštimati mene samo zanima kako se nastavi timer da začne šteti in ga potem da v prekinitev.
Moj program pa je zdaj bolj čudno narejen in brez prekinitev. Prekinitve bi rabil da lepše napišem program in se izognem kakšnim bugom.
Sem še bolj začetnik v teh stvareh tako da bi imel še eno vprašanje:
Kaj je pomen funkcije void main() v katero v šoli vedno pišemo v vseh programih ki jih pa najdem na internetu pa imajo še druge funkcije. Kako prehajaš iz ene v drugo? _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
PZUFIC Vseved


Pridružen-a: Sob 17 Nov 2007 19:06 Prispevkov: 6987 Aktiv.: 32.65 Kraj: Rakek
|
Objavljeno: Sob Mar 24, 2012 5:46 pm Naslov sporočila: |
|
|
To je glavna funkcija programa, ki pač mora biti. Potem imaš pa ponavadi še while(1), ki pa je neskončna zanka znotraj glavne. In kar pred to narediš se bo izvedelo samo enkrat, tisto, kar pa je v while zanki pa se izvaja v neskončnost. _________________ Ne čakaj, da se bo nekaj premaknilo pojdi in nekaj premakni.
Lp Primož |
|
Nazaj na vrh |
|
 |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Sob Mar 24, 2012 6:36 pm Naslov sporočila: |
|
|
Ne, zanima me kako prehajaš med temi funkcijami:
void main () {
/tukaj je neka koda
}
void druga() {
}
Kako prehajaš med voidi? _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
mkosmac Član


Pridružen-a: Čet 26 Mar 2009 22:18 Prispevkov: 301 Aktiv.: 1.52 Kraj: Limbarska Gora
|
Objavljeno: Sob Mar 24, 2012 7:12 pm Naslov sporočila: |
|
|
To narediš tako, da v glavnem programu funkcijo kličeš npr
Koda: |
void druga(){
Podprogram;
}
void main() {
druga(); //tukaj se izvede podprogram
} |
|
|
Nazaj na vrh |
|
 |
hahalolek Član


Pridružen-a: Sob 29 Maj 2010 11:49 Prispevkov: 199 Aktiv.: 1.09 Kraj: Domžale
|
Objavljeno: Sob Mar 24, 2012 7:58 pm Naslov sporočila: |
|
|
mkosmac hvala za odgovor.
Sedaj rabim še nekoga ki bi mi razložil timerje.  _________________ Lp Blaž
Prvi poklic na svetu je bil električar. Še preden je bog rekel naj bo luč, so oni že kable napeljevali. |
|
Nazaj na vrh |
|
 |
|