Autor Tema: Mis primeros pasos con el 18F4550  (Leído 169711 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Mis primeros pasos con el 18F4550
« Respuesta #90 en: 16 de Mayo de 2007, 17:36:50 »
Carlos ya está arreglado, gracias por avisar
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado txiku

  • PIC10
  • *
  • Mensajes: 9
Re: Mis primeros pasos con el 18F4550
« Respuesta #91 en: 25 de Mayo de 2007, 09:32:47 »
Hola Picmaniacos:
Respecto a la pregunta que le hize a palitroquez hace ya unas semanas, tengo una solucion bastante interesante acerca de como enviar desde Visual basic variables de tipo entero, strings, etc hacia el micro PIC18f4550 y que este realize operaciones con ellos. Ahora mismo estoy utilizando una serie de instrucciones que la libreria usb_cdc.h pone a disposicion del programador, como es get_string_usb(*p,20). Desde visual basic y a traves del puerto serie COM solo permite enviar variables de tipo string. Desde el pic y a traves de esta instruccion puedo facilmente capturar cualquier tipo de mensaje enviado a traves del puerto serie, solo tengo que definir un array con una longitud maxima como argumentos de dicha funcion.
De la misma forma esta libreria posee get_int_usb() y para float y double, todavia no he comprobado su funcionamiento pero seguramente funcionen igual de bien que la de strings.

Palitroquez, a ver si me puedes echar una mano con esto. me he dado una vuelta por el foro buscando informacion sobre generar o empaquetar ficheros ejecutables o instalables de mis aplicaciones creadas con visual studio .net 2005. La informacion encontrada no me acaba de resolver de todo el problema. El objetivo es hacer unos ficheros instalables para correr mis aplicaciones en otros equipos que no posean el entorno visual studio instalado. La verdad es que se me echa el tiempo encima. Gracias de antemano.
Txiku

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Mis primeros pasos con el 18F4550
« Respuesta #92 en: 25 de Mayo de 2007, 14:01:22 »
Hola txiku


...
De la misma forma esta libreria posee get_int_usb() y para float y double, todavia no he comprobado su funcionamiento pero seguramente funcionen igual de bien que la de strings.

tampoco he realizado pruebas con tipos de datos floats ni double  :(

Palitroquez, a ver si me puedes echar una mano con esto. me he dado una vuelta por el foro buscando informacion sobre generar o empaquetar ficheros ejecutables o instalables de mis aplicaciones creadas con visual studio .net 2005. La informacion encontrada no me acaba de resolver de todo el problema. El objetivo es hacer unos ficheros instalables para correr mis aplicaciones en otros equipos que no posean el entorno visual studio instalado. La verdad es que se me echa el tiempo encima. Gracias de antemano.
Txiku

otra mala noticia que darte  :( he usado solo el visual basic 6.0 y del .net no he podido conseguirlo, y por las cosas que he leido, es bastante diferente en varios aspectos respecto al 6.0

a ver si un forero que tenga experiencia con el .net nos informe.
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Slalen

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1079
    • Página web personal de Guillermo Herrero González
Re: Mis primeros pasos con el 18F4550
« Respuesta #93 en: 28 de Mayo de 2007, 06:36:31 »
Hola de nuevo!!!!!
Por fin puedo comentaros algo sobre mi trabajo fin de carrera!! :mrgreen:
He colgado aqui la memoria y los programas. Es una recopilación de los demás archivos, con correcciones y más anotaciones para simplificar un poco más las cosas.

No se si será la definitiva, pero debido a las preguntas sobre las librerías y los códigos que colgué en su día me he dado más prisa y he subido los archivos.

Un saludo a todos!!!

Espero que toda esa parrafada sirva para ayudar a alguien :mrgreen:

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Mis primeros pasos con el 18F4550
« Respuesta #94 en: 28 de Mayo de 2007, 06:52:37 »
Enhorabuena Slalen, ¡te habrás quedado agusto después de escribir 653 páginas, macho!

Desconectado txiku

  • PIC10
  • *
  • Mensajes: 9
Re: Mis primeros pasos con el 18F4550
« Respuesta #95 en: 28 de Mayo de 2007, 15:22:33 »
Hola Palitroque:

Ya resolvi el problema de los ficheros ejecutables e instalables de Visual studio. Este es mi caso particular ya que estaba usando el control Mscomm importado desde VB6 con el Mscomm32.ocx. La forma de crear ficheros ejecutables y llevarlos a otro equipo es mediante el menu "BUILD" y se crearan en el directorio del proyecto en una carpeta llamada Debug o Release. Para crear un archivo instalable y exportarlo a otro equipo sirve con el menu "PUBLISH". En mi caso he tenido que registrar en el Pc donde queria correr mi aplicacion, el fichero Mscomm32.ocx, que se encarga de controlar el puerto serie. Haciendo este registro y ejecutando el fichero ejecutable ya tengo mi aplicacion funcionando en cualquier Pc.
No olvidar instalar la version correspondiente del Microsoft .NET framework

Saludos Txiku

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Mis primeros pasos con el 18F4550
« Respuesta #96 en: 28 de Mayo de 2007, 21:41:36 »
Enhorabuna Slalen por tu proyecto de fín de carrera y gracias por compartirlo con todos. Es un excelente trabajo que aclara muchas dudas en cuanto al USB y a los micros (practicamente tenemos un datasheet en toda regla). Solo me queda animarte para que continues con la superior.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Slalen

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1079
    • Página web personal de Guillermo Herrero González
Re: Mis primeros pasos con el 18F4550
« Respuesta #97 en: 29 de Mayo de 2007, 05:37:25 »
Enhorabuena Slalen, ¡te habrás quedado agusto después de escribir 653 páginas, macho!

Enhorabuna Slalen por tu proyecto de fín de carrera y gracias por compartirlo con todos. Es un excelente trabajo que aclara muchas dudas en cuanto al USB y a los micros (practicamente tenemos un datasheet en toda regla). Solo me queda animarte para que continues con la superior.

Un saludo.

Muchas gracias a los dos!!! :mrgreen:
Cuando lo presente ya os comentaré.... (que cague)
Lo de la superior... no creo. Pero gracias por los ánimos  :mrgreen:

A ver si puedo colgaros unas fotos del trasto...

Un saludo, Muchas gracias!!

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Mis primeros pasos con el 18F4550
« Respuesta #98 en: 29 de Mayo de 2007, 12:29:00 »
...
Ya resolvi el problema de los ficheros ejecutables e instalables de Visual studio. Este es mi caso particular ya que estaba usando el control Mscomm importado desde VB6 con el Mscomm32.ocx. La forma de crear ficheros ejecutables y llevarlos a otro equipo es mediante el menu "BUILD" y se crearan en el directorio del proyecto en una carpeta llamada Debug o Release. Para crear un archivo instalable y exportarlo a otro equipo sirve con el menu "PUBLISH". En mi caso he tenido que registrar en el Pc donde queria correr mi aplicacion, el fichero Mscomm32.ocx, que se encarga de controlar el puerto serie. Haciendo este registro y ejecutando el fichero ejecutable ya tengo mi aplicacion funcionando en cualquier Pc.
No olvidar instalar la version correspondiente del Microsoft .NET framework
...

¡¡que bién txiku!! por lo que comentas es muy parecido al VB 6.0 a excepción que hay que instalar el framework



(Slalen) ¿Guillermo ese es tu nombre?

acabo de darle una ojeada a tu tesis, y dejame FELICITARTE por el empeño y el esmero que le pusiste. como decimos aquí "le echaste un camión a ese proyecto"   :-/ :-/


bueno amig@s con esta tesis tienen una BUENA referencia para los que quieran empezar con el 18F4550 y sus hermanos 'menores', está TODO TODO explicado y en ESPAÑOL sobre la arquitectura de este uC PIC y como no podía faltar el módulo USB.

seguiré leyendo en otro rato, son demasiadas paginas.  :)

PD:
le echaste un camión: dedicarle mucho empeño a una meta propuesta.
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Slalen

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1079
    • Página web personal de Guillermo Herrero González
Re: Mis primeros pasos con el 18F4550
« Respuesta #99 en: 30 de Mayo de 2007, 06:26:43 »
(Slalen) ¿Guillermo ese es tu nombre?

acabo de darle una ojeada a tu tesis, y dejame FELICITARTE por el empeño y el esmero que le pusiste. como decimos aquí "le echaste un camión a ese proyecto"   :-/ :-/


bueno amig@s con esta tesis tienen una BUENA referencia para los que quieran empezar con el 18F4550 y sus hermanos 'menores', está TODO TODO explicado y en ESPAÑOL sobre la arquitectura de este uC PIC y como no podía faltar el módulo USB.

seguiré leyendo en otro rato, son demasiadas paginas.  :)

PD:
le echaste un camión: dedicarle mucho empeño a una meta propuesta.


Muchas gracias PalitroqueZ, pero parte de los méritos son tuyos y de otra gente de este foro!!

Si, mi nombre es guillermo, no lo había puesto en ningún sitios (hasta ahora)


Cuelgo un gif animado de las vistas del cochecito.

Un saludo y muchas gracias a todos!!!

Desconectado akelaver

  • PIC10
  • *
  • Mensajes: 21
Re: Mis primeros pasos con el 18F4550
« Respuesta #100 en: 30 de Mayo de 2007, 08:06:26 »
disculpen pero tengo un ligerillo problema ya que el CCS que tengo para programar no cuenta con las librerias de !*F2550 ni la del 18F4550 ni otras maas q son necesarias para los ejemplos que han venido explicando aqui si alguien me las pudiera facilitar o decirme donde las puedo conseguir se los agradeceria mucho

saludos desde mexico

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Mis primeros pasos con el 18F4550
« Respuesta #101 en: 01 de Junio de 2007, 14:07:34 »
¡Hola!

ha pasado tiempo que no le dedico al aprendizaje, aprovecharé un tiempito libre que tengo, a ver que se puede hacer con el 18f4550

ahora le toca al módulo Timer1 , ya le había echado el guante para generar demoras en modo temporizador con base de tiempo interno (ver este tema), pués ahora le toca la temporización con base de tiempo externa  e interrumpiendo la cuenta al desborde.

yendo a la página 131 del 39632D.pdf tenemos lo necesario para hacer arrancar a este señor.

antes de ver registros, etc vamos por el dibujito (FIGURE 12-1), así se hace fácil de entrarle :)



