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 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: Tor Jul 12, 2005 10:19 pm    Naslov sporočila:  16f628 Odgovori s citatom

Pozdravljeni.

Že nekaj časa (tednov) se ukvarjam s 16f628 pa mi nikakor ne uspe zagnati še najbolj enostavnega programa. (Sem nov pri PICih).
Program spodaj ni najbolj enostaven, vendar pa sigurno deluje na 16f84. Za test mi ga je dal Vizi. Malo sem ga popravil (zaradi 16f628-) pa še vedno nič.

Koda:

   ERRORLEVEL -224   ;izklop sporoźil ,ki jih ne §elimo videvat

   LIST P=16F628   ; kateri procesor bomo uporabili

#INCLUDE "f:\asm\P16F628.INC" ;nahajaliçźe datoteke *.INC

   __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;konfiguracijski stavek ni zaçźite pred kopiranju,WDT izkljuźen PWRTE vkljuźen kristali oscilator


;---------------------------------------------------------------------------------
;oznaźeni del je nekako standarden in se pri ostalih programih ne bo bistveno
;spreminjal

   CBLOCK 0X20 ;zaźetek lokacij RAMA (sploçno namenskih registrov max 68)
   T1
   ENDC

   ORG 0   ;zaźetna lokacija
   GOTO GLAVNI   ;skok na "glavni program"

   ORG 0X5   ;zaźetek kode glavnega programa

;****************************************************
;TUKAJ BOMO PRIPRAVILI PORTE
;16F84 IMA DVA PORTA
;PORTA - 5 VHODNO IZHODNIH PINOV
;PORTB - 8 VHODNO IZHODNIH PINOV
;PO RESETU SO VSI PINI DEFINIRANI KOT VHODI
;****************************************************
GLAVNI
   CLRF PORTA   ;vsi pini na portu A bodo po preklopu na izhode nizki
   CLRW       ;brisanje delovnega registra W (polni se z vrednostjo 0)
   TRIS PORTA   ;vrednost z W v TRISB preklop porta A vsi pini so izhodi
   OPTION      ;vrednost z W v OPTION_REG pull up upori vkljuźeni (ostalo sedaj ni pomembno)

ZANKA
   BTFSC PORTB,1   ;je pritsnjena T1 ? (nizko stanje port B1)
   GOTO TIPKA2   ;preverimo tipko T2
   BSF PORTA,3   ;vkljuźimo LED1 (na portu A3)
   BSF PORTA,2   ;vkljuźimo LED2 (na portu A2)
ZANKA1
   BTFSS PORTB,1   ;je T1 spuçźena ? (visoko stanje na PORTB 1)
    GOTO ZANKA1   ;ne ,ponovno preveri
TIPKA2
   BTFSC PORTB,2   ;je pritsnjena T2 ? (nizko stanje port B2)
   GOTO TIPKA3   ;preverimo tipko T3
   BCF PORTA,3   ;izkljuźimo LED1 (na portu A3)
ZANKA2
   BTFSS PORTB,2   ;je T2 spuçźena ? (visoko stanje na PORTB 2)
    GOTO ZANKA2   ;ne ,ponovno preveri
TIPKA3
   BTFSC PORTB,3   ;je pritsnjena T3 ? (nizko stanje port B2)
   GOTO TIPKA4   ;preverimo tipko T4
   BCF PORTA,2   ;izkljuźimo LED2 (na portu A2)
ZANKA3
   BTFSS PORTB,3   ;je T3 spuçźena ? (visoko stanje na PORTB 3)
    GOTO ZANKA3   ;ne ,ponovno preveri
TIPKA4
   BTFSC PORTB,4   ;je pritsnjena T4 ? (nizko stanje port B2)
   GOTO ZANKA   ;skeniranje tipk od zaźetka
   BTFSS PORTA,0   ;§e LED3 na porta0 gori ?
   GOTO LED_ON   ;ne ;skok na led_on
   BCF PORTA,0   ;da torej jo izkljuźim
ZANKA4
   BTFSS PORTB,4   ;je T4 spuçźena ? (visoko stanje na PORTB 4)
    GOTO ZANKA4   ;ne ,ponovno preveri
   GOTO ZANKA   ;skeniranje tipk od zaźetka
LED_ON
   BSF PORTA,0   ;vklop LED 3 na porta0
   GOTO ZANKA4

   END   ;EOF


