skraceni kurs ucenja picbasica
Moderators: pedja089, stojke369, [eDo], trax
Re: skraceni kurs ucenja picbasica
Batali simulacije...
- InTheStillOfTheNight
- Odlično uznapredovao
- Posts: 938
- Joined: 01-06-2006, 17:54
- Location: Zagreb
Re: skraceni kurs ucenja picbasica
Da si "Zamijenio" one 2 navedene linije programa, to bi mi imalo smisla...andrejevica wrote:Skinuo sam disable i enable i opet ista greska.greska se pojavljuje samo kada dovedem signal na rb0. Neka mi neko pomogne ako moze,stvarno ne znam zasto ne radi.
Što za tebe znači da si nešto skinuo?
Kužiš li barem zašto sam ti napisao samo tvoje 2 linije programa i direktno napisao jednu krešku koju si napravio... Basic ne znam, kao niti PIC, no ne možeš gasiti globalne prekide prije poziva ISR rutine. Ako main loop vrtiš sa goto naredbom onda bi globalne prekide trebao ugasiti nakon ulaska u ISR, a ti ih, koliko kužim tvoj program, ne gasiš nikada...
InTheStillOfTheNight
Re: skraceni kurs ucenja picbasica
Mozes gasiti pre ISR, cak i mora...
To je do basica... To je ostalo od stare verzije gde se interapt realizovao tako sto posle svake basic naredbe stoji pozivanje provere interapt registara.
Nije hardverski interapt nego je softverski da tako nazovemo.
A na lokaziji 8(Int vektor) se nalazi samo naredba return...
Tako da prakticno ako stavis pause 1000, ili nesto slicno nista od tvog interapta...
Da bi se to izbeglo onda je potrebno koristiti pravi hardverski interapt.
Ali tu nastaje problem, jer pbp nema direktno podrzano cuvanje i vracanje svih sistemskih registara R0,R1 itd...
Zato je napisan DT_INT i ReEnter, koji pri ulasku u interapt cuva sve, i pri izlazku vraca sve...
Opet ovo ima svoje prednosti i mane, recimo kad se radi sa XLP ili uopste LP ili gde je potreban veoma brza ISR, bez problema se napise u ASM. Tako da nema nikakvog gubljenja vremena na sistemskim promenljivama...
U prevodu ako hoces da koristis pravi interapt moras poznavati procesor, ili mozes koristiti ON INT. i da ne razmisljas ni ocemu osim da li ce to da radi...
To je do basica... To je ostalo od stare verzije gde se interapt realizovao tako sto posle svake basic naredbe stoji pozivanje provere interapt registara.
Nije hardverski interapt nego je softverski da tako nazovemo.
A na lokaziji 8(Int vektor) se nalazi samo naredba return...
Tako da prakticno ako stavis pause 1000, ili nesto slicno nista od tvog interapta...
Da bi se to izbeglo onda je potrebno koristiti pravi hardverski interapt.
Ali tu nastaje problem, jer pbp nema direktno podrzano cuvanje i vracanje svih sistemskih registara R0,R1 itd...
Zato je napisan DT_INT i ReEnter, koji pri ulasku u interapt cuva sve, i pri izlazku vraca sve...
Opet ovo ima svoje prednosti i mane, recimo kad se radi sa XLP ili uopste LP ili gde je potreban veoma brza ISR, bez problema se napise u ASM. Tako da nema nikakvog gubljenja vremena na sistemskim promenljivama...
U prevodu ako hoces da koristis pravi interapt moras poznavati procesor, ili mozes koristiti ON INT. i da ne razmisljas ni ocemu osim da li ce to da radi...
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Da li imate mozda pri ruci neki kod koji radi i koji bi meni posluzio da mi meri vreme pomocu interrapta i tmr1 izmedju dva pulsa.Puls ide do 167Hz
- InTheStillOfTheNight
- Odlično uznapredovao
- Posts: 938
- Joined: 01-06-2006, 17:54
- Location: Zagreb
Re: skraceni kurs ucenja picbasica
@pedja to mi nema nikakvog smisla jer ako nešto nije hardware interrupt onda i nije interrupt jer može biti obična servisna funkcija. Zapravo tu se i radi o običnoj sesvisnoj funkciji koja provjerava FLAG ISR-a, te na razini software-a preusmjerava PC na rutinu... Zato mi je to bilo nelogično napisano u Basicu jer uvijek koristim hardverski interrupt, što bi značilo da se globalni gase odmah nakon skoka sa vectora. (Softverski).
Još jedna stvar mi je onda tu nejasna:
Ako on ne poziva niti jednu rutinu, onda mu greška može biti samo na pozivu ISR-a jer to bi bilo jedini realni stack overflow.
I naravno druga opcija, a to je kad mu nije zadovoljen niti jedan IF u ISR-u onda neće naletiti na return, što bi značilo da se ne vraća iz ISR-a i ne oslobađa stack. No u tom slučaju mu program završava na END-u, pa bi to compiler barem trebao zaustaviti sa beskonačnom petljom ili resetirati...
Još jedna stvar mi je onda tu nejasna:
Ako on ne poziva niti jednu rutinu, onda mu greška može biti samo na pozivu ISR-a jer to bi bilo jedini realni stack overflow.
I naravno druga opcija, a to je kad mu nije zadovoljen niti jedan IF u ISR-u onda neće naletiti na return, što bi značilo da se ne vraća iz ISR-a i ne oslobađa stack. No u tom slučaju mu program završava na END-u, pa bi to compiler barem trebao zaustaviti sa beskonačnom petljom ili resetirati...
InTheStillOfTheNight
Re: skraceni kurs ucenja picbasica
Potpuno si u pravu za naredbu on int. U pravu si za taj resume, on mora da stoji na kraju ISR...
Mada meni kod pica najobicnije stvari u simulaciji nisu prolazile. Recimo optionreg.7=0 samo da ukljucim pull up na portu B, nije bilo sanse da radi. Zato kazem batali simulaciju.
Inace PBP sam cisti WDT tako da to nije problem.
Pravi Interapt hardverski je odradio Darrel Taylor, clan foruma picbasic i koliko mi se cini i tima koji pravi pbp.
http://darreltaylor.com/DT_INTS-14/intro.html
Mada meni kod pica najobicnije stvari u simulaciji nisu prolazile. Recimo optionreg.7=0 samo da ukljucim pull up na portu B, nije bilo sanse da radi. Zato kazem batali simulaciju.
Inace PBP sam cisti WDT tako da to nije problem.
Pravi Interapt hardverski je odradio Darrel Taylor, clan foruma picbasic i koliko mi se cini i tima koji pravi pbp.
http://darreltaylor.com/DT_INTS-14/intro.html
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Trazim previse sigurno ali kako se koristi DT_INT i ReEnter i uopste taj mnogo polji interrapt
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Nasao sam na netu kako radi ReEnter.Nasao sam i ovaj kod koji nece da se kompajlira ali ne znam zasto,mozda vi znate zasto nece.Molim vas da prekopirate kod u vas PBP i vidite koji su error-i.16F628
Code: Select all
CMCON = 7 ' PortA = digital I/O
'INCLUDE "DT_INTS-14.bas" ; Base Interrupt System
INCLUDE "ReEnterPBP.bas" ; Include if using PBP interrupts
LED1 VAR PORTA.1
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler RBC_INT, _ToggleLED1, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
@ INT_ENABLE RBC_INT ; enable external (INT) interrupts
Main:
@ sleep
GOTO Main
'---[INT - interrupt handler]---------------------------------------------------
ToggleLED1:
low LED1
pause 50
high led1
pause 50
@ INT_RETURN
Re: skraceni kurs ucenja picbasica
Samo procitaj na sajtu sta pise, nemozes izbacitati sistem interapta kako ti padne na pamet, ako hoces da ga koristis. I moras koristiti MPASM.
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Ne razumem sta si pokusao da mi kazes.Ja sam napisao kod u PBP i kompajler mi je prijavio gresku a ne (mpasm)asembler.pedja089 wrote:Samo procitaj na sajtu sta pise, nemozes izbacitati sistem interapta kako ti padne na pamet, ako hoces da ga koristis.
Re: skraceni kurs ucenja picbasica
'INCLUDE "DT_INTS-14.bas" ; Base Interrupt System
Zasto ti je to zakomentarisao? Kako mozes da koristis nesto sto si izbacio?
Zasto ne uzmes primer sa sajta?
Trebas samo pogledati sta se nalazi na linku, procitati uputstvo i prekopirati kod sa sajta...
A usput procitaj i pravila...
Zasto ti je to zakomentarisao? Kako mozes da koristis nesto sto si izbacio?
Zasto ne uzmes primer sa sajta?
Trebas samo pogledati sta se nalazi na linku, procitati uputstvo i prekopirati kod sa sajta...
A usput procitaj i pravila...
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Bas sam prekopirao kod sa sajta i nece da se kompajlira.Iskinuo sam i smetio dve datoteke.
Re: skraceni kurs ucenja picbasica
Ja taj interapt koristim bez ikakvih problema...
Ne znam jesi ranije stavljao greske koje izbacuje kompajler, ali bilo bi od koristi da ih stavis...
Ne znam jesi ranije stavljao greske koje izbacuje kompajler, ali bilo bi od koristi da ih stavis...
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Samo klikni na dtint sa leve strane u include sekciji, i otkomentarisi sta ti pise dole...
- andrejevica
- Pocetnik na forumu
- Posts: 35
- Joined: 07-03-2011, 18:06
Re: skraceni kurs ucenja picbasica
Hvala puno
Re: skraceni kurs ucenja picbasica
Poz, ako zelim iz jednog broja da izdvojim jedinice i desetice istovremeno u drugi broj, da li to mogu napisati ovako:
broj2 = broj1 DIG 01
Hvala.
broj2 = broj1 DIG 01
Hvala.
Kad pijemo, mi se i napijemo.
Kad se napijemo, mi i zaspemo.
Kad spavamo, mi ne činimo grehe.
Ako ne činimo grehe, onda idemo u raj.
Zato i pijemo da bi otišli u raj.
Kad se napijemo, mi i zaspemo.
Kad spavamo, mi ne činimo grehe.
Ako ne činimo grehe, onda idemo u raj.
Zato i pijemo da bi otišli u raj.
Re: skraceni kurs ucenja picbasica
Zdravo decki.
Imam problem. Sam programiram u MikroC i stvar je sledeca.
Radim na jednom projektu i sad je doslo do toga da trebam eeprom ali pic kojeg koristim eeproma nema. Nemam vremena cekat 5 dana da nabavim neki serijski eeprom ali imam puno komada PIC12f675.
Mislio sam,da bi povezao 1 pic 16f1519 i 12f675 sa I2C ali nemam osciloskopa da vidim ak stvar zaista radi tako da sam kasnije odlucio za UART. I sad smo kod problema. U mikroc kad napisem software uart za 12f675 ima dovoljno prostora u romu samo za jedan uart write. Jel moze netko za foru napisat simple uart read i write za 12f675 i da mi kaze kolko zauzme roma.
pozdrav!
Imam problem. Sam programiram u MikroC i stvar je sledeca.
Radim na jednom projektu i sad je doslo do toga da trebam eeprom ali pic kojeg koristim eeproma nema. Nemam vremena cekat 5 dana da nabavim neki serijski eeprom ali imam puno komada PIC12f675.
Mislio sam,da bi povezao 1 pic 16f1519 i 12f675 sa I2C ali nemam osciloskopa da vidim ak stvar zaista radi tako da sam kasnije odlucio za UART. I sad smo kod problema. U mikroc kad napisem software uart za 12f675 ima dovoljno prostora u romu samo za jedan uart write. Jel moze netko za foru napisat simple uart read i write za 12f675 i da mi kaze kolko zauzme roma.
pozdrav!
Re: skraceni kurs ucenja picbasica
Pozdrav svima! Duže vreme pratim ovu temu i mnogo sam naucio odavde, pre nekih nedelju dana sam kupio EasyPic 6 od mikroelektronike... E tu su poceli moji problemi . Uz easypic sam dobi mikrokontroler 16f887 i nikako mi ne ide da ga isprogramiram kako treba, porta i portb me zezaju. Ako upisem program npr. samo da mi upali diode, na portud i portuc ih upali, a na portb0,1,2,3, i porta0,1,2,3 nece da ih upali... Na pocetku programa upisem TRISA = 0 i TRISB = 0 ali kada odradim simulaciju na easypicu oni ne rade... Desavalo mi se par puta da kao tinjaju diode medjutim kada malo izmenim program i upisem ga ponovo portb i porta do 4 pina se ugasi iako sam ja upisao da se upale... Posle toga sam kupio pic16f877a misleci da nesto nije uredu sa 16f887 medjutim 877 brljavi na svim pinovima... Nadam se da mi neko moze pomoci posto sam totalno poludeo ... Hvala unapred!
TRISB = 0
PORTD = %00000000
PORTC = %10000000
PORTB = 0
PORTD = 0
PORTC = 0
W1 VAR WORD
pocetak:
COUNT PORTC.7, 1000, W1
PORTB = 0
PORTC = 0
PORTD = 0
BRANCH W1,[LAB0]
LAB0:
HIGH PORTB.0
HIGH PORTB.1
HIGH PORTB.2
HIGH PORTB.3
HIGH PORTB.4
HIGH PORTD.0
HIGH PORTD.1
HIGH PORTD.2
HIGH PORTD.3
HIGH PORTD.4
HIGH PORTC.0
HIGH PORTC.4
GOTO POCETAK
Kada upisemm ovaj program na mikrokontroler on mi upali sve diode osim portb0,1,2,3....
TRISB = 0
PORTD = %00000000
PORTC = %10000000
PORTB = 0
PORTD = 0
PORTC = 0
W1 VAR WORD
pocetak:
COUNT PORTC.7, 1000, W1
PORTB = 0
PORTC = 0
PORTD = 0
BRANCH W1,[LAB0]
LAB0:
HIGH PORTB.0
HIGH PORTB.1
HIGH PORTB.2
HIGH PORTB.3
HIGH PORTB.4
HIGH PORTD.0
HIGH PORTD.1
HIGH PORTD.2
HIGH PORTD.3
HIGH PORTD.4
HIGH PORTC.0
HIGH PORTC.4
GOTO POCETAK
Kada upisemm ovaj program na mikrokontroler on mi upali sve diode osim portb0,1,2,3....
Re: skraceni kurs ucenja picbasica
cek.. kako sam ja shvatio, ti hoces program samo da ti se upale diode, tako? onda program moze biti puno jednostavniji...
Kad pijemo, mi se i napijemo.
Kad se napijemo, mi i zaspemo.
Kad spavamo, mi ne činimo grehe.
Ako ne činimo grehe, onda idemo u raj.
Zato i pijemo da bi otišli u raj.
Kad se napijemo, mi i zaspemo.
Kad spavamo, mi ne činimo grehe.
Ako ne činimo grehe, onda idemo u raj.
Zato i pijemo da bi otišli u raj.