www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

PIC12F683 "Christmas Star"

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Čet Jul 15, 2010 11:36 pm    Naslov sporočila:  PIC12F683 "Christmas Star" Odgovori s citatom

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 Brick wall



ddasda.png
 Opis:
Shema vezja z označenimi ledicami
 Velikost datoteke:  98.63 KB
 Pogledana:  24 krat

ddasda.png



capture.jpg
 Opis:
Test v multisim-u
 Velikost datoteke:  204.14 KB
 Pogledana:  33 krat

capture.jpg




Nazadnje urejal/a mcride Pet Jul 16, 2010 7:58 am; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
SkunkyLee
Član
Član



Pridružen-a: Čet 12 Feb 2009 16:59
Prispevkov: 198
Aktiv.: 1.08
Kraj: Maribor, Ljubljana

PrispevekObjavljeno: Pet Jul 16, 2010 12:40 am    Naslov sporočila:   Odgovori s citatom

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. Smile
Mogoče celo malo prezapleten projekt za začetnika v programiranju, ampak če boš stisnil zobe, se boš naučil veliko.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Pet Jul 16, 2010 1:11 am    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
SkunkyLee
Član
Član



Pridružen-a: Čet 12 Feb 2009 16:59
Prispevkov: 198
Aktiv.: 1.08
Kraj: Maribor, Ljubljana

PrispevekObjavljeno: Pet Jul 16, 2010 1:31 am    Naslov sporočila:   Odgovori s citatom

Huh, priznam, sam sem najprej videl kodo in mislil, da imaš problem predvsem z assemblerjem. Se opravičujem Smile

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 19.74

PrispevekObjavljeno: Pet Jul 16, 2010 5:05 am    Naslov sporočila:   Odgovori s citatom

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 Wink

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Pet Jul 16, 2010 7:40 am    Naslov sporočila:   Odgovori s citatom

@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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
eddie
Član
Član



Pridružen-a: Sre 10 Dec 2003 21:02
Prispevkov: 706
Aktiv.: 3.18
Kraj: Severna primorska

PrispevekObjavljeno: Pet Jul 16, 2010 8:05 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Pet Jul 16, 2010 8:43 am    Naslov sporočila:   Odgovori s citatom

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 Smile, seveda tudi tukaj ni šlo brez težav, saj je bila stran preseljena..., no na koncu sem nekaj le izbrskal Smile

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



HEX.txt
 Opis:
HEX

Download
 Ime datoteke:  HEX.txt
 Velikost datoteke:  5.08 KB
 Downloadano:  14 krat


ASM.txt
 Opis:
ASM

Download
 Ime datoteke:  ASM.txt
 Velikost datoteke:  50.31 KB
 Downloadano:  21 krat

Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Ned Jul 18, 2010 9:30 pm    Naslov sporočila:   Odgovori s citatom

Še kratek "filmček"

http://www.hopsasa/?31/i7/1Z6Klw3r/zvezdaled.wmv

lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14551
Aktiv.: 65.53
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jul 18, 2010 9:53 pm    Naslov sporočila:   Odgovori s citatom

Tukaj je ena bolj konkretna Wink
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Ned Jul 18, 2010 9:55 pm    Naslov sporočila:   Odgovori s citatom

Silvo je napisal/a:
Tukaj je ena bolj konkretna Wink


Sem videl ja Smile mogoče se jo lotim ko bo čas za te zadeve-> DECEMBER Smile, nisem pa nikjer zasledil kakega videa, da bi videl "show".

lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14551
Aktiv.: 65.53
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jul 18, 2010 10:00 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mcride
Član
Član



Pridružen-a: Tor 27 Okt 2009 22:36
Prispevkov: 788
Aktiv.: 4.49
Kraj: LJ

PrispevekObjavljeno: Ned Jul 18, 2010 10:02 pm    Naslov sporočila:   Odgovori s citatom

Hehe, super, snemaj ponoči Smile š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 Wink

lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group