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 

Pic16f84A enostaven program
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
gumby
Član
Član



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

PrispevekObjavljeno: Ned Dec 13, 2009 3:45 pm    Naslov sporočila:   Odgovori s citatom

ljudsko je napisal/a:
- Je potrebno kaj posebej nastavljati, če preneseš že prevedeno .hex datoteko iz interneta, preden to zapišeš na mikrokrmilnik in sestaviš vezje?
- Ali sestavljam vezje narobe?
- Ali sem neumen?
- Ali je čip neumen?
- Ali me ima čip za norca?


- fuse bite je treba nastavit, če že niso v hex
- možno
- možno
- možno
- možno

Težko je brez magične krogle povedat, kaj je narobe. Lahko je milion stvari, zelo verjetno kaka banalnost.
Mogoče bi za začetek vzel kak PIC z internim oscilatorjem, da odstraniš vsaj enega potencialnega kandidata za nedelovanje...

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



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7831
Aktiv.: 32.96
Kraj: Koprivnica HR

PrispevekObjavljeno: Ned Dec 13, 2009 3:54 pm    Naslov sporočila:   Odgovori s citatom

gumby je napisal/a:
- fuse bite je treba nastavit, če že niso v hex
- možno
- možno
- možno
- možno

...................
hysterical
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
ljudsko
Član
Član



Pridružen-a: Pon 31 Mar 2008 8:19
Prispevkov: 1184
Aktiv.: 5.63
Kraj: Koroška-Mežica

PrispevekObjavljeno: Ned Dec 13, 2009 5:01 pm    Naslov sporočila:   Odgovori s citatom

Poskusil sem z 12f675. Program:

Koda:


;-----------------------
;multivibrator z 12f675
;-----------------------

list P=12f675
#INCLUDE "C:\ASM\P12F675.INC"

__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _CP_OFF & _MCLRE_ON & _BODEN_OFF

org 0x0 ;Reset vektor

stevec1 equ 0x20
stevec2 equ 0x21
stevec3 equ 0x22
stevec4 equ 0x23 ;Spremenljivke

goto GLAVNI

org 0x4 ;Interrupt vektor
goto PAVZA

PAVZA
movlw .255
movwf stevec1
movwf stevec2
movlw .5
movwf stevec3
movwf stevec4

ZANKA
decfsz stevec1,f
goto ZANKA
decfsz stevec2,f
goto ZANKA
decfsz stevec3,f
goto ZANKA
decfsz stevec4,f
goto ZANKA        ;255*255*5*5
return

GLAVNI

bsf STATUS,RP0 ;Banka 1
clrf ANSEL     ;Digitalni I/O
clrf TRISIO      ;Vsi pini izhodi
bcf STATUS,RP0   ;Banka 0
clrf CMCON   ;Digitalni I/O

clrf GPIO   ;Vsi pini na 0
bsf GPIO,0   ;GP0 visok
call PAVZA   ;Zakasnitev
bcf GPIO,0   ;GP0 nizek
bsf GPIO,1   ;GP1 visok
call PAVZA   ;Zakasnitev

goto GLAVNI   ;Neskončna zanka

end


Kaj počnem narobe?
Morda vse deluje, le zanke so prekratke, da bi videl utripanje??

Popravljam: Pin 4 (MCLR) sem vezal na +, sedaj mi sveti LED, ki je vezana na GP0. Hm..en korak bližje sem.

_________________
return;
brake;


Nazadnje urejal/a ljudsko Ned Dec 13, 2009 5:21 pm; skupaj popravljeno 2 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7831
Aktiv.: 32.96
Kraj: Koprivnica HR

PrispevekObjavljeno: Ned Dec 13, 2009 5:03 pm    Naslov sporočila:   Odgovori s citatom

Shema?
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
ljudsko
Član
Član



Pridružen-a: Pon 31 Mar 2008 8:19
Prispevkov: 1184
Aktiv.: 5.63
Kraj: Koroška-Mežica

PrispevekObjavljeno: Ned Dec 13, 2009 5:17 pm    Naslov sporočila:   Odgovori s citatom

Shema:

EDIT: Program dela Smile Zanka je bila predolga. 255*255*5*5. Sedaj je samo 255*255.

V filmčku se ne vidi ok, ker mi telefon ni posnel lepo. Zgleda, da ni ujel frekvence. Drugače lepo deluje.



shema.pdf
 Opis:

