Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

H most upravljan PIC-om

[es] :: Elektronika :: Mikrokontroleri :: H most upravljan PIC-om

Strane: < .. 1 2 3 4 5 6 7 8

[ Pregleda: 22741 | Odgovora: 159 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sepa011

Član broj: 161918
Poruke: 1817
91.148.95.*



+28 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 18:30 - pre 172 meseci
Sta bre samnom?

Ja samo preneo emajl sto mi je Vladimir poslao i uz njegovu saglasnost uturio njegov broj telefona.

(vidis da sam moj zbog zecova izbriso is potpisa).
 
Odgovor na temu

grabik

Član broj: 32507
Poruke: 311
*.adsl.net.t-com.hr.



+7 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 18:51 - pre 172 meseci
Code:

pik:
    INTCON.7=0
    INTCON.4=0
    
    if INTCON.1 THEN brojac=brojac+1
    INTCON.1=0
    
    INTCON.7=1
    INTCON.4=1
    
    
   RESUME   


Nisam nesto na ti sa basicom ali koliko vidim ovo ukljucivanje-iskljucivanje globalnog interapta i eksternog interapta u interapt rutini je nepotrebno.

Code:

pik:
        
    if INTCON.1 THEN brojac=brojac+1
    INTCON.1=0
         
   RESUME   


Ovo bi trebalo da radi, globalni interapt se iskljucuje recimo upisujes u eeprom ili slicno, neki spori proces koji ne bi trebalo prekidati.

ili ako koristis samo taj jedan interapt mozes i if da izbacis
Code:

pik:
        
    brojac=brojac+1
    INTCON.1=0
         
   RESUME   


Ostali kod koji jos koristis u picu da li je provjeren?
Kazes da kod vece brzine se ne desava nista, da li imas dobar kristal i preporucenu velicinu kondenzatora za tu frekvenciju. Moguce da motor pravi smetnje i pic se zaglupi. Kako ti je pic spojen, kolika je duzina vodova napajanja?
Takodje sa enkodera bi trebala cista cetvrtka da dolazi na ulaz, recimo kod pritiska na mehanicki prekidac imas u trajanju od nekoliko ms i nekoliko desetaka ili cak i vise impulsa.

 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 19:59 - pre 172 meseci
dok nisam imao interapt, samo if, kristal 20 MHz je bez problema radio
kako sam ubacio int. neće ni da mrdne

napajanje pica, siguran sam da je dobro, maksimalno kratki kablobi, imam jedan blok 100n što bliže nožicama VDD i VSS


ali kao što rekoh bogdanu,meni i nije toliko bitna velika rezolucija tako da zadovoljava niža frek. pa nebih u ovom trenutku da patim piconju

a evo koda koji trenutno fercera,..

Code:
 on interrupt goto pik    'pik je labela 
  DEFINE OSC 12           'kristal 12 MHz
  INTCON.7=1              'dozvola za sve prekide
  INTCON.4=1              'dozvola za prekid na RB.0 
  OPTION_REG.6 = 1        'rastuća ivica
  trisb.0=1     
Sp var byte        'promenljiva za PWM
brojac var word    'promenljiva za brojac impolsa sa enkodera


ns var bit         'novo stanje tastera Up          'velicina promenljive
ss var bit         'staro stanje tastera Up
nnss var bit       'novo stanje tastera Down
ssss var bit       'staro stanje tastera Down

'******************** imenovanje pinova **********************


SYMBOL and2=portb.6   'and2                              
symbol h1=portb.4     'izlaz pwm
symbol and1=portb.5   'and1
symbol br=portb.0     'interapt          
symbol Tp=porta.2     'taster plus
symbol Tm=porta.3     'taster minus

'******************* ***********************
INPUT br         
input tp              
input tm
output and2
output h1
output and1

 
              
'***********************************************************

ss=tp     'taster nije stisnut pa ce ss biti 1
ssss=tm   'taster nije stisnut pa ce ssss biti 1
sp=5      'promenljiva sa 5 polazno stanje


 
brojac=0
and1=1
and2=0

'********************* glavni program ******************************************
pocetak:  'labela

ns=tp     'moguce novo stanje tastera
nnss=tm   'moguce novo stanje tastera

 
if ns<ss and sp<250 then   'ispituje stanje tastera i velicinu promenljive
sp=sp+5                  'ukoliko su uslovi ispunjeni uvecava promenljivu za 5
  endif


if nnss<ssss and sp>5 then 'isto kao prethodno
sp=sp-5                     'isto,..
  endif
                      

pwm h1,sp,10                'PWM rutina.......h1 pin na kom je signal 
                                             'Sp je promenljiva
                                             '10 je broj ciklusa,..
                                             
'*********************** brojac ******************************************                                            
  
if brojac=100 then        'ako je dostigao 100 skok na vrh
goto vrh
  endif
 
ss=ns       'za sada ignorisem  
ssss=nnss   'za sada ignorisem

goto pocetak

'******** potprogram **************************************

vrh:  
    
    toggle and1         'promena stanja pina 
    toggle and2
    
    brojac=0
               'vracanje brojaca na nulu 
    goto pocetak
   DISABLE
pik:
    INTCON.7=0    'zabrana svih prekida dok se trenutni obradi
    
    
                                       'ako je detektovana promena na pinu RB.0
    if INTCON.1=1 THEN brojac=brojac+1 'uvecaj brojac za 1
    INTCON.1=0                         'obrisan fleg 
    
    INTCON.7=1                         'omoguceni svi prekidi
    INTCON.4=1                         'omogucen prekid na RB.0
    
                                       'izlaz iz interapta
   RESUME                        

                                                                           
end




1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 21:16 - pre 172 meseci
grabik ti je dao vrlo bitan info - za cistu cetvrku sa enkodera. el imas osciloskop da pogledas sta je na ulazu b0? '84 ima "obicne" ulaze (nisu schmitt trigger) tako da moras da koristis hw debounce ili externi schmitt trigger (ja volem 74HCT14 schmitt trigger invertor na primer) tako da izbacis to kao problem. mozes i drugacije da odradis debounce. zakacio sam ti kako to ja radim (ne znaci uopste da je idealno resenje - verovatno ce grabik ili scepa moci da daju neko bolje resenje :D )


Prikačeni fajlovi
 
Odgovor na temu

grabik

Član broj: 32507
Poruke: 311
*.adsl.net.t-com.hr.



+7 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 21:47 - pre 172 meseci
Citat:
lm741: dok nisam imao interapt, samo if, kristal 20 MHz je bez problema radio
kako sam ubacio int. neće ni da mrdne

Code:
 on interrupt goto pik    'pik je labela 

DEFINE OSC 12           'kristal 12 MHz

symbol br=portb.0     'interapt          

INPUT br         

if brojac=100 then        'ako je dostigao 100 skok na vrh
                                                                           
end



Kod koji sam ostavio a koji je sporan, nemas delay ili nesto slicno zasto ti treba definiranje kristala?


***************************
symbol br=portb.0 'interapt
INPUT br
***************************
Za interapt ti to ne treba, on radi hardverski, znaci pin je ulazni ukljucis interapt i to treba da radi.
Ono prije sto sam rekao za interapt, ne iskljucujes interapt dok je u interapt rutini to moguce vodi isto problemima.


Takodje ovakvi djelovi koda mogu biti problematicni "if brojac=100 then" , ovo trosi vise procesorskog vremena od recimo if brojac>99 then

Tvoj interapt radi to vrlo brzo a glavna rutina to radi sporije i sta se desava, ti recimo provjeravas brojac kod vrjednosti od 95 pa 102 i sta se desava tvoj program se nikad ne izvrsava.

Znaci ovakve linije prepravljas u if brojac>99 then , ucinak je isti ali se sada izvrsava kod u glavnoj petlji.

Takodje kod ukljucenja interapta moguce da imas interapte zbog smetnji i PIC se smrzne jer prakticno stalno ulazi i izlazi iz interapta.

Probaj prepraviti ove linije pa javi sta se desava.

 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 22:02 - pre 172 meseci
> '84 ima "obicne" ulaze (nisu schmitt trigger) tako da moras da koristis hw debounce ili externi schmitt trigger

Ne mora. RB0 ulaz kod '84 je schmitt trigger SAMO kada se koristi kao interapt. RA4 je to uvek, pa je bolje njega koristiti za proveru bez interapta.
 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 22:21 - pre 172 meseci
tačno je tako,...
uradio sam kako si rekao i sad mi i pri max. broju obrtaja registruje inpulse sa enkodera sa 400 proreza tj 80 inpulsa po krugu,...ooooo bogo moj,...
ovo je sada ono pravo i sada mi je mnogo draži zato što znam da radi ok.
a za brzine koje mi trebaju radiće i više no odlično

@bogdane ja sam prilikom pravljenja tablice istine posmatrao izlazni signal na enkoderu i čista je četvrtka
nešto me sećanje možda vara ali ovih dana puno tog sam pročitao i mislim da se spominje da RB.0 kada se konfiguriše kao ulaz da ima osobine šmit okidača
moram proveriti

pa ljudi, ovo je kanda sa ovim delom oko interapta za sada završeno ali ne i krej pisanja mog programa i sigurno da nije kraj mojim problemima kada ću vam se sigurno i obratiti,....hvala vam jako,jako puno



1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 22:26 - pre 172 meseci
@stojan, hm, mozda na ovom "novom nabudzenom" ... ako se ja dobro secam, original nije imao schmitt nigde ... mada, toliko sam davno prestao doticni da koristim da sam mozda pomesao

@lm .. da da .. evo sad gledam datasheet .. kaze da je schmitt kada se koristi kao interrupt ... gotovo sam siguran da nije tako bilo, al uopste nije bitno .. bitno da je ovaj novi schmitt sto znaci da imas osnovni nivo debouce-a

@grabik, odlican ulov za =100 :)
 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 22:27 - pre 172 meseci
