Vai al contenuto
PLC Forum


Inizializzazione Pic


tntfnc

Messaggi consigliati

ho un problema nell'inizializzare correttamente i registri per la pic 18f4525..riporto in allegato le inizializzazioni che ho fatto in modo da poter capire meglio dove è l'errore.

PROCESSOR 18F4525

RADIX DEC

INCLUDE "P18F4525.INC"

ERRORLEVEL -302

__CONFIG_LVP_OFF

__CONFIG_WDT_OFF

__CONFIG_HS_OSC

__CONFIG_BODEN_OFF

__CONFIG_PBADEN_OFF

CBLOCK 0x0C

count:1

time:1

distance:2

ENDC

CBLOCK 0x00

ENDC

clrf PORTA

movlw 07h

movwf ADCON1

movlw 07h

movwf CMCON

movlw B'10000001'

movwf PORTA

clrf PORTB

movlw 0Fh

movwf ADCON1

movlw B'11001111'

movwf TRISB

movlw B'11000000'

movwf TRISC

movlw B'00000000'

movwf TRISD

movlw B'000000'

movwf TRISE

bcf INTCON,GIE

bcf INTCON,PEIE

bcf INTCON,RBIE

movlw B'11000111'

movwf T0CON

movlw 31

movwf SPBRG

bcf TXSTA,SYNC

bcf TXSTA,BRGH

bcf BAUDCON,BRG16

bsf RCSTA,SPEN

bsf TXSTA,TXEN

questo pic deve essere predisposto per accendere 2 led nei pin RB4, RB5 e trasmettere tramite porta seriale

credo che il problema possa essere nel mettere gli ingressi e le uscite come digitali.

come posso risolvere il mio problema?

Link al commento
Condividi su altri siti


Ciao.

Scusa, ma non ho capito deve hai il problema: forse nel codice che non hai riportato.

Le porte mi sembrano configurate correttamente, per cui se usi "bsf PORTB,x" (X=4 o 5) o "bcf PORTB,x" dovrebbero funzionare.

Mischiare gli ingressi in input e output si fa abitualmente.

Link al commento
Condividi su altri siti

Grazie per aver risposto, ma purtroppo ho fatto quello che dici, ma non mi si accendono lo stesso.. è per questo motivo che ho pensato fosse un problema di inizializzazione..

ma come si impostano gli I/O come digitali?

Link al commento
Condividi su altri siti

In generale, i pin dei micro possono essere configurati per svariate funzioni: input, output, analogici, Tx/Rx, SPI, PWM, ecc.

Nel caso di I/O, c’e’ un registro da 8 o 16 bit (TRISx) dedicato ad ogni porta (A, B, C, …). Nel caso della famiglia PIC18F e' sempre da 8 bit.

Se si pone un bit di questo registro a 0, il bit corrispondente della porta è configurato in output; se si pone a 1, il bit della porta è in input.

Fine della regola generale.

In particolare, bisogna sempre controllare che in pin che vuoi configurare non siano in alternativa con altre funzioni (ad esempio il convertitore A/D): in questo caso bisogna disabilitare la cella del convertitore (ci sono dei registri dedicati).

Da come hai configurato le porte, non mi sembra che ci sia problemi di inizializzazione; forse il problema è a valle e non trascurare l’hardware…

Questo è un "must": controlla sempre il data sheet del componente ed eventuali documenti di “errata”.

Link al commento
Condividi su altri siti

credo di aver capito che il problema sia nell'inizializzazione dei pin che sono inutilizzati.. sapete dirmi come si devono impostare tali piedini?? io finora li ho impostati come uscite, ma credo non basti.. huh.gifworthy.gif

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...