 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Pon Sep 26, 2005 9:11 pm Naslov sporočila: |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Sep 27, 2005 6:08 am Naslov sporočila: |
|
|
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 |
|
 |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Tor Sep 27, 2005 7:53 am Naslov sporočila: |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Sep 27, 2005 8:00 am Naslov sporočila: |
|
|
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 |
|
 |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Tor Sep 27, 2005 8:15 am Naslov sporočila: |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Sep 27, 2005 8:32 am Naslov sporočila: |
|
|
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 ... to je vzrok tvojih težav
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 |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Tor Sep 27, 2005 8:33 am Naslov sporočila: |
|
|
Š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 |
|
 |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Tor Sep 27, 2005 8:43 am Naslov sporočila: |
|
|
Silvo, napačen je samo komentar. Koda je verjetno vredu.
Ledice sem preveril in delujejo.
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Sep 27, 2005 8:49 am Naslov sporočila: |
|
|
rkp je napisal/a: |
Silvo, napačen je samo komentar. Koda je verjetno vredu.
Ledice sem preveril in delujejo. |
Res, 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 |
|
 |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Tor Sep 27, 2005 8:53 am Naslov sporočila: |
|
|
V prikonki sta obe datoteki.
Opis: |
|
 Download |
Ime datoteke: |
Vaja1a.zip |
Velikost datoteke: |
1.46 KB |
Downloadano: |
7 krat |
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Sep 29, 2005 6:01 am Naslov sporočila: |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Sep 29, 2005 6:04 am Naslov sporočila: |
|
|
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 |
|
 |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Pon Feb 27, 2006 10:23 pm Naslov sporočila: |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Feb 27, 2006 11:01 pm Naslov sporočila: |
|
|
Z vgrajeno periferijo ne bo šlo. Lahko edino spišeš lastno proceduro z rabo standardnega I/O pina.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
rkp Član

Pridružen-a: Čet 07 Jul 2005 23:40 Prispevkov: 20 Aktiv.: 0.08 Kraj: Kočevje, Ljubljana
|
Objavljeno: Pon Feb 27, 2006 11:03 pm Naslov sporočila: |
|
|
Škoda.
Hvala.
|
|
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: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|