Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
JOST Član

Pridružen-a: Ned 23 Nov 2008 12:01 Prispevkov: 130 Aktiv.: 0.64 Kraj: Lokovica
|
Objavljeno: Tor Maj 04, 2010 11:18 pm Naslov sporočila: T0CKI vhod PIC16F628A |
|
|
Imam kontroler 16F628A, s katerim bi rad štel pulze na pinu RA4/T0CKI/CMP2. V tem primeru bi naj bil RA4 kot vhodni pin vir za povečevanje Timerja0(TMR0), ki deluje kot counter. Omogočeno imam prekinitev, ko se izteče TMR0. Ob vsaki prekinitvi se mi poveča vrednost števca, katero prikazujem na LCD-ju. Ampak zadeva mi noče delati, pa ne vem zakaj ne. Vrednost števca se povečuje brez spremembe na vhodu RA4, kot da je vir proženja timerja TMR0 še vedno interni clock. Registre sem nastavil vse tako kot bi naj bili:
TRISA=0b00010000; //na PORTu A so sami izhodi razen RA4 je vhod
OPTION=0b00110011; /* vir TMR0 je T0CKI na negativno fronto, preddelilnik */
INTCON=0b10100000; /* enable TMR0 interrupt, enable global interupt*/
CMCON = 0x07; //komparatorje dam na OFF
V prekinitveni rutini pa tudi izbrišem prekinitveni bit T0IF.
Kaj bi še bilo mogoče narobe? |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Sre Maj 05, 2010 12:13 am Naslov sporočila: |
|
|
Preddelilnik 1:16 .... interrupt se proži vsakih na vsakih 256 dogodkov .... zgoditi se ti mora 16*256 dogodkov, da se ti števec poveča za 1, mogoče te moti to.
Preizkusi najprej izpisovati na LCD TMR0 vrednost, ko boš to uspel se posveti prekinitveni rutini.....
Glede na napisano ti kaj več težko napišem. |
|
Nazaj na vrh |
|
 |
Majster Član


Pridružen-a: Sob 14 Nov 2009 1:05 Prispevkov: 344 Aktiv.: 1.81 Kraj: Majšperk
|
Objavljeno: Sre Maj 05, 2010 6:55 am Naslov sporočila: |
|
|
Ne razumem problema najbolje (verjetno zato ker sem ravno z postelje) ampak PINA4 ne pozna stanja low (npr. output_low) možno da je težava v tem. Probaj kak drug pin. _________________ Smith & Wesson — the original point and click interface. |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Sre Maj 05, 2010 10:39 am Naslov sporočila: |
|
|
Majster, napačno predpostavljaš. RA4 nima pozitivne veje pri izhodu in je le pulldown izhod.
JOST pa uporablja RA4 kot vhod. Vprašanje za JOST-a pa je seveda ali imaš vedno definirane nivoje na tem pinu? |
|
Nazaj na vrh |
|
 |
JOST Član

Pridružen-a: Ned 23 Nov 2008 12:01 Prispevkov: 130 Aktiv.: 0.64 Kraj: Lokovica
|
Objavljeno: Sre Maj 05, 2010 9:39 pm Naslov sporočila: |
|
|
Bungee, kako to misliš vedno definirane nivoje na tem pinu? |
|
Nazaj na vrh |
|
 |
JOST Član

Pridružen-a: Ned 23 Nov 2008 12:01 Prispevkov: 130 Aktiv.: 0.64 Kraj: Lokovica
|
Objavljeno: Čet Maj 06, 2010 5:32 pm Naslov sporočila: |
|
|
RA4/T0CKI pin je Schmitt Trigger input in po moje zato ne dela. Kaj to pomeni, kakšen signal moram jaz pripeljati gor da bi zaznal spremembo? enosmerni signal, ki se spreminja od 0-5V z frekvenco 2kHz bi moral zaznati?
Ali pa je pri meni problem CC5X program, v katerem programiram. |
|
Nazaj na vrh |
|
 |
JOST Član

Pridružen-a: Ned 23 Nov 2008 12:01 Prispevkov: 130 Aktiv.: 0.64 Kraj: Lokovica
|
Objavljeno: Čet Maj 06, 2010 5:32 pm Naslov sporočila: |
|
|
RA4/T0CKI pin je Schmitt Trigger input in po moje zato ne dela. Kaj to pomeni, kakšen signal moram jaz pripeljati gor da bi zaznal spremembo? enosmerni signal, ki se spreminja od 0-5V z frekvenco 2kHz bi moral zaznati?
Ali pa je pri meni problem CC5X program, v katerem programiram. |
|
Nazaj na vrh |
|
 |
compaq Član


Pridružen-a: Tor 10 Mar 2009 12:53 Prispevkov: 100 Aktiv.: 0.50 Kraj: Maribor
|
Objavljeno: Tor Jun 01, 2010 12:48 am Naslov sporočila: |
|
|
Ravnokar se sam ukvarjam z tem problemom da bi na PORT A4 pripeljal signal, ki bi bil input signal.
Sem se kar večino dneva ukvarjal z tem da bi mi uspelo ampak brez uspeha.
Pic, ki ga uporabljam je PIC16f628A. A je komu uspela ta uganka ali še ne?
lp |
|
Nazaj na vrh |
|
 |
dr.kramljak Član

Pridružen-a: Pon 26 Apr 2010 10:59 Prispevkov: 11 Aktiv.: 0.06 Kraj: Radlje ob Dravi
|
Objavljeno: Tor Jun 01, 2010 10:32 am Naslov sporočila: |
|
|
Vhod uporabljaš v isti namen kot predhodnik ali samo za logični 1 in 0 ?
Poglej če imaš v option registru parv postavljena 4 in 5 bit (TOSE in TOCS) |
|
Nazaj na vrh |
|
 |
compaq Član


Pridružen-a: Tor 10 Mar 2009 12:53 Prispevkov: 100 Aktiv.: 0.50 Kraj: Maribor
|
Objavljeno: Tor Jun 01, 2010 10:36 am Naslov sporočila: |
|
|
Ja v isti namen, na A4 pride DS1820. Na žalost sem dobil tega pic-a...
Program, pa poskušam spisat v MikroC pro-ju če bo to komu kaj pomagalo... |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Tor Jun 01, 2010 11:11 am Naslov sporočila: |
|
|
DS1820 - pomeni delaš onewire komunikacijo. Pa si dal pullup upor na ta pin?
Uporabi raje kakšen drug pin, ta je malček nerodna izbira v tem primeru.
@JOST: Pripni kratko kodo, ki ti ne dela.... pa koda naj bo taka, da se jo da prevesti.... |
|
Nazaj na vrh |
|
 |
compaq Član


Pridružen-a: Tor 10 Mar 2009 12:53 Prispevkov: 100 Aktiv.: 0.50 Kraj: Maribor
|
Objavljeno: Tor Jun 01, 2010 1:24 pm Naslov sporočila: |
|
|
Pullup sem dal, 4,7k ohma...
sam sem že razmišljal da bi vzel kakšen drugi pic, ker na tem imam skorajda vse nogice zasedene (LCD,pini za programiranje....
Nalogo sem dobil dodeljeno z tem pic-em, ampak zaj je vprašanje ali mi ga dovolijo zamenjat z večjim. |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Jun 01, 2010 1:58 pm Naslov sporočila: |
|
|
@compaq... Tipke in LCD se da fino kombinirat, programabilne linije z kakšnim preprostim opravilom tudi lahko, ... Povej kaj te muči. |
|
Nazaj na vrh |
|
 |
compaq Član


Pridružen-a: Tor 10 Mar 2009 12:53 Prispevkov: 100 Aktiv.: 0.50 Kraj: Maribor
|
Objavljeno: Tor Jun 01, 2010 2:57 pm Naslov sporočila: |
|
|
Torej na hitro....opis vezja
LCD na PORTB
senzor temperature na RA4
nato še pridejo 4 tipke na RA0-RA3
Izpis LCD-ja ni problem, ampak mi noče na pinu RA4 prebrat vrednosti iz senzorja
Sem poizkusil celi port dat na 0 in 1 da bi ledike utripale, in me edino RA4 in RA5 zezata, in to mi je zaenkrat problem pri tej zadevici....
tukaj še nekaj kode, kako sem naredil utripanje...
Koda: |
void main()
{
TRISa = 0 ; // set PORTB as OUTPUT
option_reg = 0;
//option_reg = 4;
CMCON = 7;
//T0CS = ;
for(;;) // forever
{
PORTa = 0xff ; // turn all LEDs ON
Delay_ms(500) ; // wait 500 ms
PORTa = 0 ; // turn all LEDs OFF
Delay_ms(500) ; // wait 500 ms
}
} |
Torej z to kodo mi je uspelo ga nekako prislit k utripanju, ampak z eno razliko,...
RA4 imam osvetlitev od LCD-ja & (upor)
na Ra3 pa lediko z uporom, utripa oboje, ko pa zamenjam pine pa ledika na RA4 ne utripa  |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Jun 01, 2010 4:13 pm Naslov sporočila: |
|
|
LCD je na PORTB. Recimo da ima RB0-RB3 oz. RB4-RB7 za data. Torej na te 4 pine z LCDjem "multipkelsiraj" svoje tipke. Tako prihraniš 4 pine. Pin neposredno povežeš na LCD. Dodaš 10k pullup in preko tipke 470R polldown. Tipke ne motijo LCDja, LCD ne moti tipk, vsi srečni. |
|
Nazaj na vrh |
|
 |
|