skraceni kurs ucenja picbasica

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Batali simulacije...
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: skraceni kurs ucenja picbasica

Post by InTheStillOfTheNight »

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.
Da si "Zamijenio" one 2 navedene linije programa, to bi mi imalo smisla...
Š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
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

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...
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

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
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: skraceni kurs ucenja picbasica

Post by InTheStillOfTheNight »

@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...
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

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
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

Trazim previse sigurno ali kako se koristi DT_INT i ReEnter i uopste taj mnogo polji interrapt
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

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
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Samo procitaj na sajtu sta pise, nemozes izbacitati sistem interapta kako ti padne na pamet, ako hoces da ga koristis. I moras koristiti MPASM.
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

pedja089 wrote:Samo procitaj na sajtu sta pise, nemozes izbacitati sistem interapta kako ti padne na pamet, ako hoces da ga koristis.
Ne razumem sta si pokusao da mi kazes.Ja sam napisao kod u PBP i kompajler mi je prijavio gresku a ne (mpasm)asembler.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

'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...
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

Bas sam prekopirao kod sa sajta i nece da se kompajlira.Iskinuo sam i smetio dve datoteke.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Ja taj interapt koristim bez ikakvih problema...
Ne znam jesi ranije stavljao greske koje izbacuje kompajler, ali bilo bi od koristi da ih stavis...
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

Image

Sta da uradim da bi mi radilo i kako moze tebi da radi a meni ne :)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: skraceni kurs ucenja picbasica

Post by pedja089 »

Samo klikni na dtint sa leve strane u include sekciji, i otkomentarisi sta ti pise dole...
User avatar
andrejevica
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 07-03-2011, 18:06

Re: skraceni kurs ucenja picbasica

Post by andrejevica »

Hvala puno
User avatar
Momak
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 304
Joined: 13-03-2011, 01:07

Re: skraceni kurs ucenja picbasica

Post by Momak »

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. :)
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.
User avatar
VooDooX
Pocetnik na forumu
Pocetnik na forumu
Posts: 25
Joined: 09-10-2011, 19:57
Location: Slovenia

Re: skraceni kurs ucenja picbasica

Post by VooDooX »

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!
pavle1993
Posts: 6
Joined: 11-03-2010, 16:56

Re: skraceni kurs ucenja picbasica

Post by pavle1993 »

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....
User avatar
Momak
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 304
Joined: 13-03-2011, 01:07

Re: skraceni kurs ucenja picbasica

Post by Momak »

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.
Post Reply