|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
Objavljeno: Čet Jul 15, 2010 11:36 pm Naslov sporočila: PIC12F683 "Christmas Star" |
|
|
Imam težavo pri pisanju programa za sledečo "zvezdo"
Uporabljen je PIC12F683, shema je spodaj. Poskušal sem spisati kodo v ASM(z GregorN-jevo pomočjo):
Citiram: |
list p=12F683
#include <p12F683.inc>
__CONFIG _CP_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
Temp1 equ 0x21
Temp2 equ 0x22
Temp3 equ 0x23
;**********************************************************************
ORG 0x000
goto main
main
bsf STATUS,RP0 ;Prehod v banko1
movlw b'000000000' ;samo eden od primerov.....
movwf TRISIO
bcf STATUS,RP0
clrf GPIO
pon
movlw b'00110010'
movwf GPIO
call Z1
clrf GPIO
call Z1
goto pon
;***************************** ZAKASNITEV *********************************
Z1
movlw .255
movwf Temp1
movlw .100
movwf Temp2
movlw .1
movwf Temp3
Se1
decfsz Temp1
goto Se1
decfsz Temp2
goto Se1
decfsz Temp3
goto Se1
return
end
|
Problem je ta, da nikakor ne gre določiti, da bi svetila npr. samo ena led, ali samo en "krak", tako bi lahko naredil različne vzorce...Video-link(MP4).. Kakorkoli, dam kombinacije, mi sveti vedno po 3-5 LED...., kar je razvidno tudi iz spodnje Multisim sheme
Sam avtor prispevka je delal na drugačen način in sicer, da je vpisoval HEX kodo v EEPROM direktno, sam sem poskusil tudi ta način, vendar mi pri tem načinu ne deluje nič! Recimo za test, sem vnesel C3 94 65 80 00 00 7F v EEPROM, tako kot je napisano: http://www.gooligum.com.au/kits/xmasstar/XmasStar_prog.pdf (GLEJ NA KONCU PDF-ja, spisani so tudi že vsi "zvorci")
Ima kdo kak nasvet, predvsem me zanima za ta način, ki ga ima avtor, ker z ASM ne bom daleč prišel
Opis: |
Shema vezja z označenimi ledicami |
|
Velikost datoteke: |
98.63 KB |
Pogledana: |
24 krat |
|
Opis: |
|
Velikost datoteke: |
204.14 KB |
Pogledana: |
33 krat |
|
Nazadnje urejal/a mcride Pet Jul 16, 2010 7:58 am; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
SkunkyLee Član
Pridružen-a: Čet 12 Feb 2009 16:59 Prispevkov: 198 Aktiv.: 1.07 Kraj: Maribor, Ljubljana
|
Objavljeno: Pet Jul 16, 2010 12:40 am Naslov sporočila: |
|
|
Ledice imaš vezane v obliki multipleksiranja, ki se ji reče charlieplexing.
http://en.wikipedia.org/wiki/Charlieplexing
Zadeva ni tako preprosto razumljiva, jo je treba kar preštudirat... Iz sheme ugotovi, katere ledice so katere na krakih, nato pa pogruntaj, katere pine moraš vklapljati in izklapljati, da dobiš pravilno kombinacijo. Z ugibanjem ne boš prišel nikamor. Pri charlijevem multipleksiranju je zelo pomembna tri-state zmogljivost mikrokontrolerja, kar pomeni da moraš pri naslavljanju ledice spremeniti tudi I/O lastnost pina, da dobiš željen efekt. To pomeni skakanje med bankami tudi med samim izvajanjem programa. Stvar ni tako lahka, še posebej, ker je shema kar obsežna.
Začni tako, da si izpišeš ledice, ki jih rabiš prižgat (en krak). To so recimo L5, L15, L16, L18. Poglej na shemi, katere diode so to... In potem z razumevanjem charlieplexinga ugotovi, kakšno tri-state kombinacijo pinov moraš uporabiti, da čez vsako posamezno ledico spraviš dovolj toka. Ko boš znal naslavljat eno ledico, boš moral to še klasično multipleksirat, tako da boš naslovil cel krak.
Pri razumevanju si pomagaj z wikipedio in raznimi članki/tutoriali na stricu googlu, pa ne odnehaj prehitro.
Mogoče celo malo prezapleten projekt za začetnika v programiranju, ampak če boš stisnil zobe, se boš naučil veliko.
|
|
Nazaj na vrh |
|
|
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
Objavljeno: Pet Jul 16, 2010 1:11 am Naslov sporočila: |
|
|
Ammm, hvala za nasvet ,
kaj pa glede drugega načina, ki ga uporablja avtor, ko vpisuje HEX direktno v EEPROM? Ker tam so že narejene vse kombinacije:
http://www.gooligum.com.au/kits/xmasstar/XmasStar_prog.pdf (GLEJ NA KONCU PDF-ja, spisani so tudi že vsi "vzorci")
Samo se mi po vnosu v EEPROM, na vezju ničesar ne dogaja...sicer je razloženo, da je:
195=C3 (2 Hz)
94=148 ??? ponovitev vzorca 20x (128+20=148) vzorci so kot vidim le od 0-91 ??
65=101 (utrip-anje 10ms (100Hz)
80=128 (konec zanke)
00=0 (pauza,all off)
00=0 (ponovna pauza; pri 2Hz potrebujemo 2 pauzi, da je skupaj 1s)
7F=127 (konec sekvence,programa)
se pravi skupaj : C3 94 65 80 00 00 7F
to sem probal vpisovati na način, ki ga navaja avtor v EEPROM, izklopil sem PROGRAM MEMORY, da ga sproti ne "prepisujem": (na sliki sem sicer probaval nekaj drugega...)
Vendar nobena ledica ne "požmigne", sveti zgolj le ena L17 kakor se spomnim
lp, hvala še enkrat
|
|
Nazaj na vrh |
|
|
SkunkyLee Član
Pridružen-a: Čet 12 Feb 2009 16:59 Prispevkov: 198 Aktiv.: 1.07 Kraj: Maribor, Ljubljana
|
Objavljeno: Pet Jul 16, 2010 1:31 am Naslov sporočila: |
|
|
Huh, priznam, sam sem najprej videl kodo in mislil, da imaš problem predvsem z assemblerjem. Se opravičujem
Pomagat ti pa na žalost ne znam. Na prvi pogled ne vidim nič napačnega, iz izkušenj pa tudi ne morem govoriti, saj še nisem programiral le eeproma. Bo moral kakšen večji znalec priti v temo.
|
|
Nazaj na vrh |
|
|
gumby Član
Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 19.67
|
Objavljeno: Pet Jul 16, 2010 5:05 am Naslov sporočila: |
|
|
mcride je napisal/a: |
pon
movlw b'000000000'
movwf GPIO
call Z1
clrf GPIO
call Z1
goto pon
|
V GPIO se vpiše 0, nato se malo počaka, spet vpiše 0 in spet malo počaka.
In tole vse skup se ponavlja...
Če bi rad utripanje oz. vzorce, potem probaj še kako drugo vrednost v GPIO vpisat
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
|
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
Objavljeno: Pet Jul 16, 2010 7:40 am Naslov sporočila: |
|
|
@gumby utripanje sploh ni problem, to deluje OK; bilo bi potrebno pogruntati, kot je dejal @SkunkyLee charlieplexing, da bi določil tri stat kombinacijo za pine...;
Zanima me predvsem, če kdo razume drugi način, ko se vpisuje HEX v EEPROM ; to kar sem spraševal v zgornjem postu!
lp, hvala
|
|
Nazaj na vrh |
|
|
eddie Član
Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 706 Aktiv.: 3.17 Kraj: Severna primorska
|
Objavljeno: Pet Jul 16, 2010 8:05 am Naslov sporočila: |
|
|
V vsakem primeru mora biti na procesorju program.
Kakor piše na njihovi strani je program zaklenjen, free pa so "vzorci utipanja", ki jih lahko naložiš v EPROM.
Za sprogramiran pic hočejo $9, tako da....
Čene ti pa ne ostane drugega kot da natuhtaš multipleksiranje.
Lp
|
|
Nazaj na vrh |
|
|
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
Objavljeno: Pet Jul 16, 2010 8:43 am Naslov sporočila: |
|
|
Aha, hvala vseem; po nekaj bolj zavzetem brskanju po internetu, kontaktiranju avtorja(ki je napisal da seveda prodaja že programirane PIC-e), sem v neki angleški reviji našel opis z izdelavo te zvezde, prav istega avtorja. Seveda, sem šel čez celoten članek in vmes našel tudi, da je program že spisan na njihovih straneh , seveda tudi tukaj ni šlo brez težav, saj je bila stran preseljena..., no na koncu sem nekaj le izbrskal
Zadeva torej deluje, zvečer pripnem še kak video; če se bo kdo lotil zadeve iz samega začetka, recimo primer:
recimo da maš
GP5 na high
GP0 na low
GP1,GP2,GP4 tri-state(odklopljen)
bo posvetila L19...itd
V priponki imate še hex in asm file, je prav zanimivo pogledati kako se je avtor lotil nekaterih rešitev....
Opis: |
|
Download |
Ime datoteke: |
HEX.txt |
Velikost datoteke: |
5.08 KB |
Downloadano: |
14 krat |
Opis: |
|
Download |
Ime datoteke: |
ASM.txt |
Velikost datoteke: |
50.31 KB |
Downloadano: |
21 krat |
|
|
Nazaj na vrh |
|
|
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.33 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Jul 18, 2010 9:53 pm Naslov sporočila: |
|
|
Tukaj je ena bolj konkretna
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
Objavljeno: Ned Jul 18, 2010 9:55 pm Naslov sporočila: |
|
|
Silvo je napisal/a: |
Tukaj je ena bolj konkretna |
Sem videl ja mogoče se jo lotim ko bo čas za te zadeve-> DECEMBER , nisem pa nikjer zasledil kakega videa, da bi videl "show".
lp
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.33 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Jul 18, 2010 10:00 pm Naslov sporočila: |
|
|
Tistega je veliko - kakih 15 minut v eno stran potem se kombinacije ponovijo inverzno. Zdi se mi sicer, da sem par kombinacij posnel ter pripel na forum. Sicer jo bom ob priliki sestavil ter naredil par posnetkov.
Edit:
Nekaj malega je pripeto v prvi verziji. ***klik***
_________________ lp
Silvo
Nazadnje urejal/a Silvo Ned Jul 18, 2010 10:04 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
mcride Član
Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.47 Kraj: LJ
|
Objavljeno: Ned Jul 18, 2010 10:02 pm Naslov sporočila: |
|
|
Hehe, super, snemaj ponoči škoda sicer da so vse ledice rdeče, ker pride čisto drugačen končen izgled, je pa rdeča seveda bolj atraktivna v decembrskih časih
lp
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 70 dni
Powered by phpBB © 2001, 2005 phpBB Group
|