zdravo Stojane

da i u tvom uputstvu za pic 16f84 , pročitao sam tako nešto, jeste



1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 22:31 - pre 172 meseci
@bogdane pa kažem ja tebi da je ovaj piconja ažbaha,..ha


@grabik,..zaboravih da kažem da je takt ostao na 12 MHz,..probaću i to,..
1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om13.01.2010. u 23:13 - pre 172 meseci
jok, neće da radi kristal od 20 MHz, možda je krepo a nemam drugi, ali ko_ga šiša, može piconja lagano i na 12-tici,....mi lale nežurimo nigdi,...
1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
109.93.43.*



+321 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 03:09 - pre 172 meseci
@ lm741
Ovih dana sam u velikoj gužvi pa ne stižem da se uključim niit da pratim pažljivo, ali jedna stvar mi je zapela za oko, a to je ovaj deo programa, tj. interapt rutina koju si napisao:

Code:

pik:
    INTCON.7=0    'zabrana svih prekida dok se trenutni obradi
    
    
                                       'ako je detektovana promena na pinu RB.0
    if INTCON.1=1 THEN brojac=brojac+1 'uvecaj brojac za 1
    INTCON.1=0                         'obrisan fleg 
    
    INTCON.7=1                         'omoguceni svi prekidi
    INTCON.4=1                         'omogucen prekid na RB.0
    
                                       'izlaz iz interapta
   RESUME       


