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 

Pavza
Pojdi na stran 1, 2  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
djtech
Član
Član



Pridružen-a: Sob 18 Okt 2003 21:47
Prispevkov: 113
Aktiv.: 0.48
Kraj: Cerkvenjak

PrispevekObjavljeno: Tor Okt 19, 2004 9:52 pm    Naslov sporočila:  Pavza Odgovori s citatom

Koda:

CLRRAM
   MOVLW 0XC
   MOVWF FSR
BRISI
   CLRF INDF
   INCF FSR,F
   MOVLW 0X50
   SUBWF FSR,W
   BTFSS STATUS,C
   GOTO BRISI
   RETURN

PAVZA
   MOVLW .200
   MOVWF T1
   MOVLW .20
   MOVWF T2
   
P1
   DECFSZ T1,F
   GOTO P1
   MOVLW .200
   MOVWF T1
   DECFSZ T2,F
   GOTO P1
   RETURN

GLAVNI
   CLRW
   CALL CLRRAM
   CLRF PORTA
   CLRF PORTB
   BSF STATUS,RP0   ;BANK1
   BCF TRISA,1   ;IZHOD ZA RELE
   BCF TRISA,0
   BCF TRISA,2
   BCF TRISA,3
   MOVLW B'00000011'
   MOVWF OPTION_REG
   BCF STATUS,RP0   ;BANK1

Ali mi lahko kdo razloži kako določim pavzo ? Kaj dela P1, GLAVNI ? Od koga je odvisna dolžina pavze (a se je ne da definirat v s)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
djtech
Član
Član



Pridružen-a: Sob 18 Okt 2003 21:47
Prispevkov: 113
Aktiv.: 0.48
Kraj: Cerkvenjak

PrispevekObjavljeno: Tor Okt 19, 2004 9:58 pm    Naslov sporočila:   Odgovori s citatom

Hm. Ni mi uspelo programa lepo prilepit, zato ni pregleden, a mi kdo pove kako ga prilepim da je pod belo podlago, kot ste vaše gor prilepli ?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
surla
Član
Član



Pridružen-a: Ned 14 Dec 2003 15:22
Prispevkov: 722
Aktiv.: 3.05
Kraj: Ljubljana

PrispevekObjavljeno: Tor Okt 19, 2004 10:07 pm    Naslov sporočila:   Odgovori s citatom

CLRRAM
MOVLW 0XC
MOVWF FSR
BRISI
CLRF INDF
INCF FSR,F
MOVLW 0X50
SUBWF FSR,W
BTFSS STATUS,C
GOTO BRISI
RETURN

PAVZA
MOVLW .200
MOVWF T1
MOVLW .20 ;Če tu napišeš MOVLW .200 boš čas podaljšal 10x
MOVWF T2

P1
DECFSZ T1,F
GOTO P1
MOVLW .200 ;tega lahko povečaš do 255 in zmanjšaš do 1
MOVWF T1
DECFSZ T2,F
GOTO P1
RETURN

GLAVNI
CLRW
CALL CLRRAM
CLRF PORTA
CLRF PORTB
BSF STATUS,RP0 ;BANK1
BCF TRISA,1 ;IZHOD ZA RELE
BCF TRISA,0
BCF TRISA,2
BCF TRISA,3
MOVLW B'00000011'
MOVWF OPTION_REG
BCF STATUS,RP0 ;BANK1

Torej P1 se vrti v zanki za čas pavze.
Glavni pa briše Watchdog timer in definira registre kaj pa še dela pa ne vem ker ni cel.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Tor Okt 19, 2004 10:08 pm    Naslov sporočila:   Odgovori s citatom

"Pavza" je narejena na način, da se zadži tok programa za določen čas.

Koda:


             movlw . 100
             movwf  T1             ; v registru T1 je vrednost 100
             decfsz  T1,f           ; decfsz odšteje od T1 1 rezultat shrane v T1
              goto $-1               ;ko je vrednost v T1 0 te vrstice ne upošteva sicer skoči
              .......                    ;  vrstico nazaj


Instrukcja lahko traje 1 ali 2 ciklusa. Odvisno od instrukcije. Poglej datashet za mikrokontroler. Pri oscilatorju 4Mhz je en cycles 1 mi s

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



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

PrispevekObjavljeno: Tor Okt 19, 2004 10:26 pm    Naslov sporočila:   Odgovori s citatom

