Autor Tema: Problema con PortA y PortC con el 18F4550 Proton  (Leído 2920 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dawaherjesus

  • PIC12
  • **
  • Mensajes: 59
Problema con PortA y PortC con el 18F4550 Proton
« en: 03 de Diciembre de 2015, 00:50:49 »
Estoy armando un proyecto con el PIC18F4550 y Proton, me ha resultado un poco complicado porque estoy migrando del PIC16F877A.

El inconveniente que tengo es el siguiente, quiero usar PortC.4 y PortC.5 como salida, según ley en otros foros agregando el siguiente código se desactiva el USB de dichos pines y quedan como salidas digitales pero nada que me funciona.

Código: [Seleccionar]
UCON.3 = 0
UCFG.3 = 1

El otro problema que tengo es que configuro PortA.0 como entrada analogica y los demas puertos como Digitales, pero al probar en físico el puerto A se comporta de manera extraña, configuro PortA.1 y PortA.2, como entrada y no me detecta el estado de los switch conectados.

Código: [Seleccionar]
Declare ADIN_RES 10 
Declare ADIN_TAD 2
Declare ADIN_STIME 100

ADCON0 = 0                                   
ADCON1 = %10001110                             
ADCON2 = %10000000
Symbol Nmax = PORTA.1
Symbol Nmin = PORTA.2
Input Nmax
Input Nmin

de antemano muchas gracias por su ayuda
 

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:Problema con PortA y PortC con el 18F4550 Proton
« Respuesta #1 en: 06 de Diciembre de 2015, 01:10:53 »
Hola amigo.

En cuanto a tu problema veo que el registro ADCON0 lo tienes en cero, el bit 0 de este habilita o deshabilita el ADC. De ser posible podrías compartir tu programa para analizarlo a detalle? Y así poderte ayudar

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:Problema con PortA y PortC con el 18F4550 Proton
« Respuesta #2 en: 06 de Diciembre de 2015, 16:19:29 »
El código quedaría asi:

Device = 18F4550
Xtal = 48
TRISA = %111
TRISB = 0
TRISC = 0
UCON.3 = 0

' ** Configuro puerto para LCD **
Declare LCD_RSPin PORTB.4
Declare LCD_ENPin PORTB.6
Declare LCD_DTPin PORTB.0
Declare LCD_Interface 4

'variable para la medición
Dim ADCVAL As Word

Symbol R_W = PORTB.5         ' Pin R/W de LCD
Symbol SW_1 = PORTA.1
Symbol SW_2 = PORTA.2
Symbol LED_1 = PORTC.4
Symbol LED_2 = PORTC.5

'Configuración ADC
Declare Adin_Res 10
Declare Adin_Tad FRC
Declare Adin_Stime 50 
ADCON1 = %00001110   ' Entrada analógica en puerto A.0 
ADCON2 = %10000000   ' Resultado con justificación a la derecha

R_W = 0
DelayMS 200    'Espero 200 milisegundos
Cls   'Limpio LCD

ProgramLoop:
    Print At 1, 2, "ADC PIC18F4550"
    ADIn 0, ADCVAL   ' leer canal 0 y almacenarlo en ADCVAL
    Print At 2,5,"ADCVAL=",Dec ADCVAL,"   "
    If SW_1 = 1 Then LED_1 = 1 : Else : LED_1 = 0
    If SW_2 = 1 Then LED_2 = 1 : Else : LED_2 = 0
    DelayMS 10
    GoTo ProgramLoop
End


 

anything