Kao prvo, nema potrebe za prvom naredbom jer to PIC automatski odradi kada nastupi interapt.
Kao drugo, ne vidim da na početku interapt rutine čuvaš, a na kraju vraćaš sadržaj bitnih registara.
Kao treće, izlaz iz interapt rutine je OBAVEZNO sa ASM naredom retfie (a ne RESUME) jer ona, pored povratka ujedno setuje GIE bit. To sam ti već rekao u ovom postu:
http://www.elitesecurity.org/p2484774
Znači, ovo što sam ti rekao je VEOMA VAŽNO za ispravan rad interapta i to što ti rutina radi kako treba u ovom slučaju je čista sreća, a radi kako treba jer se u njoj ne menja sadržaj ni W ni STATUS registra, a ti sam vodiš računa o GIE bitu. Da se ne menja W registar to je sasvim jasno, a status registar jedino bi mogla da promeni naredba uvećanja promenljive "brojac" kada predje sa 255 na 0, ali to se nikada ne dešava jer se u glavnom programu ne dozvoljava da ona predje 100. Kada bi se iz te rutine izbacile neke nepotrebne naredbe, izgledala bi kao da ju je pisao neko ko je svestan da se važni registri ne menjaju i zato ih ne čuva (lalo, bez uvrede :) ). Znači, u ovom slučaju int. rutina bi mogla da se napiše ovako:

