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 

PIC 16F747 I/O težava
Pojdi na stran Prejšnja  1, 2, 3, 4  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
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Pet Sep 23, 2011 8:26 am    Naslov sporočila:   Odgovori s citatom

Hmmm, probaval vse živo s temi ukazi za set_tris_x, set_analog, .... Odziv vedno enak...

Sem se pa igral naprej tudi s programom in naletel na nov problem, ki predvidevam da je povezan s prejšnjim... Preko tipke spuščam na vhod 5V, vendar mi ga na portu A nikjer ne zazna (poskusil z A0, A1, A3, A5), če ga dam pa na D1 recimo pa je OK in mi program dela.... za port A imam nastavljeno SET_TRIS_A (0b00111111), torej A7 in A6 izhoda, ostali kot vhodi in tudi SETUP_ADC(NO_ANALOGS) - po navodilih CCS.

Je morda kdo iz MB ali okolice, oziroma nasploh kdo, ki obvlada PICe in bi bil pripravljen narediti kak začetniški tečaj?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Pet Sep 23, 2011 10:15 am    Naslov sporočila:   Odgovori s citatom

Na splošno dobimo premalo feedbacka od tebe. Si poskusil vse tisto, kar smo ti predlagali?
Povej kaj si ugotovil.
Za zdaj vemo samo, da imaš nek problem z portB, ki je pravkar postal kriv, da ti zdaj še portA ne dela...

Tako da gremo od začetka (pa tokrat prosim odgovori):
Imaš debugger?
Ga znaš uporabljat?
Za orientacijo nam še povej; koliko projektov na PICih imaš za sabo, od tega koliko na CCS, asemblerju... ?

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Pet Sep 23, 2011 7:10 pm    Naslov sporočila:   Odgovori s citatom

matjazkariz je napisal/a:
Na splošno dobimo premalo feedbacka od tebe. Si poskusil vse tisto, kar smo ti predlagali?
Povej kaj si ugotovil.
Za zdaj vemo samo, da imaš nek problem z portB, ki je pravkar postal kriv, da ti zdaj še portA ne dela...

Tako da gremo od začetka (pa tokrat prosim odgovori):
Imaš debugger?
Ga znaš uporabljat?
Za orientacijo nam še povej; koliko projektov na PICih imaš za sabo, od tega koliko na CCS, asemblerju... ?


Pozdravljen, poizkusil sem z nasveti ki sem jih dobil tule in tudi z nekaterimi stvarmi ki sem jih našel v navodilih CCS manual. Debuggerja nimam, obstaja kakšna free verzija debuggerja za CCS.

Na CCS sem tudi s tem čipom že naredil "projekt" knightriderjev in podobnih zadev z prižiganjem in vgašanjem LED. Zanimivo mi je predvsem to, da so bili takrat uporabljeni isti izhodi/vhodi kot sedaj, z istim osnovnim delom programa, pa je takrat program delal OK, sedaj pa ne. Osnovo tistega programa sem uporabil za tega kar direktno copy-paste, zbrisal pa samo funkcije postavljanja izhodov (output_high...) in main() del...

edino kar od prejsnjih nasvetov nisem razumel je "razmetanost pinov" v prejšnjem postu. Meni se zdi razmetanost pinov pri Igo-tu veliko bolj brez reda kot pri meni...

Moj trenutni programček sem poizkusil sedaj z vhodi D0 in D1 in dela OK, na vhodih kjerkoli na portu A ali B pa vhodi in nekateri izhodi ne delajo.
Vem da so napake neke začetniške, ampak nekak je treba začet, glede na CCS primere ki sem jih našel na netu bi pa naj bilo vse OK, zato mi je zdaj vse skupaj še manj jasno..

lp.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Pet Sep 23, 2011 9:12 pm    Naslov sporočila:   Odgovori s citatom