Isti programator kot za 16f84 ga vredu sprogramira (verify je uspešen), tako da dvomim da bi bil pokvarjen. Tudi skompajliran je vredu. Je kaj narobe s programom?
Kak bi zgledal najbolj enostaven možen program (recimo da samo vžge vse porte)?

Hvala za predloge, pomoč.

Rok
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 Jul 12, 2005 11:07 pm    Naslov sporočila:   Odgovori s citatom

Koliko sem na hitro pogledal program ni videt kake očitne napake.
S tvojega vprašanja pa ne razumem v čem je pravzaprav težava.

Ti prevajalnik ne "prebavi" programa in javlja kako napako.. ali program se prevede, težava je s programatorjem oz. programiranjem? Če je težava drugo navedi kak programator uporabljaš.

_________________
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 Jul 12, 2005 11:19 pm    Naslov sporočila:   Odgovori s citatom

Prevede se vredu, in tudi sprogramira (verify je uspešen).
Shemo programatorja prilagam.
Testiral sem na čisto enostavnem vezju (na protoboardu), s kristalom, in led diodami.

Ko sem malo pregledal forum, sem opazil, da vsi večinoma uporabljata Elektorjevo razvojno okolje. Še vprašanje glede tega:
katere funkcije zgubim, če ne priklopim LCD zaslona oz. je ta nujen za razvoj?



jdmprog.gif
 Opis:

Download
 Ime datoteke:  jdmprog.gif
 Velikost datoteke:  6.31 KB
 Downloadano:  37 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: Tor Jul 12, 2005 11:27 pm    Naslov sporočila:   Odgovori s citatom

LCD potrebuješ, če želiš kaj delati z njim. Za programiranje pa ni potreben.
Sicer za tvojo težavo sumim JDM programator. Problem je vrjetno prenizka VPP. Predlagam ti izdelavo p16pro (paralelni programator z lastnim napajanjem). O njem se je na forumu kar dosti pisalo. Z njim gre progamirat praktično vse pic-e. Avtor pa je z letošnjem letom tudi dal na razpolago freeware polno verzijo. www.picallw.com

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



Pridružen-a: Ned 04 Jan 2004 21:56
Prispevkov: 49
Aktiv.: 0.21

PrispevekObjavljeno: Sre Jul 13, 2005 8:20 am    Naslov sporočila:   Odgovori s citatom

Meni se zdi, da je potrebno izklopit komparatorje na portA, ali pa sem brcnil
v temo Cool . Ker jih 16f84 nima ta jih pa ima?!
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: Sre Jul 13, 2005 9:24 am    Naslov sporočila:   Odgovori s citatom

Kje oz. kako se pa to naredi? V čem je sploh fora teh komparatorjev?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
LoLek
Član
Član



Pridružen-a: Sre 25 Feb 2004 12:46
Prispevkov: 343
Aktiv.: 1.45

PrispevekObjavljeno: Sre Jul 13, 2005 10:07 am    Naslov sporočila:   Odgovori s citatom

ma73 je napisal/a:
Meni se zdi, da je potrebno izklopit komparatorje na portA, ali pa sem brcnil
v temo Cool . Ker jih 16f84 nima ta jih pa ima?!


To je možno, ja. Poglej v datasheet za ta pic, kaj moraš nastaviti za porta. Nekateri pici imajo res po deafult-u nastavljen komparator za kakšen port.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ma73
Član
Član



Pridružen-a: Ned 04 Jan 2004 21:56
Prispevkov: 49
Aktiv.: 0.21

PrispevekObjavljeno: Sre Jul 13, 2005 12:54 pm    Naslov sporočila:   Odgovori s citatom

Se opravičujem, prilagam kar v angleščini.
Nimam trenutno časa!
Sad
Using the Port A comparator pins for normal I/O.

The lower 3-bits (CM2, CM1 and CM0) of the CMCON register control the comparator MODE. Out of eight possible modes, a value of "7" loaded into CMCON turns the comparators OFF, and allows all of Port A to function as normal digital I/O.

Writing a value of 7 (binary 00000111) to CMCON turns OFF the comparators. Using PicBasic Pro, you simply add the following line of code to the beginning of your program to turn OFF the comparators, and use these pins as normal digital I/O-pins:

CMCON = 7

Using assembly language, turning OFF the comparator module can be accomplished by:

MOVLW 0x07 ; Load 7 into W register
MOVWF CMCON ; CMCON = contents of W register 7h

Port A.0, A.1, A.2, and A.3 will now operate as normal I/O-pins with comparators turned OFF.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
glavič
Član
Član