Download
 Ime datoteke:  shema.pdf
 Velikost datoteke:  10.44 KB
 Downloadano:  28 krat


SNC00017.zip
 Opis:
filmček

Download
 Ime datoteke:  SNC00017.zip
 Velikost datoteke:  734.81 KB
 Downloadano:  11 krat


_________________
return;
brake;


Nazadnje urejal/a ljudsko Ned Dec 13, 2009 5:38 pm; skupaj popravljeno 2 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 3.99
Kraj: Žalec

PrispevekObjavljeno: Ned Dec 13, 2009 5:32 pm    Naslov sporočila:   Odgovori s citatom

A ti omejuješ tok v GND Wink ? Upora R1 in R2 veži pred ledico.
_________________
Roke spadajo k telesu, ne k delu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.22
Kraj: Ljubljana

PrispevekObjavljeno: Ned Dec 13, 2009 9:44 pm    Naslov sporočila:   Odgovori s citatom

NUFAN je napisal/a:
A ti omejuješ tok v GND Wink ? Upora R1 in R2 veži pred ledico.
Tok bo enak v vsakem primeru, ne glede na to kje se nahaja upor, kajne Think
Torej je tvoja izjava trapasta... (ni žaljitev, komentiram izjavo)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gumby
Član
Član



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

PrispevekObjavljeno: Ned Dec 13, 2009 9:45 pm    Naslov sporočila:   Odgovori s citatom

ljudsko:

  • Pri 12F675 se načeloma najprej naredi kalibracija internega oscilatorja. To sicer ni življensko pomembno, je pa dobra praksa. Poglej v datasheet, kaj in kako (9.2.5.1 Calibrating the Internal Oscillator)

  • Koda:
    clrf CMCON   ;Digitalni I/O
    Si prepričan v to? Poglej v datasheet, kako se ugasnejo komparatorji (6.2 Comparator Configuration)

  • Koda:
       org 0x4 ;Interrupt vektor
       goto PAVZA
    Tole nima ravno nekega smisla. Če že ciljaš na prekinitev, ki se ne bi smela zgodit, je tam na mestu edino kak RETFIE. Ampak tudi ta sam po sebi ne bo pomagal, ker prekinitev ne bo ustrezno obdelana (in se bo takoj znova sprožila).
    Sicer pa vsak reset pobriše GIE bit, torej se prekinitve ne bodo dogajale, dokler jih ne omogočiš.

  • Samo ideja za zakasnitve:
    Koda:
    ; 4MHz clock

       cblock 0x20
          delay_T1,delay_T2,delay_T3
       endc


    delay_Xms
       movwf delay_T3
       call delay_1ms
       decfsz delay_T3,f
       goto $-2
       return

    delay_1ms
       movlw .2
       movwf delay_T1
       movlw .73
       movwf delay_T2
       decfsz delay_T2,f
       goto $-1
       decfsz delay_T1,f
       goto $-3
       nop
       nop
       return

    Za recimo 200ms daš vrednost 200 v W in pokličeš delay_Xms Wink

  • Koda:
       goto GLAVNI   ;Neskončna zanka

    Tule raje skoči na začetek zanke, ne rabiš vsakič inicializacije delat

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



Pridružen-a: Pon 31 Mar 2008 8:19
Prispevkov: 1184
Aktiv.: 5.63
Kraj: Koroška-Mežica

PrispevekObjavljeno: Pon Dec 14, 2009 5:55 pm    Naslov sporočila:   Odgovori s citatom

Malo sem spremenil program. Zanko sem podaljšal, vsaka ledica utripne dvakrat. Gumpy, je zdaj ok? Ker sem opazil, ko vezje izključim in ga vklopim nazaj, moram kontroler malo umakniti iz protoboarda in ga vstaviti nazaj zelo rahlo, potem pa do konca Think . Je to, kot neko resetiranje? In enkrat se mi je zdaj zgodilo, da je utripalo počasneje, kot mora. Ko sem ga resetiral, je bilo ok. Je to povezano z kalibracijo, o kateri si govoril?
Program:
Koda:

;-----------------------
;multivibrator z 12f675
;-----------------------

list P=12f675
#INCLUDE "C:\ASM\P12F675.INC"

__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _CP_OFF & _MCLRE_ON & _BODEN_OFF

org 0x0 ;Reset vektor

stevec1 equ 0x20
stevec2 equ 0x21
stevec3 equ 0x22   ;Spremenljivke

goto GLAVNI