1. Si preizkusil hardver s kakim drugim preizkušeno delujočim hexom?
2. Imaš osciloskop? Lahko potrdiš, da clock tiktaka?
3. Ali je mikrokontroler brezhiben? Brez pokurjenih portov?
4. Napajalna napetost je ves čas stabilna 5V?
5. Tiskanina ima vse povezave kot je treba brez kakšnih stikov?
6. Pullup 10k na MCLR je prilotan?

Povej rezultate.

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Pet Sep 23, 2011 10:18 pm    Naslov sporočila:   Odgovori s citatom

taubek je napisal/a:
edino kar od prejsnjih nasvetov nisem razumel je "razmetanost pinov" v prejšnjem postu. Meni se zdi razmetanost pinov pri Igo-tu veliko bolj brez reda kot pri meni...
hysterical hysterical Tole je zrelo za otvoritveno šalo v "Malo za šalo X" Mr. Green Mr. Green Saj se šališ, kajne?

Arrow Arrow Za začetek vpiši v CMCON, ADCON1, CVRCON in TRISA registre vrednosti, ki bodo ustrezale tvojim željam glede porta A. Glej PIC datasheet.

A da jaz razmetavam s pini? Tole so TVOJE pravilnostne tabele:
Koda:

if (a==5)
      output_high(RD6);
      output_low(RC7);
      output_high(RD4);
      output_low(RD5);
a RD5    RD4    RC7    RD6
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
3  0      0      1      1
4  0      1      0      0
5  0      1      0      1
6  0      1      1      0
7  0      1      1      1
8  1      0      0      0
9  1      0      0      1

 if (b==5)
      output_high(RD3);
      output_low(RC6);
      output_high(RC5);
      output_low(RD2);
b RD2    RC5    RC6    RD3
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
3  0      0      1      1
4  0      1      0      0
5  0      1      0      1
6  0      1      1      0
7  0      1      1      1
8  1      0      0      0
9  1      0      0      1

if (c==5)
      output_high(RB6);
      output_low(RB3);
      output_high(RB4);
      output_low(RB5);
c RB5    RB4    RB3    RB6
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
3  0      0      1      1
4  0      1      0      0
5  0      1      0      1
6  0      1      1      0
7  0      1      1      1
8  1      0      0      0
9  1      0      0      1

if (d==5)
      output_high(RB2);
      output_low(RD7);
      output_high(RB0);
      output_low(RB1);
d RB1    RB0    RD7    RB2
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
3  0      0      1      1
4  0      1      0      0
5  0      1      0      1
6  0      1      1      0
7  0      1      1      1
8  1      0      0      0
9  1      0      0      1

Če imaš že tako narejeno tiskanino, moraš posamezen pin direktno prilagoditi posameznemu bitu spremenljivk a,b,c in d. V tem primeru je celoten program tak:
Koda:


 RD6 = a.0
 RC7 = a.1
 RD4 = a.2
 RD5 = a.3

 RD3 = b.0
 RC6 = b.1
 RC5 = b.2
 RD2 = b.3

 RB6 = c.0
 RB3 = c.1
 RB4 = c.2
 RB5 = c.3

 RB2 = d.0
 RD7 = d.1
 RB0 = d.2
 RB1 = d.3
Temu se reče razmetani pini.
Če pa tiskanine še nimaš, se pinov ne razmetava, ampak se napravi takole ... Za začetek pravilnostne tabele:
Koda:

a RD3    RD2    RD1    RD0
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
...
8  1      0      0      0
9  1      0      0      1

b RD7    RD6    RD5    RD4
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
...
8  1      0      0      0
9  1      0      0      1

c RB3    RB2    RB1    RB0
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
...
8  1      0      0      0
9  1      0      0      1

d RB7    RD6    RB5    RB4
0  0      0      0      0
1  0      0      0      1
2  0      0      1      0
...
8  1      0      0      0
9  1      0      0      1
Temu primeren je celoten program, kjer ni treba prirejati posameznih bitov in pinov, ampak direktno izpišeš bite spremenljivke na port:
Koda:

temp = PORTD AND '11110000' // zgornje 4 bite ohraniš, spodnje pobrišeš
PORTD = temp OR a // spodaj dodaš a

temp = PORTD AND '00001111' // spodnje 4 bite ohraniš, zgornje pobrišeš
PORTD = temp OR (b<<4) // zgoraj dodaš b, ki je za 4 bite premaknjen v levo

temp = PORTB AND '11110000' // zgornje 4 bite ohraniš, spodnje pobrišeš
PORTB = temp OR c // spodaj dodaš c

temp = PORTB AND '00001111' // spodnje 4 bite ohraniš, zgornje pobrišeš
PORTB = temp OR (d<<4) // zgoraj dodaš d, ki je za 4 bite premaknjen v levo
Po potrebi uredi sintakso, ker ne poznam CCS, ampak pišem programe v Zbirniku.

Verjetno si že opazil razliko. Ti prilagajaš program razporedu pinov, jaz pa pine prilagajam spremenljivkam. Napravi, kar ti je lažje. Čisto vseeno je, važno je, da dela prav. Ampak temu, kar počneš ti, se reče "razmetavanje pinov".

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Pon Sep 26, 2011 11:23 am    Naslov sporočila:   Odgovori s citatom

matjazkariz je napisal/a:
1. Si preizkusil hardver s kakim drugim preizkušeno delujočim hexom?
2. Imaš osciloskop? Lahko potrdiš, da clock tiktaka?
3. Ali je mikrokontroler brezhiben? Brez pokurjenih portov?
4. Napajalna napetost je ves čas stabilna 5V?
5. Tiskanina ima vse povezave kot je treba brez kakšnih stikov?
6. Pullup 10k na MCLR je prilotan?

Povej rezultate.


1. Bom poiskusil danes popoldan - preverim pa lahko samo z instrumentom ker nimam nobenega vezja pripravljenega vnaprej
2. S clockom mislim da ni nic narobe, saj program dela OK, če zamenjam vhodne pine.
3. Mikrokontroler je nov, bi moralo biti vse ok, sprobano tudi z drugim uC in dela enako kot prvi.
4. DA
5. Tiskanina je ok.
6. Pullup upora nisem prilotal, sem izklopil reset z ukazom NOMCLR pri #fuses - bom ga prilotal popoldan kljub vsemu.

lp in hvala za vso pomoč

p.s. tiskanina je že narejena in glede na razporejenost pinov na čipu, ki sledi za izhodi uC, je bilo najlažje naredit takšno razporeditev pinov.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Tor Sep 27, 2011 12:30 pm    Naslov sporočila:   Odgovori s citatom

sem preizkusil z drugim hexom in so bili outputi OK, vhodnih signalov pa v tistem programu nimam. Sem pa tam prožil signale v stilu output_b(0x37), tokrat jih pa prožim posamezno z output_high(PIN_B2)... Za izhode lahko probam z output_bit(PIN_B2, 1), za vhode pa ne vem točno kakšna bi bila alternativa...

lp.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Tor Sep 27, 2011 8:47 pm    Naslov sporočila:   Odgovori s citatom

Ok, za vsak slučaj se še prepričaj, da imaš config bite pravilno nastavljene, čeprav dvomim da tega že nisi sam preveril...
Če to drži, je problem softverski oziroma nastavitve kompilerja.

Seveda poskusi pisati na izhode tako kot v primeru, ko ti je delalo. Pa še za hec postavi vse pine na output in preveri za vsakega kateri dela OK.

Povej rezultat.

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Pon Okt 10, 2011 5:40 pm    Naslov sporočila:   Odgovori s citatom

matjazkariz je napisal/a:
Ok, za vsak slučaj se še prepričaj, da imaš config bite pravilno nastavljene, čeprav dvomim da tega že nisi sam preveril...
Če to drži, je problem softverski oziroma nastavitve kompilerja.

Seveda poskusi pisati na izhode tako kot v primeru, ko ti je delalo. Pa še za hec postavi vse pine na output in preveri za vsakega kateri dela OK.

Povej rezultat.


Sem preveril config bite se enkrat, ampak ni bilo nic kar bi se mi zdelo nepravilno.

Sem pa prebral tudi cel seznam ccs forumov, kjer sem ugotovil, da je treba vrstice
SETUP_ADC(ADC_OFF);
SETUP_ADC_PORTS(NO_ANALOGS);
SETUP_CCP2(CCP_OFF);
napisati znotraj main funkcije in ne na začetku za deklaracijo bitov.

sem prestavil te vrstice noter v main in zadeva je čudežno oživela. Smile

vseeno hvala vsem za trud in dobre nasvete.

lep pozdrav vsem, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Dec 01, 2011 10:03 am    Naslov sporočila:   Odgovori s citatom

Ponovno pozdravljeni,

lotevam se enega novega "projekta", pravtako s PICem 16F747. Zanima me pa ali je možno na PIC pripeljat analogni vhod 4-20mA iz analognega senzorja tlaka, ali je možno s PICem meriti samo napetostne analogne vhode 0-5V??

Če je možno bi bil vesel tudi kakšnega primerčka.
hvala za odgovore.

LP, Matjaž.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5529
Aktiv.: 24.06
Kraj: Domzale

PrispevekObjavljeno: Čet Dec 01, 2011 10:23 am    Naslov sporočila:   Odgovori s citatom

http://en.wikipedia.org/wiki/Current-to-voltage_converter
http://www.control.com/thread/1026154932
http://circuitelec.blogspot.com/2009/03/4-20ma-to-voltage-circuit.html

LP, g



dumb-questions.jpg
 Opis:
 Velikost datoteke:  47.27 KB
 Pogledana:  1 krat

dumb-questions.jpg



_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Dec 15, 2011 8:45 am    Naslov sporočila:   Odgovori s citatom

hvala za odgovor.

Imam pa se eno vprasanje. A je mozno od analognih vhodov uporabit samo vhod AN8 in AN9 ali je potrebno vedno uporabit najprej AN0, AN1 ... in tako naprej do AN12 kot je pisano v datoteki 16F747.h?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
žrepko
Član
Član



Pridružen-a: Tor 23 Mar 2010 20:12
Prispevkov: 700
Aktiv.: 3.77
Kraj: Ptuj-Maribor

PrispevekObjavljeno: Čet Dec 15, 2011 9:32 am    Naslov sporočila:   Odgovori s citatom

Lahko uporabiš kateri koli vhod, ne rabiš po vrstnem redu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
taubek
Član
Član



Pridružen-a: Čet 21 Feb 2008 0:37
Prispevkov: 174
Aktiv.: 0.83
Kraj: Malecnik pri MB

PrispevekObjavljeno: Čet Dec 15, 2011 10:55 am    Naslov sporočila:   Odgovori s citatom

Kako ga pa določim v programu?

SET_ADC_PORTS ( xxxx ) - Glede na dovoljene možnosti lahko za xxxx pišem AN0_to_ANštevilo, nisem pa še probal napisat noter direktno kar AN8, AN9. Lahko na primeru pove kdo kak gre to?

lp, hvala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
žrepko
Član
Član



Pridružen-a: Tor 23 Mar 2010 20:12
Prispevkov: 700
Aktiv.: 3.77
Kraj: Ptuj-Maribor

PrispevekObjavljeno: Čet Dec 15, 2011 11:25 am    Naslov sporočila:   Odgovori s citatom

Žal se s PICi nisem kaj dosti ukvarjal. Vsak prevajalnik ima svoje naslove (v tvojem primeru SET_ADC_PORTS ( xxxx )).
Vem pa, da vse potrebne podatke najdeš v User Manualu od krmilnika. Vem, da je obsežno in dolgo, a ni potrebno da čisto vse prebereš. Preberi le ADC odstavek in ti bo vse jasno.
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, 4  Naslednja
Stran 2 od 4

 
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