Pridružen-a: Pon 17 Maj 2004 23:12
Prispevkov: 321
Aktiv.: 1.36
Kraj: Grosuplje

PrispevekObjavljeno: Sre Jul 13, 2005 1:28 pm    Naslov sporočila:   Odgovori s citatom

rkp je napisal/a:
Kje oz. kako se pa to naredi? V čem je sploh fora teh komparatorjev?
To se naredi tako da nastaviš bite CM2:CM0 na 111 v registru CMCON.
V čem je "fora" teh komparatorjev si pa poglej v datasheet za 16F628, poglavje 9.
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: Sre Jul 13, 2005 7:33 pm    Naslov sporočila:   Odgovori s citatom

ma73 je napisal/a:
Meni se zdi, da je potrebno izklopit komparatorje na portA, ali pa sem brcnil
v temo Cool . Ker jih 16f84 nima ta jih pa ima?!


Točno, sem spregledal, da so ledice na portua.
Po resetu so namreč AD pini definirani kot analogni.
kot so ti že napisali pobriši 3 nizke bite CMCON registra(lahko kar cel register) preden pine definiraš kot izhode.

Koda:

clrf CMCON


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



Pridružen-a: Pon 17 Maj 2004 23:12
Prispevkov: 321
Aktiv.: 1.36
Kraj: Grosuplje

PrispevekObjavljeno: Sre Jul 13, 2005 7:44 pm    Naslov sporočila:   Odgovori s citatom

Silvo je napisal/a:
kot so ti že napisali pobriši 3 nizke bite CMCON registra(lahko kar cel register) preden pine definiraš kot izhode.

Koda:

clrf CMCON

V datasheetu piše da se morajo zadnji trije biti postaviti na 1, da bodo komparatorji off.
tako da koda je
Koda:
        BSF     CMCON, CM0
        BSF     CMCON, CM1
        BSF     CMCON, CM2
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: Sre Jul 13, 2005 7:54 pm    Naslov sporočila:   Odgovori s citatom

glavič je napisal/a:
Silvo je napisal/a:
kot so ti že napisali pobriši 3 nizke bite CMCON registra(lahko kar cel register) preden pine definiraš kot izhode.

Koda:

clrf CMCON

V datasheetu piše da se morajo zadnji trije biti postaviti na 1, da bodo komparatorji off.
tako da koda je
Koda:
        BSF     CMCON, CM0
        BSF     CMCON, CM1
        BSF     CMCON, CM2


Embarassed Drži, moja napaka. V mislih sem imel ANSEL (analog select register) register (katerega ta pic nima) . Tukaj so prevzete vrednosti po resetu b'111' Pini so analogni vhodi

_________________
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: Sre Jul 13, 2005 9:49 pm    Naslov sporočila:   Odgovori s citatom

OK, sedaj dela. Hvala za pomoč.
Slaba stran programa je le, da ne upoševa 'debouncinga' tipk, ampak to itak ni bil moj namen - jaz ne potrebujem branja tipk.
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 Sep 26, 2005 8:35 pm    Naslov sporočila:   Odgovori s citatom

Imam problem pri 16f628 in ga ne uspem najti. In sicer že pri prvi vaji, ki jo je objavil Silvo, se mi nočejo prižgati ledice D12 in D19 (led4 in led10 - RA3 in RB4), čeprav sem izklopil komparatorje :
Koda:

   movlw   0x0F
   movwf   CMCON       ; set port A mode I/O digital

in za vsaj slučaj:
Koda:

   MOVLW    0x0       ;enable VREF
   MOVWF    VRCON


Pregledal sem že skoraj cel datasheet in ne najdem rešitve. Zdi se, kot da bi bili ti izhodi skonfigurirani za drugo funkcijo...

Imate kakšno idejo, kako jih prepričat, da postanejo navadni izhodi?
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: Pon Sep 26, 2005 9:01 pm    Naslov sporočila:   Odgovori s citatom

Si se postavil v pravo banko pred nastavitvijo delovanja posameznih izhodov?

Ker ne poznam, konkretnega PICa. V datasheetu imaš precej na začetku eno tabelo, kjer so vpisane lokacije posameznih registrov. Za vpis v nekatere rabiš zamenjat banko! Banko nastaviš z Status registrom.

Izhode moraš poleg tega še nastaviti kot izhodne. (Če niso) Register Tris ponavadi uravnava to funkcijo

_________________
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
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 1, 2, 3  Naslednja
Stran 1 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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group