Naj dodam še tole. Vsem, ki bi se radi naučili programiranja PIC-a v assemblerju priporočam, da si snamejo datashet za željen mikrokotroler ter samo navodilo za MPASM. Najdete ga na microchipovi domači strani, na Filemanager pripel pa sem ga tudi v tem postu. navodilo je sicer v angleščini a je vsaj za moje pojme najboljša literatura. Poleg tega pa je zastonj. Na trgu se sicer najde kup knjig, ki pa so po mojem mnenju bolj ali manj posrečen prevod tega.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
djtech
Član
Član



Pridružen-a: Sob 18 Okt 2003 21:47
Prispevkov: 113
Aktiv.: 0.48
Kraj: Cerkvenjak

PrispevekObjavljeno: Tor Okt 19, 2004 10:45 pm    Naslov sporočila:   Odgovori s citatom

Koliko pa moram dati v register T1 da bo čas enak 1sekunda ?
A je tako pravilno

PAVZA
movlw . 1000000
movwf T1
decfsz T1,f
goto $-1
return
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Sre Okt 20, 2004 6:07 am    Naslov sporočila:   Odgovori s citatom

Ne, operiraš lahko le z 8 bitnimi številkami. Maksimalna vrednost je torej lahko 255 desetiško. Kot sem napisal zgoraj dolžina enega ukaznega ciklusa je odvisna od frekvence oscilatorja, ter od uporabljenih instrukcij. Program moraš zazankat tolikokrat, da pač dobiš eno sekuundo. Priporočam, da najprej preštudiraš zgoraj omenjeno literaturo.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
djtech
Član
Član



Pridružen-a: Sob 18 Okt 2003 21:47
Prispevkov: 113
Aktiv.: 0.48
Kraj: Cerkvenjak

PrispevekObjavljeno: Sre Okt 20, 2004 9:39 am    Naslov sporočila:   Odgovori s citatom

OK bom Idea
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Čet Okt 28, 2004 8:57 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Čet Okt 28, 2004 9:27 pm    Naslov sporočila:   Odgovori s citatom

Drži, pri oscilatorju 4Mhz
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Ned Jul 30, 2006 12:31 pm    Naslov sporočila:   Odgovori s citatom

Mi lahko kdo razloži, kako je mogče, da je ta pavza dolga 1mS pri osilaciji PICa z frekvenco 4MHz, se pravi da en ukaz traja 1 miS.

Koda:

P1mS
   movlw .2   ;1uS
   movwf T1   ;1uS
   movlw .74   ;1uS
   movwf T2   ;1uS
Z2            ;4uS - trajanje procedure (P1mS) 
   decfsz T2,f   ;1(2)uS
   goto Z2      ;2uS   74*3=222
   decfsz T1,f   ;1(2)uS   
   goto Z2      ;2uS   2*5=10      
   return      ;2uS

trajanje procedure Z2 = (74*3)+(2*5)=232
skupna pavza je vhod v pavzo+P1mS+Z2=2uS+4uS+232uS+2uS=242uS
Po mojih izračunih nikakor ne morem dobit 1mS, kje delam napako?

_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
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.: 23.57

PrispevekObjavljeno: Ned Jul 30, 2006 12:38 pm    Naslov sporočila:   Odgovori s citatom

Tvoje racunanje je napacno - tam na sredi ni 3 * 74, ker vrednosti T2 po zmanjsanju T1 in skoku nazaj gor do Z2 ne nastavis ponovno, zato se odsteva od 0 "navzdol" (rollover). Dekrement so zgodi v vsakem primeru in vrednost spet ni vec 0, zato se znaka nadaljuje.

BTW: obupno slaba izbira label v programu Wink
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



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

PrispevekObjavljeno: Ned Jul 30, 2006 12:51 pm    Naslov sporočila:   Odgovori s citatom

Se manj napacen izracun:

do Z2 so 4 cikli
od Z2 je (3*73 + 2) + 3 + (3*255 + 2) + 2 + 2 = 995 ciklov

(v oklepaju je trajanje prvih dveh vrstic za Z2)

Hm, skupaj bi to bilo 999 ciklov namesto 998 ... zanimivo Rolling Eyes
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Ned Jul 30, 2006 10:50 pm    Naslov sporočila:   Odgovori s citatom

Hvala za razlago sokrat.
_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Tor Avg 01, 2006 7:59 pm    Naslov sporočila:   Odgovori s citatom

Sokrat mi lahko poveš še če sem pravilno izračunal 100mS pavzo?

Koda:

P100mS
   movlw .130   ;1uS
   movwf T1   ;1uS
   movlw .221   ;1uS
   movwf T2   ;1uS
Z100mS         ;4uS
   decfsz T2,f   
   goto Z100mS      
   decfsz T1,f   
   goto Z100mS   
   return
;Z100mS = (3*220 + 2) + 3 + (3*129*255 + 2) + 2 + 2 = 99356

_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten 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
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group