Code:

pik:
  brojac=brojac + 1
  intcon.1=0 
  @ retfie


Ispitivanje intcon.1 bita ti ne treba ako su ti ostali izvori interapta isključeni jer je tada samo taj bit setovan, a čini mi se da ne koristiš drugi izvor.

Pozdrav.
Sinisha
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
109.93.43.*



+321 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 03:33 - pre 172 meseci
Citat:
lm741: jok, neće da radi kristal od 20 MHz, možda je krepo a nemam drugi, ali ko_ga šiša, može piconja lagano i na 12-tici,....mi lale nežurimo nigdi,...

F84 je fabrički deklarisan do 10 MHz i sve preko toga kada radi stabilno je čist ćar :).

Pozdrav.
Sinisha
 
Odgovor na temu

grabik

Član broj: 32507
Poruke: 311
*.adsl.net.t-com.hr.



+7 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 06:23 - pre 172 meseci
Citat:
lm741: tačno je tako,...
uradio sam kako si rekao i sad mi i pri max. broju obrtaja registruje inpulse sa enkodera sa 400 proreza tj 80 inpulsa po krugu,...ooooo bogo moj,...
ovo je sada ono pravo i sada mi je mnogo draži zato što znam da radi ok.
a za brzine koje mi trebaju radiće i više no odlično

@bogdane ja sam prilikom pravljenja tablice istine posmatrao izlazni signal na enkoderu i čista je četvrtka
nešto me sećanje možda vara ali ovih dana puno tog sam pročitao i mislim da se spominje da RB.0 kada se konfiguriše kao ulaz da ima osobine šmit okidača
moram proveriti

pa ljudi, ovo je kanda sa ovim delom oko interapta za sada završeno ali ne i krej pisanja mog programa i sigurno da nije kraj mojim problemima kada ću vam se sigurno i obratiti,....hvala vam jako,jako puno


Malo popravi program kako su ti ljudi koji pisu u basicu rekli.

I sad samo upotrebi PAUSE ili DELAY ili kako se vec zove u basicu i dodji da se zalis da ne radi kako treba , onda cu te usranom motkom:)

 
Odgovor na temu

grabik

Član broj: 32507
Poruke: 311
*.adsl.net.t-com.hr.



+7 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 06:37 - pre 172 meseci
Kako ne radim sa basicom ne znam tocno kako on obradjuje interapt, C programi sa kojima sam radio rade pamcenje W, STATUS registra itd. Onaj koji pise program treba samo da izbrise zastavicu interapta ili ako ima vise izvora interapta da odredi koji interapt je aktivan.

Ovih dana pokusavam nesto sa atmelima i u njihovom avr gcc ne treba brisati cak ni zastavicu interapta, kompajler to sam odradi.

Ako ovaj basic ne cuva sadrzaj registara kod interapta mislim da ne vrijedi sa njim ni da pocinju raditi oni koji se uce programiranju u nekom visem programskom jeziku, kao alternativu imaju puno boljih kompajlera i laksih kompajlera za ucenje.

 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.47.*



+321 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 11:25 - pre 172 meseci
Citat:
grabik:Ako ovaj basic ne cuva sadrzaj registara kod interapta mislim da ne vrijedi sa njim ni da pocinju raditi oni koji se uce programiranju u nekom visem programskom jeziku, kao alternativu imaju puno boljih kompajlera i laksih kompajlera za ucenje.

Čuva sadržaj registra ako PIC ima preko 2K programske memorije, ali je opet potrebno "peške" vratiti njihov sadžaj pre povratka. Čuva W, STATUS i PCLATH, ali je neophodno definisati te promenljive i to na adekvatan način koji je, kao i sve što sam do sada rekao na tu temu, detaljno objašnjeno u uputstvu.

