Sari la conținut
ELFORUM - Forumul electronistilor

PIC 16F684


Vizitator zundapp

Postări Recomandate

Vizitator zundapp

Ma chinui sa fac ceva cu un astfel de PIC si nu reusesc...Nu inteleg de ce daca pe RA4 nu am decit un pull-up extern de 8k2, cind alimentez circuitul pe acest pin "gasesc" 1,84v. Tensiunea de alimentare este de 4,45v.Chiar si numai cu bucata asta de cod "cineva" trage pinul RA4 in 1,84v:************************************************************** #include "p16f684.inc"__CONFIG 04C4 bsf STATUS, RP0 movlw b'10000000' movwf OPTION_REG movlw b'00000000' movwf OSCCON clrf ANSEL movlw b'00111000' movwf TRISA movlw b'00111110' movwf TRISC movlw b'00000001' movwf PIE1 bcf STATUS, RP0 clrf CMCON1 clrf ADCON0 movlw b'10000000' movwf INTCON movlw b'00101100' movwf T1CON movlw b'00111000' movwf PORTA movlw b'00000110' movwf PORTC_Sgoto _Send**************************************************************Poate are cineva o idee, ca nu mai pot, nu mai inteleg nimic...Cam asa am config-ul:

Link spre comentariu
  • Răspunsuri 10
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Liviu M

    4

  • ratza

    1

Top autori în acest subiect

Vizitator MirceaI

salut,pentru inceput ar trebui sa te asiguri ca nu mai e nimic conectat la pinul acela. verifica sa nu ai vreun scurt pe cablaj!sigur folosesti bucata asta de cod pentru initializare? pare a fi rupta din alt program. observ undeva spre sfarsitul codului liniile:movlw b'00111000'movwf PORTAincerci sa setezi chiar pinii care sunt facuti de intrare mai sus si nu prea are sens. nu cred ca asta e problema dar nu ar stica sa mai verifici daca codul acesta este in microcontroller.daca tot nu functioneaza incvearca sa schimbi pinul testat. este posibil sa fi bubuit pinul respectiv sau chiar picul.

Link spre comentariu
Vizitator MirceaI

Dezactiveaz? intrarea analogic? dac? vrei s? ai portul ca IO.

din cate se observa intrarile anaogice sunt dezactivate prin clrf ANSELchiar si pentru o intrare analogica tensiunea pe pinul respectiv ar trebui sa fie in jurul tensiunii de alimentare trasa de pullup. dar nu e cazul
Link spre comentariu

Dupa parerea mea, ceva nu se pupa intre configurarea OSCCON in program si poza din MPLAB.

In program scrii ca OSCCON<0> = 0; in data sheet asta inseamna oscilator extern.

bit 0 SCS: System Clock Select bit1 = Internal oscillator is used for system clock0 = Clock source defined by FOSC<2:0> of the CONFIG register
In MPLAB incerci sa programezi oscilator intern.

Daca ai un osciloscop, incearca sa vezi cat de 1.84V sunt cei 1.84V de pe iesirea aia (eu suspectez un "clock" masurat aiurea de voltmetru).

@MirceaI: Te refereai la ADCON0, nu?

Link spre comentariu
Vizitator MirceaI

Liviu M - ma refeream chiar la registrul ANSEL care valideaza intrarea analogica pe pinii respectivi. in cazul in care bitul corespunzator din acest registru este in 1 acea intrare este analogica (nu pot fi citite valori digitale pe ea).in ADCON0 se selecteaza pinul analogic intrare a ADC. oricum nu asta este problema in cazul de fata.

In MPLAB incerci sa programezi oscilator intern.Daca ai un osciloscop, incearca sa vezi cat de 1.84V sunt cei 1.84V de pe iesirea aia (eu suspectez un "clock" masurat aiurea de voltmetru).

este clar foloseste oscilatorul intern dar se pare ca nu si iesirea de CLK pe RA4. asta inteleg eu din valoare bitilor de configuratie.pinul respectiv ar trebui sa fie de I/O.
Link spre comentariu

Microchip citire:

To enable the ADC module, the ADON bit of theADCON0 register must be set to a ?1?.

Citatele pe care le-am folosit sunt din data sheetul lui 16F684. Inclusiv ala cu OSCCON<0> care trebuie sa fie 1 pentru oscilator intern, nu 0 cum e in program.
Link spre comentariu
Vizitator MirceaI

Microchip citire:

To enable the ADC module, the ADON bit of theADCON0 register must be set to a ?1?.

Citatele pe care le-am folosit sunt din data sheetul lui 16F684. Inclusiv ala cu OSCCON<0> care trebuie sa fie 1 pentru oscilator intern, nu 0 cum e in program.
omul nu a pomenit nimic de ADC. cu pullup cred ca vrea sa foloseasca pinul ca intrare digitala si nu ca intrare de ADC. in momentul cand OSCCON[0] = 0 configuratia oscilatorului este data de valoarea bitilor de configuratie. asta vroiam eu sa spun.nu stiu insa cat il mai intereseaza subiectul pe colegul care a initiat topicul...
Link spre comentariu

Mai incerc o data:

omul nu a pomenit nimic de ADC. cu pullup cred ca vrea sa foloseasca pinul ca intrare digitala si nu ca intrare de ADC.

In cazul de fata ADC-ul e dezactivat, are si clrf ADCON0 si clrf ANSEL in program. Observatia mea era pentru tine: ADC se activeaza/dezactiveaza (global) din ADCON0, nu din ANSEL.

in momentul cand OSCCON[0] = 0 configuratia oscilatorului este data de valoarea bitilor de configuratie.

Si n-are nimic de-a face cu ce i-am zis eu. Eu doar i-am semnalat o neconcordanta intre program si IDE. De obicei , in IDE ai doua posibilitati - sa definesti bitii de configurare in meniul ala sau sa-i ia din program. Da' bitii de configurare tot aia sunt. Asa ca daca are "OSCCON[0] = 0 = oscilator extern" in program si "oscilator = intern" in IDE, ceva nu se pupa.Da' dupa cum ziceai, probabil nu foloseste nimanui discutia noastra.
Link spre comentariu
Vizitator MirceaI

ca sa inchei. daca te uiti la primul tau post ai un citat din datasheet.acolo nu scrie nimic de genul "OSCCON[0] = 0 => oscilator extern"; eu inteleg de acolo ca pentru "OSCCON[0] = 0" sursa oscilatorului este data de Biti de configuratie setati din IDE.dar poate am inteles eu gresit...

Link spre comentariu

Si daca nu folosesti IDE-ul ce faci? :nas:LE Cred ca m-am prins ce vrei sa zici si cred ca ai dreptate cu bitii aia. :jytuiyuBa chiar, din __CONFIG 04C4 ala de la inceput => ca foloseste oscilator intern cu pastrarea functiilor I/O pentru pinii RA4 si RA5. Asa ca tot ce-am zis eu mai sus e aiurea. Scuze!

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări