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 

16f628
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
rkp
Član
Član



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Pon Sep 26, 2005 9:11 pm    Naslov sporočila:   Odgovori s citatom

To je inicializacija, ki jo napravim:

Koda:

#define Bank0   bcf    STATUS,RP0   
#define Bank1   bsf    STATUS,RP0


Initial      clrf    PORTA       ; zero ports A et B
              clrf    PORTB

              movlw   0x0F
              movwf   CMCON       ; set port A mode I/O digital
   
              bcf   STATUS,RP1

PORT_Init   Bank1
              clrf   TRISB      ; port B is OUT
              bsf   TRISB,1      ; RX is IN
              clrf   TRISA      ; port A is OUT

              MOVLW    0x0       ;enable VREF
              MOVWF    VRCON
         
              Bank0   
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Sep 27, 2005 6:08 am    Naslov sporočila:   Odgovori s citatom

A lahko pripneš celotno kodo. Bomo lažje odkrili napako. Mimogrede, port najprej definiraš celega kot izhode v naslednji vrstici pa RB1 pretakneš na vhod. Si to hotel?
Registra VRCON ni potrebno polniti z vrednostjo 0 kajti to vrednost ima prevzeto po resetu.

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



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Tor Sep 27, 2005 7:53 am    Naslov sporočila:   Odgovori s citatom

Gre za prvo vajo s popravljeno inicializacijo:

Koda:

   LIST P=16F628A   ;prevajalniku povemo za kateri procesor gre

   #INCLUDE "maxi.inc"      ;lastna inc datoteka
   #INCLUDE P16F628A.INC ;nahajaliçźe datoteke *.INC

   __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
   ;konfiguraciski niz - se lahko doloci rocno pred programiranjem

   CBLOCK 0X20 ;napovemo imena uporabljenih splosno nanenskih registrov - ram
   T1,T2,T3
   ENDC

   org 0x0      ;na lokaciji "0" je reset vektor - tukaj se program zacne
   goto GLAVNI   ;naceloma bi lahko nadaljevali tukaj
   ;a raje lokacijo "0x04" preskoźimo le ta je prekinitveni vektor.
   org 0x100

GLAVNI   ;torej tukaj bomo zaźeli s programom "zares" ;)
   BSF     CMCON, CM0
   BSF     CMCON, CM1
   BSF     CMCON, CM2

   brisiA
   brisiB      
   clrw
   stran1
   preklopiA
   preklopiB
   stran0
   led1_on
   call PAVZA   ;klic podrutine
   led2_on
   call PAVZA
   led3_on
   call PAVZA
   led4_on
   call PAVZA
   led5_on
   call PAVZA
   led6_on
   call PAVZA
   led7_on
   call PAVZA
   led8_on
   call PAVZA
   led9_on
   call PAVZA
   led10_on
   call PAVZA
   led11_on
   call PAVZA
   led12_on
   call PAVZA
   led13_on
   call PAVZA
   brisiA
   call PAVZA
   brisiB
   call PAVZA
   goto GLAVNI




;*********************************************
;pavzo bomo definirali na nacin, da procesor
; zaposlimo naredili bomo par zank
;en ukazen cikel pri 4Mhz kristalu namreź
;traja 1uS
;*********************************************
PAVZA
   movlw 0xFF   ;polnimo "W" ali akumolator z 0XFF
   movwf T1   ;ter to vrednost prenesemo v T1
   movwf T2   ;ter T2 ki predstavljata ram
   movlw .5   ;W polnimo z .10
   movwf T3
P_ZANKA
   decfsz T1,f
   goto P_ZANKA
   movlw 0xFF
   movwf T1
   decfsz T2,f
   goto P_ZANKA
   movlw 0XFF
   movwf T2
   decfsz T3,f
   goto P_ZANKA
   return

   END   ;eof


Prej sem dal pomotoma eno inicializacijo, ki ima B1 vhod. Ampak že pri tej - prvi vaji se ne vklopijo isti dve ledici.
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Sep 27, 2005 8:00 am    Naslov sporočila:   Odgovori s citatom

Tukaj ni videti kake napake - razen konfiguracijskega stavka. Ne vem kako prevajalnik obravnava reset pin, če to ne navedeš?

Poskusi ga napisati takole:

Koda:
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _LVP_OFF & _MCLRE_ON &  _XT_OSC


Mogoče pripneš še vsebino "maxi.inc" ?

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



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Tor Sep 27, 2005 8:15 am    Naslov sporočila:   Odgovori s citatom

Maxi.inc:
Koda:

#DEFINE brisiA    clrf PORTA   ;polnjenje porta/lacha A z 0
#DEFINE brisiB   clrf PORTB   ;polnjenje porta/lacha B z 0
#DEFINE led1_on   bsf PORTA,0   ;postavimo pin RA0 na 1
#DEFINE led2_on   bsf PORTA,1   ;postavimo pin RA1 na 1
#DEFINE led3_on   bsf PORTA,2   ;postavimo pin RA2 na 1
#DEFINE led4_on   bsf PORTA,3   ;postavimo pin RA3 na 1
#DEFINE led5_on   bsf PORTA,4   ;postavimo pin RA4 na 1
#DEFINE led6_on   bsf PORTB,0   ;postavimo pin RB0 na 1
#DEFINE led7_on   bsf PORTB,1   ;postavimo pin RB1 na 1
#DEFINE led8_on   bsf PORTB,2   ;postavimo pin RB1 na 1
#DEFINE led9_on   bsf PORTB,3   ;postavimo pin RB1 na 1
#DEFINE led10_on bsf PORTB,4   ;postavimo pin RB1 na 1
#DEFINE led11_on bsf PORTB,5   ;postavimo pin RB1 na 1
#DEFINE led12_on bsf PORTB,6   ;postavimo pin RB1 na 1
#DEFINE led13_on bsf PORTB,7   ;postavimo pin RB1 na 1
#DEFINE led1_off bcf PORTA,0   ;postavimo pin RA0 na 0
#DEFINE led2_off bcf PORTA,1   ;postavimo pin RA1 na 0
#DEFINE led3_off bcf PORTA,2   ;postavimo pin RA2 na 0
#DEFINE led4_off bcf PORTA,3   ;postavimo pin RA3 na 0
#DEFINE led5_off bcf PORTA,4   ;postavimo pin RA4 na 0
#DEFINE led6_off bcf PORTB,0   ;postavimo pin RB0 na 0
#DEFINE led7_off bcf PORTB,1   ;postavimo pin RB1 na 0
#DEFINE led8_off bcf PORTB,2   ;postavimo pin RB1 na 0
#DEFINE led9_off bcf PORTB,3   ;postavimo pin RB1 na 0
#DEFINE led10_off bcf PORTB,4   ;postavimo pin RB1 na 0
#DEFINE led11_off bcf PORTB,5   ;postavimo pin RB1 na 0
#DEFINE led12_off bcf PORTB,6   ;postavimo pin RB1 na 0
#DEFINE led13_off bcf PORTB,7   ;postavimo pin RB1 na 0
#DEFINE stran1 bsf STATUS,5   ;bank1
#DEFINE stran0 bcf STATUS,5   ;bank0
#DEFINE preklopiA movwf TRISA
#DEFINE preklopiB movwf TRISB
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Sep 27, 2005 8:32 am    Naslov sporočila:   Odgovori s citatom

DEFINE led1_on bsf PORTA,0 ;postavimo pin RA0 na 1
#DEFINE led2_on bsf PORTA,1 ;postavimo pin RA1 na 1
#DEFINE led3_on bsf PORTA,2 ;postavimo pin RA2 na 1
#DEFINE led4_on bsf PORTA,3 ;postavimo pin RA3 na 1
#DEFINE led5_on bsf PORTA,4 ;postavimo pin RA4 na 1
#DEFINE led6_on bsf PORTB,0 ;postavimo pin RB0 na 1
#DEFINE led7_on bsf PORTB,1 ;postavimo pin RB1 na 1
#DEFINE led8_on bsf PORTB,2 ;postavimo pin RB1 na 1
#DEFINE led9_on bsf PORTB,3 ;postavimo pin RB1 na 1


Tole ne bo dobro Sad ... to je vzrok tvojih težav Wink

Sem se prenaglil, nisem dobro pogledal. ... tudi to je ok. Preveri kot ti je napisal Highlag, če ledice sploh gorijo.

_________________
lp
Silvo


Nazadnje urejal/a Silvo Tor Sep 27, 2005 8:40 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Tor Sep 27, 2005 8:33 am    Naslov sporočila:   Odgovori s citatom

Še ena ideja.

Si preveril, da LED diode delujejo?

Sam ponavadi vezje preverim brez procesorja, vzamem eno žičko UTP kabla, ki je dovolj tanka, da jo lahko vtaknem v podnožje recimo na + napajana procesorja in potem z njo preletim po mestih na podnožju, kjer ima procesor definirane izhode.
Če imaš na izhodih LED diode bi se morale prižgati.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
rkp
Član
Član



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Tor Sep 27, 2005 8:43 am    Naslov sporočila:   Odgovori s citatom

Silvo, napačen je samo komentar. Koda je verjetno vredu.

Ledice sem preveril in delujejo.
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Sep 27, 2005 8:49 am    Naslov sporočila:   Odgovori s citatom

rkp je napisal/a:
Silvo, napačen je samo komentar. Koda je verjetno vredu.

Ledice sem preveril in delujejo.


Res, Embarassed zavedlo me je ker sem mislil, da si definiral pine po dejanskih oznakah. Sicer ne vidim programske napake, tako da sumim hardware oz. PIC. "Zapakiraj" vse skupaj v zip pa pripni. Bom zvečer poskusil na testni plošči.

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



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Tor Sep 27, 2005 8:53 am    Naslov sporočila:   Odgovori s citatom

V prikonki sta obe datoteki.


Vaja1a.zip
 Opis:

Download
 Ime datoteke:  Vaja1a.zip
 Velikost datoteke:  1.46 KB
 Downloadano:  7 krat

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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Sep 29, 2005 6:01 am    Naslov sporočila:   Odgovori s citatom

Včeraj sem pozabil odgovoriti.

S programomom ni ni narobe. Vzrok je tisto kar sem navedel že zgoraj.

Citiram:

Tukaj ni videti kake napake - razen konfiguracijskega stavka. Ne vem kako prevajalnik obravnava reset pin, če to ne navedeš?

Poskusi ga napisati takole:

Koda:
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _LVP_OFF & _MCLRE_ON & _XT_OSC




V konfiguracijskem stavku manjka _LVP_OFF in zato ostane vključen LVP ter zato ne dela pin RB4/PGM

PS
Ne vem sicer zakaj si začel glavni program z lokackije 0x100 ? Zaradi tega le ta sicer čisto normalno dela - bilo mi je le čudno, da nisem videl programa ko sem hex naložil v software programatorja.

_________________
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Sep 29, 2005 6:04 am    Naslov sporočila:   Odgovori s citatom

Del iz datasheta:

The LVP bit of the configuration word, enables the low
voltage programming. This mode allows the microcontroller
to be programmed via ICSP using only a 5V
source. This mode removes the requirement of VIHH to
be placed on the MCLR pin. The LVP bit is normally
erased to '1', which enables the low voltage programming.
In this mode, the RB4/PGM pin is dedicated to
the programming function and ceases to be a general
purpose I/O pin. The device will enter Programming
mode when a '1' is placed on the RB4/PGM pin. The
HV Programming mode is still available by placing VIHH
on the MCLR pin.

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



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Pon Feb 27, 2006 10:23 pm    Naslov sporočila:   Odgovori s citatom

Eno vprašanje:

ali je možno na 16f628 vklopiti samo sprejemni (receive) del UARTa? Ko vklopim bit SPEN v RCSTA, se vklopita tako sprejemnik (na RB1) in oddajnik (na RB2). Ker ne potrebujemo oddajnika, bi ga rad izklopil, in pin RB2 raje uporabil kot navaden vhod/izhod.


Hvala.
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Feb 27, 2006 11:01 pm    Naslov sporočila:   Odgovori s citatom

Z vgrajeno periferijo ne bo šlo. Lahko edino spišeš lastno proceduro z rabo standardnega I/O pina.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rkp
Član
Član



Pridružen-a: Čet 07 Jul 2005 23:40
Prispevkov: 20
Aktiv.: 0.08
Kraj: Kočevje, Ljubljana

PrispevekObjavljeno: Pon Feb 27, 2006 11:03 pm    Naslov sporočila:   Odgovori s citatom

Škoda.

Hvala.
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 -> Microchip PIC Č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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group