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 

POMOČ pri programiranju PIC mikroprocesorja
Pojdi na stran Prejšnja  1, 2, 3, 4, 5  Naslednja
 
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
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2104
Aktiv.: 10.13
Kraj: Krško

PrispevekObjavljeno: Sre Mar 19, 2008 8:48 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Angelfish
Neznanec
Neznanec



Pridružen-a: Ned 05 Okt 2008 22:07
Prispevkov: 2
Aktiv.: 0.01
Kraj: Ljubljana

PrispevekObjavljeno: Sre Okt 08, 2008 1:17 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni!

Sem šisto "nov" na forumu in me zanima programiranje PIC-ov. Nekako mi ne uspe prenesti datotek, ki govorijo o tem Mad

Sem pa že 3. dan prijavljen Question ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.29
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Sre Okt 08, 2008 2:00 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Angelfish
Neznanec
Neznanec



Pridružen-a: Ned 05 Okt 2008 22:07
Prispevkov: 2
Aktiv.: 0.01
Kraj: Ljubljana

PrispevekObjavljeno: Čet Okt 09, 2008 10:49 am    Naslov sporočila:   Odgovori s citatom

Hvala za pojasnila....ko sem prebral pravila, mi je bilo jasno Laughing

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



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.29
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Okt 09, 2008 11:31 am    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Ned 20 Jan 2008 20:38
Prispevkov: 81
Aktiv.: 0.41
Kraj: Šentvid pri Stični

PrispevekObjavljeno: Čet Okt 09, 2008 9:55 pm    Naslov sporočila:   Odgovori s citatom

Morda obstaja drugi del navodil za programeranje pic-ev katerega je prilepil dkone?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
smotanc
Član
Član



Pridružen-a: Ned 20 Jan 2008 20:38
Prispevkov: 81
Aktiv.: 0.41
Kraj: Šentvid pri Stični

PrispevekObjavljeno: Pet Okt 10, 2008 12:35 am    Naslov sporočila:   Odgovori s citatom

Mi lahko tole kdo preveri Very Happy

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



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.29
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Pet Okt 10, 2008 7:27 am    Naslov sporočila:   Odgovori s citatom

Start vektor ti pomoje manjka. Več pa nisem gledal.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
s56al
Član
Član



Pridružen-a: Pon 19 Sep 2005 12:03
Prispevkov: 740
Aktiv.: 3.33
Kraj: JN66SI & JN76TM

PrispevekObjavljeno: Pet Okt 10, 2008 7:32 am    Naslov sporočila:   Odgovori s citatom

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 Smile


Nazadnje urejal/a s56al Pet Okt 10, 2008 1:04 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
s56al
Član
Član



Pridružen-a: Pon 19 Sep 2005 12:03
Prispevkov: 740
Aktiv.: 3.33
Kraj: JN66SI & JN76TM

PrispevekObjavljeno: Pet Okt 10, 2008 8:00 am    Naslov sporočila:   Odgovori s citatom

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" Smile prekinitev, bodisi s preverjanjem zastavice "timer overflov" v programski zanki.

-
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
smotanc
Član
Član



Pridružen-a: Ned 20 Jan 2008 20:38
Prispevkov: 81
Aktiv.: 0.41
Kraj: Šentvid pri Stični

PrispevekObjavljeno: Pet Okt 10, 2008 5:33 pm    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 25.14

PrispevekObjavljeno: Pet Okt 10, 2008 8:11 pm    Naslov sporočila:   Odgovori s citatom

Tukaj gre za domacno nalogo ?
_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
smotanc
Član
Član



Pridružen-a: Ned 20 Jan 2008 20:38
Prispevkov: 81
Aktiv.: 0.41
Kraj: Šentvid pri Stični

PrispevekObjavljeno: Pet Okt 10, 2008 9:21 pm    Naslov sporočila:   Odgovori s citatom

Tukaj gre za mojo radovednost in željo po programiranju mikrokontrolerjev zato sem se obrnil na ta forum.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 25.14

PrispevekObjavljeno: Sob Okt 11, 2008 12:41 am    Naslov sporočila:   Odgovori s citatom

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



Pridružen-a: Pon 19 Sep 2005 12:03
Prispevkov: 740
Aktiv.: 3.33
Kraj: JN66SI & JN76TM

PrispevekObjavljeno: Sob Okt 11, 2008 7:38 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
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
Pojdi na stran Prejšnja  1, 2, 3, 4, 5  Naslednja
Stran 3 od 5

 
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