[ milan kovacevic 85 @ 23.08.2013. 19:53 ] @
Dali neko moze da mi objasni kako se koristi interap pin za pic12f683,treba mi radi sledeceg non stop da nadgleda jedan pin i cim se desi promena na tom pinu da skoci na zadatu labelu,kucam u pbp-u |
[ milan kovacevic 85 @ 23.08.2013. 19:53 ] @
[ rsinisa @ 23.08.2013. 19:59 ] @
Pročitaj u tehničkim podacima za taj kontroler sve oko interapta, zatim u PBP uputstvu takodje sve o interaptima i reci šta ti tačno nije jasno pa ćemo da pomognemo gde zapne.
Pozdrav. Sinisha [ milan kovacevic 85 @ 23.08.2013. 20:52 ] @
Jasan mi je princip rada interapta dali mi samo neko moze dati primer za pic 12f683.nasao sam i primer i iscito sve sto si ti pisao za interapt al ne znam kako da definisem za ovaj pic sve komande razumem,dali mi neko ovaj primer moze prilagoditi picu 12f683
Code: 01 ' Name : ONINT.pbp 02 ' Compiler : PICBASIC PRO Compiler 2.6 03 ' Assembler : PM or MPASM 04 ' Target PIC : 12F, 16F, 18F 05 ' Hardware : Non specific 06 ' Oscillator : internal or external 07 ' Keywords : ON INTERRUPT 08 ' Description : PICBASIC PRO program to demonstrate use of On Interrupt 09 ' Interrupts in BASIC. Turn LED on. Interrupt on PORTB.0 (INTE) turns LED off. 10 ' Program waits .5 seconds and turns LED back on. 11 ' 12 13 led Var PORTB.7 14 15 OPTION_REG = $7f ' Enable PORTB pullups 16 17 On Interrupt Goto myint ' Define interrupt handler 18 INTCON = $90 ' Enable INTE interrupt 19 20 mainloop: 21 High led ' Turn LED on 22 Goto mainloop ' Do it forever 23 24 ' Interrupt handler 25 Disable ' No interrupts past this point 26 myint: 27 Low led ' If we get here, turn LED off 28 Pause 500 ' Wait .5 seconds 29 INTCON.1 = 0 ' Clear interrupt flag 30 Resume ' Return to main program 31 Enable 32 33 End [ ZAS011 @ 23.08.2013. 21:08 ] @
Pročitaj još koji put Datasheet.
Džabe da ti neko "prilagođava" primer za pojedini PIC. Prilagođavanje za određeni mikrokontroler je tesno vezano sa poznavanjem istog, a isti se upoznaje čitajući Datasheet. [ milan kovacevic 85 @ 23.08.2013. 21:17 ] @
A mucim se vec par dana i nece me nikako sad mi je hica za sutra najdalje prekosutra moram napisati to sto sama zamislio zato sam zamolio dali mi neko moze dati primer
[ YU2AX @ 24.08.2013. 02:22 ] @
Ma sasvim je dobro to sto si napisao, uz malu doradu radice sasvim ok.
Ono na sta treba da obratis paznju jeste TRIS I/O registar gde ces definisati ulazni (na kome se desava intrerapt) odnosno izlazni pin (tvoj pic nema portove vec GP I/O), kao i INTCON, CMCON0 i ANSEL registre. Uz to, kada se interapt dogodi osim ciscenja flega trebao bi i privremeno da onemogucis novi interapt dok ne izadjes iz interapt rutine inace mozes da se zaglavis. Procitaj detaljno datasheet o stvarima koje sam ti nabrojao, preradi par redova tvog programa i radice. [ milan kovacevic 85 @ 25.08.2013. 09:30 ] @
Nece me i nece zasto ovo neradi cak nece ni ledic da upali
Code: '---------------------------OSIGURACI-------------------------------- #CONFIG __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _BOD_OFF & _CP_OFF & _PWRTE_ON #ENDCONFIG DEFINE OSC 4 '-------------------------- PDESAVANJA ------------------------------- ANSEL = 30 WPU = $37 CMCON0 = 7 ' Analog comparators off TRISIO = %000100 'GPIO.2 ULAZ '---------------------------------------------------------- 'DEFINMISANJE PORTOVA symbol led = GPIO.1 LOW led ''interapt '************************************************************** ' OPTION_REG = $7f ' Enable PORTB pullups OPTION_REG = $d5 ' Set TMR0 configuration INTCON = $a0 On Interrupt Goto myint ' Define interrupt handler 'INTCON = $90 ' Enable INTE interrupt mainloop: High led ' Turn LED on Goto mainloop ' Do it forever ' Interrupt handler Disable ' No interrupts past this point myint: Low led ' If we get here, turn LED off Pause 500 ' Wait .5 seconds INTCON.1 = 0 ' Clear interrupt flag Resume ' Return to main program Enable End [ YU2AX @ 25.08.2013. 11:29 ] @
Ne vredi ako nasumice deklarises registre bez da promislis kako to afektira celi program.
![]() Komanda DISABLE na tom mestu nikada ne biva izvrsena. Umesto DISABLE/ENABLE koristi INTCON.GIE = 0 na pocetku interapt rutine, a INTCON.GIE = 1 u glavnoj petlji. [ rsinisa @ 27.08.2013. 12:18 ] @
Da li ES ima neku vrstu leksičke kontrole napisanog? Ova poruka prolazi, a ono što sam napisao vezano za temu neće. Ne znam o čemu se radi, nisam koristio nikakve ružne reči, časna pionirska. Ima li neko ideju u čemu je problem?
Sada ću da probam da ubacujem jednu po jednu rečenicu da vidim gde zapinje tačno. Pozdrav. Sinisha Problem je u prvoj rečenici koju ne mogu da citiram jer je ES jednostavno ne prihvata. Sad ću da testiram malo ... Zanimljivo, zapelo je na reči "U P O R N O", nju neće da prihvati ... Dakle, prva rečenica sledeće poruke treba da glasi: Ne znam zašto u p o r n o izbegavaš čitanje original uputstava i tehničkih podataka kada ti je to najbolji i najbrži način da rešiš bilo koji problem. Hm, možda je stvar u osnovi te reči, "P O R N O", možda ES ipak ima neki filter za reči koji, izgleda, nije dobro podešen. Da, kad napišem P O R N O, takodje ne prihvata. [Ovu poruku je menjao rsinisa dana 27.08.2013. u 13:34 GMT+1] [ rsinisa @ 27.08.2013. 12:20 ] @
Ne znam zašto u p o r n o izbegavaš čitanje original uputstava i tehničkih podataka kada ti je to najbolji i najbrži način da rešiš bilo koji problem.
Pogledaj poglavlje 6.1 u PBP uputstvu i već će ti mnogo toga biti jasnije. Zatim pogledaj tehničke podatke za taj PIC i to poglavlje o interaptima, a zatim pogledaj i opise i funkcije svih registara koji učestvuju u tom procesu. I to ćeš sve da odradiš za 1 dan, a čekanje da ti neko reši problem trajaće mnogo više jer ti prvo ni ne znaš tačno šta da pitaš pa dok se sve razjasni, ode 3 dana, a ti i dalje nisi svestan zašto je to tako napisano. Ovo shvati krajnje dobronamerno jer ćeš tako najmanje vremena da izgubiš, a usput ćeš da naučiš mnogo toga. I da, ne preporučujem upotrebu ON INTERRUPT načina za obradu interapta, nauči kako da u asembleru odradiš interapte (PBP i asembler se odlično slažu) i imaćeš mnogo kvalitetniji program. Naravno, možeš prvo da se edukuješ koristeći ON INTERRUPT, ali gledaj da što pre zaboraviš tu naredbu. Pozdrav. Sinisha P.S. Čitati, čitati i samo čitati. [Ovu poruku je menjao rsinisa dana 27.08.2013. u 13:40 GMT+1] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|