esa imagen lo dice todo, si yo quiero por ejemplo que el timer1 me cuente x segundos en modo sleep, trayendo como consecuencia que debo usar una base de tiempo externo mediante un cristal e independientemente del ritmo a que vá el micro, entonces a dibujaré mi camino de registros a usar.




siguiendo el camino de la 'culebrita' entonces los bits de los SFR van de esta manera:

T1OSCEN <- b'1'

TMR1CS <- b'1'

T1CKPS1:T1CKPS0 <- b'00'

T1SYNC <- b'1'

TMR1ON <- será tratado para habilitar el timer1 cuando sea requerido

TMR1IF <- será tratado en el servicio de petición a la interrupción

(ISR ó SRI)

y ¿donde estan esos bits? todos estan el el SFR T1CON



¡ah! me faltaron 2

RD16 y T1RUN ¿quienes son esos?

Código: C
  1. RD16: 16-Bit Read/Write Mode Enable bit
  2. 1 = Enables register read/write of Timer1 in one 16-bit operation
  3. 0 = Enables register read/write of Timer1 in two 8-bit operations
  4.  
  5. T1RUN: Timer1 System Clock Status bit
  6. 1 = Device clock is derived from Timer1 oscillator
  7. 0 = Device clock is derived from another source

en mi caso quedaran así:

