Autor Tema: dsPIC Curso Basico con C30  (Leído 349970 veces)

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

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: dsPIC Curso Basico con C30
« Respuesta #135 en: 20 de Julio de 2008, 03:19:28 »
Recuerda que debes actualizar el prescaler del Timer en la misma rutina de interrupción, por ejm:

void __attribute__((interrupt, no_auto_psv))  _T1Interrupt(void)

   ...
   IFS0bits.T1IF = 0;          /* borra el flag del timer1 */
   T1CONbits.TCKPS=1;    /* Prescaler = 8 */
   TMR1=0;                     /* lo resetea a 0 */
   ...
}

Si no lo actualizas el prescaler puede cambiar, no es un bug, esto está en el manual.

saludos.
control de movimiento

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: dsPIC Curso Basico con C30
« Respuesta #136 en: 20 de Julio de 2008, 13:53:04 »
Ayer revisé el manual pero solo le di una hojeada, no leí todo.

Renatox, ¿cuál es la fórmula para calcular los tiempos con el timer1? ¿o en dónde la puedo encontrar?

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: dsPIC Curso Basico con C30
« Respuesta #137 en: 20 de Julio de 2008, 20:51:48 »
Hola, para calcular el tiempo de interrupción aplicas la fórmula:

                PR1*Prescaler
Tiempo =  ------------------    (seg)
                        Fcy
 
donde Fcy=MIPS.
PR1=valor del periodo

saludos,
control de movimiento

Desconectado jjcblanco

  • PIC10
  • *
  • Mensajes: 20
Re: dsPIC Curso Basico con C30
« Respuesta #138 en: 18 de Mayo de 2009, 13:52:37 »
y la frec en mips como la calculas? Usando la frec de reloj?

Desconectado jjcblanco

  • PIC10
  • *
  • Mensajes: 20
Re: dsPIC Curso Basico con C30
« Respuesta #139 en: 18 de Mayo de 2009, 13:54:24 »
En las pruebas que estas haciendo que reloj usas?

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: dsPIC Curso Basico con C30
« Respuesta #140 en: 19 de Mayo de 2009, 01:03:47 »
hola, yo uso crital de 10Mhz, entonces calculas

MIPS=Frec.cristal*PLL/4

en  mi caso MIPS=10M*8/4=20MIPS

saludos.
control de movimiento

Desconectado jjcblanco

  • PIC10
  • *
  • Mensajes: 20
Re: dsPIC Curso Basico con C30
« Respuesta #141 en: 05 de Agosto de 2009, 23:31:31 »
Estoy tratando de manejar un lcd, que ya lo hice para pic18 pero en ccs, ahora lo estoy tratando de hacer para c30 con un dspic30f4011, pero no le estoy dando en la tecla alguien tiene una libreria porque xlcd que es la que trae el c30 no me funciona.


Desconectado irma

  • PIC10
  • *
  • Mensajes: 1
dsPIC Curso Basico con C30
« Respuesta #142 en: 06 de Agosto de 2009, 11:34:12 »
hola estoy haciendo un proyecto final :"procesamiento de señales de voz mediante dspic  " quisiera saber que algoritmos puedo utilizar , como realizo la programacion  agradeceria la ayuda

Desconectado beatAurex1

  • PIC12
  • **
  • Mensajes: 78
    • Proyectos de Ingeniera -Control-Electrónica y desarrollo embebido.
Re: dsPIC Curso Basico con C30
« Respuesta #143 en: 25 de Noviembre de 2009, 23:35:42 »
Tengo una duda, en ASM llevamos el control preciso de cuanto tarda nuestro programa, pero en C30 para dspics alguien me podria decir como puedo saber el tiempo total que tarda una determinada rutina.

Gracias

Desconectado guillermoacdc

  • PIC10
  • *
  • Mensajes: 2
Re: dsPIC Curso Basico con C30
« Respuesta #144 en: 13 de Febrero de 2010, 19:06:55 »
Yo creo que se trata de un tiempo limite, es decir, si no se ha recibido toda una cadena en el tiempo especificado, entonces, la funcion retorna (para no quedarse estancada)

Desconectado guillermoacdc

  • PIC10
  • *
  • Mensajes: 2
Re: dsPIC Curso Basico con C30
« Respuesta #145 en: 13 de Febrero de 2010, 19:10:36 »


Acerca de getsSPI, spi_data_wait
Yo creo que se trata de un tiempo limite, es decir, si no se han recibido las n cadenas en el tiempo especificado, entonces, la funcion retorna (para no quedarse estancada)



Desconectado niuton

  • PIC10
  • *
  • Mensajes: 21
Re: dsPIC Curso Basico con C30
« Respuesta #146 en: 28 de Febrero de 2010, 20:49:40 »
Hola a todos, llevo mucho tiempo siguiendo este foro que me ha servido para iniciarme en los 18F que programaba con el CCS C y funcionaba más o menos bien.
Pero ahora quiero empezar con los dsPIC30 y me lleve una decepción con el CCS C ya que todo era mál funcionamiento y muchos bug, así que me he tenido que meter con el C30, que me está costando bastante ya que lo veo diferente, por que en el CCs C te olvidabas de todo y aqui tienes más control del micro (eso es lo que creo  :mrgreen: ).

Bueno pues a ver si me podeis aclara algunas dudas. Yo tengo una plaquita con un 30F3013 con un cristal 7.37MHz y quiero hacerlo funcionar con PLL16 para conseguir los 30MIPS, como no domino mucho  la inicialización de los registros he usado el Visual Initializer, pero creo que no lo hace bien ya que aparece 29MHz y debería aparecer 119MHz (pongo una imagen).
Este es el codigo que me crea:
Código: [Seleccionar]
; Feature=fuses - fuses (DCR) configuration
config __FOSC, 0xC707
; Feature=Oscillator - Oscillator configuration
MOV.B #0x03, W0
MOV.B #0x78, W1
MOV.B #0x9A, W2
MOV.W #OSCCON, W3
MOV.B W1, [W3+1]
MOV.B W2, [W3+1]
MOV.B W0, [W3+1]
CLR.B W0
MOV.B #0x46, W1
MOV.B #0x57, W2
MOV.B W1, [W3+0]
MOV.B W2, [W3+0]
MOV.B W0, [W3+0]

¿Como se puede calcular estos valores del oscilador?

y una ultima cosa, yo quiero utilizar el simulador para comprobar que todo esté bien, pero si uso un PLL16 en la configuración del oscilador en el simualdor que deberia poner ¿119MHz o 7.37MHz?

muchas gracias. BYE

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: dsPIC Curso Basico con C30
« Respuesta #147 en: 01 de Marzo de 2010, 00:26:40 »
Lo mas sencillo es leer el datasheet del dsPIC en la sección de oscillator configurations, y determinar con que valores cargar los registros, luego de eso a esperar que el PLL de "enganche" y a seguir trabajando  :mrgreen:

Revisa el siguiente enlace, donde configuro el PLL de un PIC24H.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: dsPIC Curso Basico con C30
« Respuesta #148 en: 01 de Marzo de 2010, 02:16:45 »
Tienes que poner 117.92 en Debugger-Settings porque tu cristal es de 7.37Mhz y tu PLL de 16.
Y en tu declaracion arriba debe ir _FOSC(XT_PLL16);

saludos.
control de movimiento

Desconectado niuton

  • PIC10
  • *
  • Mensajes: 21
Re: dsPIC Curso Basico con C30
« Respuesta #149 en: 01 de Marzo de 2010, 06:30:28 »
gracias por responder, no conocía ese enlace y viene muy bien explicado las configuraciones lo voy a revisar y comento. respecto a colocar "_FOSC(XT_PLL16);" si yo he utilizado el Visual Initializer y no lo a colocado solo "__FOSC, 0xC707" quiere decir que no lo ha hecho bien ¿no?, a demás de eso debería colocar el¿ XT_PLL16?.

Un cosa más, si lo que yo quiero utilizar el dsPIC es para realizar operaciones matemáticas y controladores, ¿sería buena opción los PIC24H o está bien los dsPIC?.

BYE y gracias