@ lm741
Poželjno je da interapt rutina bude na početku programa, odmah posle deklaracije promenljivih i DEFINE naredbi.

Pozdrav.
Sinisha
 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 13:58 - pre 172 meseci
uf,...evo me,zaglavio sam na nekom silosu,..
čitam vaše odgovore i kontam sve i da napomenem da ako i nisam prokomentarisao svaki vaš odgovor to neznači da sam ga ignorisao a i nebi imalo smisla ali zato se na mnoge vaše odgovore vraćam više puta, i svaki put mi je jasnija slika i priča o interaptu,...
da se ne zahvaljujem pojedinačno,...dugačka je lista
hvala vam puno, puno na volji i strpljenju da mi pomognete
da potsetim da ću kad sve bude gotovo, sve okačiti da se vidi

1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

lm741
VOJVODINA

Član broj: 167617
Poruke: 672
*.mynsn.net.



+67 Profil

icon Re: H most upravljan PIC-om14.01.2010. u 22:51 - pre 172 meseci
Code:
    DISABLE
pik:                                   
    brojac=brojac+1 'uvecaj brojac za 1
    INTCON.1=0      'obrisan fleg 
@ retfie                 ;izlaz iz interapta     


@rsiniša
probao sam kako si rekao

Citat:
@ lm741
Poželjno je da interapt rutina bude na početku programa, odmah posle deklaracije promenljivih i DEFINE naredbi.


zaglavi mi fetove, ampermetar zakuca,obori napon

kada vratim dole gde je i bio radi ok. ali nevidim nikakvu promenu za razliku od napisanog kako mi je grabik rekao

Code:
   DISABLE
pik:    
                                       'ako je detektovana promena na pinu RB.0
    if INTCON.1=1 THEN brojac=brojac+1 'uvecaj brojac za 1
    INTCON.1=0                         'obrisan fleg 
    
   RESUME    





1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: H most upravljan PIC-om15.01.2010. u 00:13 - pre 172 meseci
Citat:
grabik
Ovih dana pokusavam nesto sa atmelima i u njihovom avr gcc ne treba brisati cak ni zastavicu interapta, kompajler to sam odradi.


na pic-u zavisi od kompajlera do kompajlera ... (pricam o c-u, ove basic-e ne trosim) .. negde moras da ocistis fleg sam, negde ne, u nekima (npr CSC C) kompajler sam "simulira" da imas za svaki interapt zaseban vektor tako da ti pravis posebno funkciju za tmr0, posebno za tmr1, posebno za ext a kompajler odradi "najbrzi moguci kod" pretpostavljajuci sta si radio, pritom na 16F koji ima samo jedan vektor ce da radi to sa branch-om a na nekom vecem picu sa vise interapt vektora ce ako moze da podesi tako da se rokaju direkt funkcije .. svejedno - ti ne moras ni o cemu da brines .. na csc c ne moras na primer da brises flag, na microchip c-u moras ...

Citat:

Ako ovaj basic ne cuva sadrzaj registara kod interapta mislim da ne vrijedi sa njim ni da pocinju raditi oni koji se uce programiranju u nekom visem programskom jeziku, kao alternativu imaju puno boljih kompajlera i laksih kompajlera za ucenje.


nikad nisam skapirao zasto iko koristi basic, al se trudim da to precutim :)
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
217.169.223.*



+10 Profil

icon Re: H most upravljan PIC-om15.01.2010. u 00:31 - pre 172 meseci
Na atmelu (avr) se hardverski iskljuci interapt u statusnom registru pri izvrsenju skoka i na kraju pri izlasku se automatski setuje, dakle nevezano za vrstu kompajlera.


Citat:
bogdan.kecman: nikad nisam skapirao zasto iko koristi basic, al se trudim da to precutim :)


Ni ja ne kapiram zasto iko koristi pic kontrolere ;)
__*__
*___*
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: H most upravljan PIC-om

Strane: < .. 1 2 3 4 5 6 7 8

[ Pregleda: 22741 | Odgovora: 159 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.