;------------------------
;ZAKASNITEV
;------------------------
PAVZA
movlw .255
movwf stevec1
movwf stevec2
movlw .2
movwf stevec3

ZANKA
decfsz stevec1,f
goto ZANKA
decfsz stevec2,f
goto ZANKA      
decfsz stevec3,f
goto ZANKA
return

;------------------------
;GLAVNI PROGRAM
;------------------------
GLAVNI

bsf STATUS,RP0 ;Banka 1
call 0x3ff   ;Get the cal value
movwf OSCCAL   ;Calibrate
clrf ANSEL     ;Digitalni I/O
clrf TRISIO      ;Vsi pini izhodi
bcf STATUS,RP0   ;Banka 0
clrf CMCON


G_ZANKA
clrf GPIO   ;Vsi pini na 0
;--------------------------------
bsf GPIO,0   ;GP0 prvic na 1
call PAVZA   ;prva zakasnitev
bcf GPIO,0   ;GP0 na 0
call PAVZA   ;druga zakasnitev
bsf GPIO,0   ;GP0 drugic na 1
call PAVZA   ;tretja zakasnitev
bcf GPIO,0   ;GP0 na 0
;--------------------------------
bsf GPIO,1   ;GP1 prvic na 1
call PAVZA   ;prva zakasnitev
bcf GPIO,1   ;GP1 na 0
call PAVZA   ;druga zakasnitev
bsf GPIO,1   ;GP1 drugic na 1
call PAVZA   ;treta zakasnitev
bcf GPIO,1   ;GP1 na 0

goto G_ZANKA ;Neskončna zanka

end

_________________
return;
brake;
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gumby
Član
Član



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

PrispevekObjavljeno: Pon Dec 14, 2009 6:17 pm    Naslov sporočila:   Odgovori s citatom

Kalibrira se lahko kak % ali dva, torej tega ne bi smel zaznati "na oko". Očitno nekaj drugega nagaja, verjetno slabi kontakti...
Koliko je sploh vrednost upora R3?

btw komparator še vedno nimaš ugasnjen

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



Pridružen-a: Pon 31 Mar 2008 8:19
Prispevkov: 1184
Aktiv.: 5.63
Kraj: Koroška-Mežica

PrispevekObjavljeno: Pon Dec 14, 2009 6:24 pm    Naslov sporočila:   Odgovori s citatom

gumby je napisal/a:
Kalibrira se lahko kak % ali dva, torej tega ne bi smel zaznati "na oko". Očitno nekaj drugega nagaja, verjetno slabi kontakti...
Koliko je sploh vrednost upora R3?

Vsi upori so 300 Omega

gumby je napisal/a:
btw komparator še vedno nimaš ugasnjen

Lahko to storim tako?


Koda:
bcf STATUS,RP0   ;Banka 0
movlw .7
movwf CMCON      ;Izklop komparatorjev

_________________
return;
brake;
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
dkone
Član
Član



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

PrispevekObjavljeno: Tor Dec 15, 2009 10:42 am    Naslov sporočila:   Odgovori s citatom

igo je napisal/a:

Ja pa kako vam uspe kaj takega?
Koda:

org 0x0 ;Reset vektor  ; ORG naslove se vedno piše v obliki 0x0000 ... 0xFFFF !
  stevec1 equ 0x20  ; tole spada v CBLOCK!!!
  stevec2 equ 0x21
  stevec3 equ 0x22   ;Spremenljivke
  goto GLAVNI  ; Tole spada na org 0x0004

Takole naj bi si sledili deli programa:
- definicija registrov ali "include"
- konfiguracijska beseda
- definicija imen pinov in raznih zastavic
- vrednosti raznih konstant
- blok spremenljivk, ki se začne na nekem naslovu v RAMu (pri npr. 16F876A na 0x20)
- org 0x0000
- goto pNastavi ; podprogram, ki nastavi vse potrebno za zagon
- org 0x0004
- goto pPrek ; podprogram prekinitev
- podprogrami
Koda:

 __CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF & _LVP_OFF ; & _CP_ALL ;
 
 #define     vPrek     PORTB,0 ; Vhod Prekinitve
 #define lcdLuc PORTB,1   ; osvetlitev lcd
 #define  lcdRS  PORTB,2  ; RS od LCD
 #define  lcdE  PORTB,3  ; E od LCD
 #define  D4  PORTB,4  ; PINI D4- D7 LCD-ja
 #define  D5  PORTB,5
 #define  D6  PORTB,6
 #define  D7  PORTB,7
 
 #define  zPavKon  Zastave,0 ; Pavza končana
 #define  zNov01Cas  Zastave,1 ; Postavi vsako 0,1 sekunde
 #define  zNov10Cas  Zastave,2 ; Postavi vsako 1,0 sekundo
 
kABCD EQU .3 ; Konstanta za pavzo ...
kEFGH EQU .4 ; Konstanta ponovitev zanke ...
kIJKL EQU .50 ; Konstanta za ADC primerjavo ...
 
   CBLOCK  0X20 ; blok spremenljivk
   kopiw ; kopija W registra
   kopis ; kopija STATUS registra
   kopip ; kopija PCLATH registra
   Zastave ; zastavice
   stevec1
   ...
   endc
 
ORG 0x0000
   goto pNastavi
ORG 0x0004
  goto pPrekin
 
 
pPrekin ; sem pride v primeru prekinitve
...
  retfie
 
pNastavi ;
.... tu nastaviš OPTION_REG, TRIS_, INTCON, ADC,  ... in vpišeš začetne vrednosti spremenljivk
... (nekateri to začuda imenujejo GLAVNI, čeprav nima s tem nobene zveze)
 
GlavnaZ ; Glavna Zanka programa
... sem spraviš vse, kar naj bi program počel. V glavnem klicanje podprogramov.
  call pLedNa1
  call pPavza
  call pLedNa0
  call pPavza
 goto GlavnaZ
; Podprogrami
pPavza ;podprogram za Pavzo
...
  return
pLedNa1 ; vklopi Led
...
  return
pLedNa0 ; izklopi Led
...
  return
end ; konec

Poglejte si zgradbe programov tukaj:
http://www.sprut.de/electronic/pic/programm/blink_10f/blink_10f.html
http://www.sprut.de/electronic/pic/programm/index.htm

Ali pa tukaj:
http://www.svet-el.si/download/PICprogrami.zip
http://www.svet-el.si/download/PICnaloga.zip

in upoštevajte imena
GlavnaZ, zZastavice, pPodprogrami, kKonstante ... pa boste ves čas vedeli,
da je kStevec1 konstanta, ki se vpiše v spremenljivko Stevec1, to se zgodi na začetku podprograma pPavza, nato se kStevec1-krat ponovi zanka pPavzaZ, na koncu pa se uspešno postavi zastavica zPavKon.
LP,
Igor

_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mucek4
Član
Član



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

PrispevekObjavljeno: Tor Dec 15, 2009 11:17 am    Naslov sporočila:   Odgovori s citatom

Še vedno ne razumem zakaj umetno podaljšujete izvajanje prekinitve za 2 cikla brez potrbe z GOTO stavkom.
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.: 18.35

PrispevekObjavljeno: Tor Dec 15, 2009 1:04 pm    Naslov sporočila:   Odgovori s citatom

mucek4 je napisal/a:
Še vedno ne razumem zakaj umetno podaljšujete izvajanje prekinitve za 2 cikla brez potrbe z GOTO stavkom.


Žrtev bogovom strukturiranosti.

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



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14679
Aktiv.: 61.78

PrispevekObjavljeno: Tor Dec 15, 2009 1:44 pm    Naslov sporočila:   Odgovori s citatom

Dejstvo je, da z spornim GOTO ni nič narobe razen tega, da pokuri dva ciklusa. Kot sem že napisal - osebno prekinitvene rutine vedno tako pišem. Za lokacijo 0x04 pa postavljam rutine, ki se morajo izvajati na eni strani - recimo tabele. Seveda se tabele lahko postavljajo tudi drugam. Dejstvo pa je, da so le te običajno tiste, katere dostikrat spreminjamo. Tako imam istočasno vse take rutine v glavi programa. Mikrochip je z načinom prekinitve itak precej zasral. Vse prekinitve namreč letijo na 0x04 potem pa je potrebno ugotavljat katera se je zgodila. Spet se pokurijo vsaj 3 ukazni ciklusi. (btfsc, goto) Precej bolj "pametno" je zadevo rečil AVR, kjer ima vsaka prekinitev svoj prekinitveni vektor. Tam pa si prisiljen pisati na tak način.
_________________
lp
Silvo
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 -> Elektronika za začetnike Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
Stran 2 od 3

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


Powered by phpBB © 2001, 2005 phpBB Group