|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
dkone Član
Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2104 Aktiv.: 10.13 Kraj: Krško
|
Objavljeno: Sre Mar 19, 2008 8:48 pm Naslov sporočila: |
|
|
Miha,pojdi rajši v HTE v Celje po RS232 kabel(sem ti svetoval)M-Ž in ne boš imel težav,tudi sam ga uporabljam in tudi tale programator je testiran z tem kablom.
Glede programiranja ti je pa že vse Igor povedal.
Najbolje je,da me klikneš na MSN ali pa me pokličeš(pustim pod ZS),pati razložim kako pa kaj. _________________ Denis |
|
Nazaj na vrh |
|
|
Angelfish Neznanec
Pridružen-a: Ned 05 Okt 2008 22:07 Prispevkov: 2 Aktiv.: 0.01 Kraj: Ljubljana
|
Objavljeno: Sre Okt 08, 2008 1:17 pm Naslov sporočila: |
|
|
Pozdravljeni!
Sem šisto "nov" na forumu in me zanima programiranje PIC-ov. Nekako mi ne uspe prenesti datotek, ki govorijo o tem
Sem pa že 3. dan prijavljen ... |
|
Nazaj na vrh |
|
|
mucek4 Član
Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 13.29 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Sre Okt 08, 2008 2:00 pm Naslov sporočila: |
|
|
Ej, ej, ej, ej današnja mladina.
Preberi pravila (redeč link na vrhu strani). Sama prijava ni dovolj, biti moraš aktiven član. Poleg tega bi bilo lepo izpolniti "kraj" v profilu in ti lahko člani ki so blizu tebe pomagajo.
Pa veliko užitkov s PICki ti želim. |
|
Nazaj na vrh |
|
|
Angelfish Neznanec
Pridružen-a: Ned 05 Okt 2008 22:07 Prispevkov: 2 Aktiv.: 0.01 Kraj: Ljubljana
|
Objavljeno: Čet Okt 09, 2008 10:49 am Naslov sporočila: |
|
|
Hvala za pojasnila....ko sem prebral pravila, mi je bilo jasno
Priznati moram, da nekaterih drugih forumih ni takih pravil....vendar se o tem tu ne razpravlja.
Hvala tudi za dobrodošlico...no, danes sem že lahko pogledal nekatere datoteke. |
|
Nazaj na vrh |
|
|
mucek4 Član
Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 13.29 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Čet Okt 09, 2008 11:31 am Naslov sporočila: |
|
|
Jaz sem vsak dan v Ljubljani in če bi te zanimalo se lahko popoldne ko končam službo kdaj dobiva in ti pomagam.
Sam delam v asemblerju in mi ni žal, da sem se ga naučil. Za programator pa uporabljam ICD2 klona (USB in serijskega) |
|
Nazaj na vrh |
|
|
smotanc Član
Pridružen-a: Ned 20 Jan 2008 20:38 Prispevkov: 81 Aktiv.: 0.41 Kraj: Šentvid pri Stični
|
Objavljeno: Čet Okt 09, 2008 9:55 pm Naslov sporočila: |
|
|
Morda obstaja drugi del navodil za programeranje pic-ev katerega je prilepil dkone? |
|
Nazaj na vrh |
|
|
smotanc Član
Pridružen-a: Ned 20 Jan 2008 20:38 Prispevkov: 81 Aktiv.: 0.41 Kraj: Šentvid pri Stični
|
Objavljeno: Pet Okt 10, 2008 12:35 am Naslov sporočila: |
|
|
Mi lahko tole kdo preveri
Stvar sem si zamislil tako da je PIC v zanki "TIPKA" dokler ne sleneš stikala potem se pa prižge za sekundo in izklopi nato pa ponovno.
Koda: |
;##############################################
;Utripajoca ledioda z stikalom
;##############################################
STATUS EQU 0X03
TRISA EQU 0X85
STEVEC1 EQU 0X0C
STEVEC2 EQU 0X0D
STEVEC3 EQU 0X0E
STEVEC4 EQU 0X0F
;NASTAVITEV PORTOV
BSF STATUS,5
MOVLW B'00001'
MOVWF TRISA
BCF STATUS,5
;PROGRAM
;STIKALO
TIPKA BTFSC PORTA,0
GOTO TIPKA
MOVWL B'11110'
MOVWF PORTA
CALL PAUZA
MOVLW B'00000'
MOVWF PORTA
GOTO TIPKA
;PODPROGRAM
PAUZA MOVLW 255
MOVWF STEVEC1
MOVWF STEVEC2
MOVWF STEVEC3
MOVWF STEVEC4
ZANKA DECFSZ STEVEC1,1
GOTO ZANKA
DECFSZ STEVEC2,1
GOTO ZANKA
DECFSZ STEVEC3,1
GOTO ZANKA
DECFZS STEVEC4,1
GOTO ZANKA
END
|
|
|
Nazaj na vrh |
|
|
mucek4 Član
Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 13.29 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Pet Okt 10, 2008 7:27 am Naslov sporočila: |
|
|
Start vektor ti pomoje manjka. Več pa nisem gledal. |
|
Nazaj na vrh |
|
|
s56al Član
Pridružen-a: Pon 19 Sep 2005 12:03 Prispevkov: 740 Aktiv.: 3.33 Kraj: JN66SI & JN76TM
|
Objavljeno: Pet Okt 10, 2008 7:32 am Naslov sporočila: |
|
|
Takole na hiter pregled:
Predzadnji ukaz vsebuje sintaktično napako (DECFZS namesto DECFSZ), tako da prepdostavljam, da programa še nisi probal prevesti, ker bi to zbirnik sicer javil...
Zakasnitev 1s, ce dobro premisliš, so pravzaprav 4 vgnezdene zanke napisane na nekoliko neobicajen nacin, tako da zakasnitev traja priblizno 256 x 256 x 256 x 255 x 3 strojnih ciklov. Pri 1MHz uri CPU (recimo 16F628 s 4 MHz kvarcem) se bo zanka izvajala več kot 13000 sekund.
Na zacetku vsakega PIC16F... programa je pametno narediti naslednje (priporocilo PIC gurujev z enega Microchipovega seminarja izpred 12 let):
clrf PCLATH
clrf STATUS
clrwdt
Ne nujno v tem vrstnem redu.
Gornji program bi se izvajal po pricakovanjih samo, ce se koda zacne na naslovu 0x000 programskega pomnilnika, sicer je potrebno urediti reset vektor, kot je navedel ze Mucek4. Tudi ce se koda zacne na 0x000 (org 0x00), si s kodo "povozil" vektor prekinitev, tako da slednjih ne mores uporabiti.
Na koncu podprograma manjka RETURN.
Mozno, da sem se kaj spregledal.
LP, Sandi
Popravil svojo sintaktično napako
Nazadnje urejal/a s56al Pet Okt 10, 2008 1:04 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
s56al Član
Pridružen-a: Pon 19 Sep 2005 12:03 Prispevkov: 740 Aktiv.: 3.33 Kraj: JN66SI & JN76TM
|
Objavljeno: Pet Okt 10, 2008 8:00 am Naslov sporočila: |
|
|
Primer zakasnitve 1s:
Koda: |
;************************************************
;* *
;* Podprogram: *
;* Zakasnitev 1s pri taktu CPU = 1MHz *
;* *
;************************************************
zakasnitev_1s
movlw d'10' ; Zunanja zanka ustvari zakasnitev 10 x ca. 100ms = ca. 1s
movwf stevec_delay_1s
zanka_1s
movlw d'100' ; Zanka ustvari zakasnitev 100 x ca. 1ms = ca. 100ms
movwf stevec_delay_100ms
zanka_100ms
movlw d'249' ; Notranja zanka ustvari zakasnitev 249 x 4 + 5 us = ca. 1ms
movwf stevec_delay_1000us ; 1
zanka_1000us
nop ; 1
decfsz stevec_delay_1000us,f ; 1 (2)
goto zanka_1000us ; 2
decfsz stevec_delay_100ms,f ; 1 (2)
goto zanka_100ms ; 2
decfsz stevec_delay_1s,f
goto zanka_1s
return
|
Veliko lepše in predvsem bolj natančno (zlasti, če program uporablja tudi prekinitve) se zakasnitev naredi s timerjem. Bodisi tako, da timer proži "časomerno" prekinitev, bodisi s preverjanjem zastavice "timer overflov" v programski zanki.
- |
|
Nazaj na vrh |
|
|
smotanc Član
Pridružen-a: Ned 20 Jan 2008 20:38 Prispevkov: 81 Aktiv.: 0.41 Kraj: Šentvid pri Stični
|
Objavljeno: Pet Okt 10, 2008 5:33 pm Naslov sporočila: |
|
|
Bo tole kaj bolje?
Koda: |
;##############################################
;Utripajoca ledioda z stikalom
;##############################################
STATUS EQU 0X03
TRISA EQU 0X85
STEVEC1 EQU 0X0C
STEVEC2 EQU 0X0D
STEVEC3 EQU 0X0E
STEVEC4 EQU 0X0F
;NASTAVITEV PORTOV
LIST P=16F84
BSF STATUS,5
MOVLW B'00001'
MOVWF TRISA
BCF STATUS,5
;PROGRAM
ORG 0
GOTO 4
ORG 4
;STIKALO
TIPKA BTFSC PORTA,0
GOTO TIPKA
ZACETEK MOVWL B'11110'
MOVWF PORTA
CALL PAUZA
MOVLW B'00000'
MOVWF PORTA
GOTO ZACETEK
;PODPROGRAM
PAUZA MOVLW 255
MOVWF STEVEC1
MOVLW 255
MOVLW STEVEC2
ZANKA DECFZS STEVEC1,1
GOTO ZANKA
DECFZS STEVEC2,1
GOTO ZANKA
END
RETURN
|
|
|
Nazaj na vrh |
|
|
Sokrat Član
Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 25.14
|
Objavljeno: Pet Okt 10, 2008 8:11 pm Naslov sporočila: |
|
|
Tukaj gre za domacno nalogo ? _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
|
smotanc Član
Pridružen-a: Ned 20 Jan 2008 20:38 Prispevkov: 81 Aktiv.: 0.41 Kraj: Šentvid pri Stični
|
Objavljeno: Pet Okt 10, 2008 9:21 pm Naslov sporočila: |
|
|
Tukaj gre za mojo radovednost in željo po programiranju mikrokontrolerjev zato sem se obrnil na ta forum. |
|
Nazaj na vrh |
|
|
Sokrat Član
Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 25.14
|
Objavljeno: Sob Okt 11, 2008 12:41 am Naslov sporočila: |
|
|
No, ce je temu tako, ti mocno svetujem, da poberes z Microchipove strani brezplacno razvojno okolje MPLAB, ga instaliras, svoj program prevedes in potem izvajas v simualtorju. Nic ne more nadomestiti simulacije po korakih - nobenateorija, noben odgovor na forumu, nobeno izvajanje v zivo (ko vse mine v nekaj mikrosekundah). Le tako bos vedel ali tvoj program dela to, kar mislis da dela, brez da nkedo drug opravlja nekaj za tvojo "radovednost in zeljo po programiranju" (nekam cudno hitro ti je zmanjkalo te zelje ...).
Seveda tudi taka simulacija ni vse, a pomeni v vecini primerov vsaj 50% dela, pisanje programa pa predstavlja samo 5% (25% za debugiranje v simualtorju, 20% za debugiranje v aplikaciji, kjer vplivajo se drugi dejavniki). Tega se moras zavedati in dokler se ne lotis vsega skupaj celovito, bos samo zapravljal cas. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
|
s56al Član
Pridružen-a: Pon 19 Sep 2005 12:03 Prispevkov: 740 Aktiv.: 3.33 Kraj: JN66SI & JN76TM
|
Objavljeno: Sob Okt 11, 2008 7:38 am Naslov sporočila: |
|
|
RETURN je manjkal na koncu podprograma (rutine za zakasnitev), v vsakem primeru pa mora stati pred END.
RETURN je zbirniški ukaz, ki se prevede v strojno kodo in povzroči, da se izvajanje programa v CPU vrne natančno tja, od koder je bil podprogram klican (ob pogojih urejenega stacka).
END je ukaz prevajalniku, ki pove, da je tu konec programske kode in da prevajalniku ni treba pregledovati nadaljevanja datoteke, ker ne bo našel ničesar več za prevajat. END se ne prevede v strojno kodo ampak z njim samo zaključiš zbirniški program. Za END ne moreš dati zbirniških ukazov.
Resnično bi bilo lepo, če bi svoj program dejansko najprej probal vsaj prevesti, ker dosti nepravilnosti bo javil že sam prevajalnik. Če potem pri simulaciji kaj ne bo jasno glede izvajanja programa, ali glede napak, ki jih javi prevajalnik, pa le vprašaj.
LP, Sandi |
|
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: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|