RD16 <- b'0'
T1RUN <- 0b'0'

ya tenemos lista la parte de configurar el T1CON, falta saber cuanto debo cargar el par TMR1H:TMR1L

usaré un cristal de 32Khz -> d'32000' -> 0x7D00 entonces para completar la cuenta de 1 segundo restaré el máximo permitido d'65535' -> 0xffff - 0x7D00 -> 0x82FF

con esto quiero decir que al encender el timer, éste comenzará a contar o incrementarse a partir de 0x82FF y al llegar a 0xffff + 1 se desbordará el par TMR1H:TMR1L y ocurrirá mi interrupción de 1 segundo

(sumando a los ciclos de las lineas dentro del SRI)

parte del código quedaría así

Código: ASM
  1. ...
  2.  movlw b'00001111'      ; Configure for external clock,
  3.         movwf T1OSC             ; Asynchronous operation, external
  4.  
  5. oscillator
  6.  ...
  7.  movlw  0xff
  8.         clrf    TMR1L
  9.         movlw   0x82
  10.         clrf    TMR1H

antes de escribir el programa completo, me conseguí con una piedra nueva en el camino, me refiero al tema de las interrupciones, resulta que en la familia 18, existen 2 tipos de interrupciones, no ahondaré mucho ya que el amigo micro_cadaver lo está desarrollando en este post  (y además estoy empezando, quee voy a está explicando yo jeje)
 
peero si me remitiré como usarlo en este ejemplo.



(pág 135)

aquí señalé los SFR involucrados con la interrupción

empecemos por el último:

TMR1IP: TMR1 Overflow Interrupt Priority bit
1 = High priority
0 = Low priority

como yo usaré la dirección 0x8 para el ISR, es decir, la ISR de alta prioridad, entonces

TMR1IP <- 0x1

PIE1: ya es conocido de los que vienen de la familia 16, selecciona la fuente de interrupción timer1

TMR1F: la bandera que se activa cuando ocurre el desbordamiento, no es tan necesario en este caso.

GIE: ya es conocido de los que vienen de la familia 16, es el 'papá de los helados' de las interrupciones, sin éste nadie vá pal baile, es decir, no ocurrirá ninguna interrupción.

esto que hice se puede representra graficamente con el camino de la culebrita:



el código completo:

Código: ASM
  1. ;******************************************************************************************
  2. ; haciendo arrancar el timer1 en modo contador externo asincrono (base de tiempo externa)
  3. ; a traves de un cristal 32Khz para contar tiempos de 1 Seg poniendo a dormir el micro,
  4. ; despertando luego de una interrupcion para encender o apagar un led
  5. ; Pedro - PalitroqueZ
  6. ; 30-Mayo-2007    10:30 PM
  7. ;*****************************************************************************************
  8.         #DEFINE LED_RD0 LATD,0,ACCESS           ; RD0
  9. ;**************************************************************************
  10.         LIST P=18F4550  ;directive to define processor
  11.         #include <P18F4550.INC> ;processor specific variable definitions
  12.  
  13. ;**************************************************************************
  14.         CONFIG FOSC = XTPLL_XT, PLLDIV = 1,CPUDIV = OSC1_PLL2,USBDIV =2,PWRT = ON,BOR = SOFT, VREGEN = OFF      CONFIG WDT = OFF ,WDTPS = 1,MCLRE = ON,PBADEN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF
  15.  
  16. ;**************************************************************************
  17.         org 0
  18.         goto inicio
  19.  
  20.         org 0x8                         ;interrupcion alta prioridad
  21.         bcf PIR1, TMR1IF                        ; Clear interrupt flag
  22.         btg     LED_RD0         ; togglea a rd0 para encender o apagar al led
  23.         movlw   0xff            ; carga 0x82ff en TMR1
  24.         movwf   TMR1L
  25.         movlw   0x82
  26.         movwf   TMR1H
  27.         retfie
  28.  
  29. ;********************************************************
  30. inicio:
  31.         clrf LATA ; limpia los latch
  32.         clrf LATB
  33.         clrf LATC
  34.         clrf LATD
  35.         clrf LATE
  36.         clrf TRISA
  37.         clrf TRISB ; configura RB0<- entrada, el resto -> salida
  38.         clrf TRISC
  39.         clrf TRISD
  40.         clrf TRISE
  41. ;//------------------------------------------------------
  42. ; ahora viene la deshabilitacion de modulos (pheriperals)
  43. ;*******************************************************
  44.         clrf ADCON0 ; desactiva el CAD
  45.         movlw 0xf
  46.         movwf ADCON1 ; todas digitales
  47.         bcf INTCON,GIE ; desactiva interrupciones
  48.         movlw 0x7
  49.         movwf CMCON ;desactiva el modulo comparador
  50.         ;clrf SPPCON ; desactiva el modulo Streaming Parallel Port (SPP)
  51.         clrf SSPCON1 ; desactiva el modulo MSSP,SSPEN
  52.         ;bcf UCON,USBEN ; desactiva el modulo USB
  53.         bsf INTCON2,RBPU ; desactiva las resistencias de amarre en PORTB
  54.  
  55. ;//-------------------------------------------
  56.  
  57.         movlw b'01001000'
  58.         movwf   OSCCON
  59.        
  60.         movlw b'00001110'       ; Configure for external clock, timer1=off
  61.         movwf T1CON             ; Asynchronous operation, external oscillator
  62.         bsf PIE1,TMR1IE         ; Enable Timer1 interrupt
  63.  
  64.         movlw   0xff
  65.         movwf   TMR1L
  66.         movlw   0x82
  67.         movwf   TMR1H
  68.         bsf     RCON,IPEN               ; se acepta las interrupciones prioritarias
  69.         bsf     IPR1,TMR1IP             ; TMR1 Overflow Interrupt Priority bit, High priority
  70.         bsf T1CON,TMR1ON                                        ; enciende el timer1
  71.         bsf     INTCON,GIEH
  72.         ;sleep
  73. d:      nop
  74.         goto d
  75.  
  76.         END

correción: al final del programa va así:

Código: ASM
  1. ...
  2. bsf     INTCON,GIEH
  3. d:      sleep
  4.                 goto d
  5.  
  6.                 END


el que tenga dudas con las palabras de configuraciones, busque hlpPIC18ConfigSet.chm


notas:

- traté de simular la interrupción en MPLAB-SIM, y en la ayuda está muy confuso, por un lado dicen que si se puede colocando un clock stimulus (haciendo la de clock external):


16-bit Core (PIC18) Peripherals
Along with core support, MPLAB SIM supports the following

peripheral modules, in addition to general purpose I/O:

Timers
...
Timer0
...
All Other Timers in their various modes are supported, except for

modes using an external crystal. MPLAB SIM supports Timer interrupts

generated on overflow, and interrupts generated by wake-up

from sleep. Although the external oscillator is not simulated, a clock

stimulus can be assigned to those pins.



y por el otro dicen:


Depending on device:
Timer1 increments on RC0, not RC1, for Timer1 enabled


tendré que montar el programa en el pic y ensayar

- LOW-POWER TIMER1 OPTION esta opción la dejaré habilitada por defecto (high power)

- para los que quieran probar con otros 18Fxxxx en proteus, a mi no me funcionó en modo sleep. funciona OK con el 18f4525 poniendo un bucle eterno.

ahora se procede a grabar, montar y...

¡ no funciona !

¿porque?

a ver... después de un par de minutos revisando conexiones y el programa, se me ocurrió 'tocar' los cristales estando alimentado el micro. ¡PRENDIÓ!

umm ya me conseguí con una limitación física: el ruido.  La mejor fuente de ruidos para ensayar circuitos es el mismo

protoboard, porque incluso acercando los dedos sin tocar los cristales, empezaba a oscilar el led.

haré otro intento para tratar de estabilizar a TOSC1, mirando la pág 134



enrollaré un pedazo de cable en ambos cristales cuyos terminales conectados a gnd.....

nada, intento fallido :( bueno que le vamos hacer, no todo es de color de rosa en esta vida jeje

¿y que tal si configuramos el bloque oscilador para que cpu se sincronice de los 4Mhz internos?

esa es otra historia...


PD: que largo, ¡¡ y todo para encender un led durante 1 segundo !!
« Última modificación: 30 de Octubre de 2007, 19:12:02 por PalitroqueZ »
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Mis primeros pasos con el 18F4550
« Respuesta #102 en: 02 de Junio de 2007, 14:22:45 »
Ahora usaré el bloque oscilador interno que trae este pic, específicamente quiero hacer trabajar el CPU y los perifericos a 4Mhz.

en este ejemplo, se encenderá/apagará un led en ~1 segundo

y para añadirle un ingrediente a la receta usaremos el timer0 como retardo, a ver que cositas trae.

dando una miradita a la página 26 tenemos la gran estructura donde se configura el oscilador, mi camino a seguir:



el SFR encargado es OSCCON



mi configuración irá así:


   movlw   b'1100010'
   movwf   OSCCON
 
aquí aparecen unos bits curiosos, como lo son:
 
 OSTS e IOFS
 
para generar nuestro retardo de 1 segundo, usaremos el timer0 en modo temporizador, con cuenta interna e interrumpiendo al desbordarse.

para que lo sepan: no se puede poner a dormir al señor pic porque el timer0 se detiene
pág 129

Citar
Since Timer0 is shut down in Sleep mode, the TMR0
interrupt cannot awaken the processor from Sleep.

 
bueno no importa, para el caso, lo hacemos por encuesta (polling ó poleo) mediante un bucle eterno.

ajá aquí viene algo interesante:




resulta que el timer0 posee un registro de 16 bits TMR0H:TMR0L

umm.. con un par de bytes puedo llegar a 1 segundo si uso prescaler ¿como?

usando la herramienta Timer calc:




entonces solo me queda cargar d'3036' -> 0xBDC a TMR0H:TMR0L y ya está

el resto es configurar los SFR para generar la interrupción por desborde, igual que en el post anterior

- selecciono interrupción prioritaria. TMR0IP <- 1
- selecciono fuente interrupción timer0. TMR0IE <- 1
- activo la cuenta. TMR0ON <- 1
- habilito todo el sistema de interrupciones. GIE <- 1

me está faltando algo, el juego de palabra de configuración, incorporé:

FOSC = INTOSC_XT y FCMEN = ON (éste último lo explicaré mas adelante)

el código quedará así:

Código: ASM
  1. ;******************************************************************************************
  2. ;  encender y apagar un led durante ~1 segundo
  3. ;  USANDO como clock primario el Internal Oscillator Block a 4Mhz para el CPU
  4. ;
  5. ; 02-Junio-2007    12:17 AM
  6. ;******************************************************************************************
  7.         #DEFINE LED_RD0 LATD,0,ACCESS           ; RD0
  8. ;**************************************************************************
  9.         LIST P=18F4550  ;directive to define processor
  10.         #include <P18F4550.INC> ;processor specific variable definitions
  11.  
  12. ;**************************************************************************
  13.         CONFIG FOSC = INTOSC_XT, PWRT = ON,BOR = SOFT, VREGEN = OFF, FCMEN = ON
  14.         CONFIG WDT = OFF ,WDTPS = 1,MCLRE = ON,PBADEN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF
  15.  
  16. ;**************************************************************************
  17.         org 0
  18.         goto inicio
  19.  
  20.         org     0x8
  21.         btg     LED_RD0
  22.         call    cargar_timer0  
  23.         bcf     INTCON,TMR0IF
  24.         retfie
  25.        
  26. ;********************************************************
  27. inicio:
  28.         clrf LATA ; limpia los latch
  29.         clrf LATB
  30.         clrf LATC
  31.         clrf LATD
  32.         clrf LATE
  33.         clrf TRISA
  34.         clrf TRISB ; configura RB0<- entrada, el resto -> salida
  35.         clrf TRISC
  36.         clrf TRISD
  37.         clrf TRISE
  38.         movlw   b'1100010'
  39.         movwf   OSCCON
  40. ;//------------------------------------------------------
  41. ; ahora viene la deshabilitacion de modulos (pheriperals)
  42. ;*******************************************************
  43.         clrf ADCON0 ; desactiva el CAD
  44.         movlw 0xf
  45.         movwf ADCON1 ; todas digitales
  46.         bcf INTCON,GIE ; desactiva interrupciones
  47.         movlw 0x7
  48.         movwf CMCON ;desactiva el modulo comparador
  49.         clrf SPPCON ; desactiva el modulo Streaming Parallel Port (SPP)
  50.         clrf SSPCON1 ; desactiva el modulo MSSP,SSPEN
  51.         bcf UCON,USBEN ; desactiva el modulo USB
  52.         bsf INTCON2,RBPU ; desactiva las resistencias de amarre en PORTB
  53.  
  54.        
  55.         movlw   b'11'
  56.         movwf   T0CON
  57.         movlw   b'00100000'
  58.         movwf   INTCON 
  59.         bsf             INTCON2,TMR0IP
  60.         call    cargar_timer0
  61.         bsf     T0CON,TMR0ON
  62.         bsf     INTCON,GIEH
  63.         goto    $
  64.  
  65. cargar_timer0:
  66.         movlw   0xdc
  67.         movwf   TMR0L
  68.         movlw   0xb
  69.         movwf   TMR0H
  70.         return
  71. ;//-------------------------------------------
  72.         END

un pantallazo en MPLAB




creo que se podía haber llegado a 1 Seg exacto, pero ya sería bastante para el ejemplito

finalmente, les cuento que fué montado, probado en protoboard con resultados SATISFACTORIO.  :-/  :mrgreen:

Allí estaba el pic no mas, solito y corriendo por si mismo, sin que nadie le dictara los pasos, ya aprendió a caminar el muchacho. asi es que, iiijjaa  :D :D

nota:

- se me ha pasado por alto, cuando se está escribiendo en asm, hay que tomar en cuenta todos los SFR y la configuration word, yo coloqué solo los que necesito, los demás no se como estan por defecto. Así que no se fien, y lean esos registros antes de ensayar.

« Última modificación: 01 de Noviembre de 2007, 19:47:05 por PalitroqueZ »
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado coromoto

  • PIC10
  • *
  • Mensajes: 6
Re: Mis primeros pasos con el 18F4550
« Respuesta #103 en: 14 de Diciembre de 2007, 13:50:25 »
hola PalitroqueZ con lo que me dijiste muchas gracias estoy empezando a revisar material, y este sobretodo ya que es el micro con el que tengo que trabajar, mi proyecto en si es una tarjeta de adquisicion de datos ahora me dijeron que la haga por comunicacion serial ya es menos complicado el trabajo pero igual como estoy empezando no es tan facil, te agradeceria si me pudieras publicar   algunos ejemplos del pic18f4550 en mplab para guiarme un poco su uso ademas estoy revisando el material de este foro y muchisimas gracias te cuento como voy, ademas me gustaria muchisimo poder realizar mi proyecto de las dos formas serial y usb bueno gracias cuidate coromoto :g)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Mis primeros pasos con el 18F4550
« Respuesta #104 en: 14 de Diciembre de 2007, 16:57:09 »
Hola coromoto.

revisa en la segunda página:

http://www.todopic.com.ar/foros/index.php?topic=15208.msg103042#msg103042


y cuarta página:
http://www.todopic.com.ar/foros/index.php?topic=15208.msg109265#msg109265

hay 2 documentos de todo lo que está aquí para que lo leas en modo off-line y unos cuantos ejemplos usando el mplab.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything