Autor Tema: dspic en ensamblador  (Leído 22677 veces)

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

Desconectado juanramirotaipe

  • PIC10
  • *
  • Mensajes: 5
Codec si 3000 + dspic 30f4013
« Respuesta #15 en: 25 de Diciembre de 2006, 13:05:42 »
Continuando con el foro, he vuelto a retomar el tema. El si3000 es un codec ( codificador decodificador ) usado para la bande dev la voz 4 khz, que para realizar conecciones con interfaz dci ( interfaz de cominucacioines de datos), me facilita una enorm,e potencial, esta compuesto de 9 registros internos , principalmente usados para  el tratamienyo de voz, que opinan si em,pezamos a trabajar ene esto.
ramirotaipe@yahoo.com

Desconectado juantaipe

  • PIC10
  • *
  • Mensajes: 7
Re: dspic en ensamblador
« Respuesta #16 en: 19 de Mayo de 2010, 12:48:41 »
he vuelto, a los tiempos al hobby de los pics, proximamente les subo ciertos programas de angulo.

Desconectado myster_guaray

  • PIC10
  • *
  • Mensajes: 13
Re: dspic en ensamblador
« Respuesta #17 en: 25 de Mayo de 2010, 14:23:02 »
hola estoy comenzando con dsPICs  y trabajo con el libro de angulo estoy elaborando el primer programa en ensamblador para activar las salidas y entradas digitales con el puerto D, configuro el proyecto tal como dice el libro, configuro los pines con el visual initializer,  escribo y guardo el codigo que es :

;PROGRAMAS PORTD
.include "p30f4013.inc"
.global_main
.text
_main
call_VisualInitialization
BUCLE:
BTSS PORTD, #RD0
BSET PORTD, #RD1
BTSC PORTD, #RD0
BCLR PORTD, #RD1

GOTO BUCLE
.end

al final adiero el archivo.s para evitar el error de que no identifique el main
muy bien hasta ahí;
pero al compilar aún me salen 2 errores que son:

myster.s:3: Error: unknown pseudo-op: `.global_main'
myster.s:5: Error: Mnemonic not found.
 
si alguien tiene idea de como solucionarlo agradezco mucho su ayuda... mientras sigo intentando


Desconectado myster_guaray

  • PIC10
  • *
  • Mensajes: 13
Re: dspic en ensamblador
« Respuesta #18 en: 25 de Mayo de 2010, 17:58:51 »
bien ps los errores eran de sintaxis  :oops:  faltaba el espacio en (.global _main) y los dos puntos en (_main:) este ultimo sale sin los dos puntos en el libro de angulo asi que ojo
afortunadamente BUILD SUCCEEDED :-/   seria interesante revivir este foro

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: dspic en ensamblador
« Respuesta #19 en: 13 de Marzo de 2011, 01:59:24 »
Interesante este tema de los dsPIC30F desde ensamblador, deberian seguir alimentando este tema, aunque sugiero empezar con algunos ejemplos mas sencillos. Me uno a la peticion de ivanda de "hola mundo" de los microcontroladores (blink), es decir, explotar las funcionalidades de microcontrolador de 16 bits de este chip y despues la funcionalidad DSP.

saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado juantaipe

  • PIC10
  • *
  • Mensajes: 7
Re: dspic en ensamblador
« Respuesta #20 en: 29 de Junio de 2011, 12:07:16 »
Actualmente la tendencia en los dispositivos programables, principalmente dspics y dsps es trabajar a alto nivel, un lenguaje más parecido al que empleamos los seres humanos para comunicarnos, tal es el caso del lenguaje de programación para DSPICs de la familia 30Fxxxx, 33 Fxxxxx  conocido como Lenguaje C.  El lenguaje de programación C tiene desarrollado sus comandos de programación en bajo nivel. Así por ejemplo para sacar un dato a través de un PIN por el pórtico B, las instrucciones en bajo nivel serian:
.include "p30f6014a.inc"
.text
.global _main
_main:
   MOV      #0xFFFF,W0         //todos los pines de la Puerto B como digital                     
   MOV    W0,ADPCFG         //y no como analógico                 
   CLR     TRISB          //todos los pines de la puerta B como salida
   MOV   #0xFFFF,W0
   MOV   W0,PORTB         // enciende todos los pines de la puerta B.
.end

Estas diez líneas de programación empleadas en lenguaje ensamblador se reducirían a cinco líneas en el lenguaje C:
#include "p30f6014a.h"
int main(void)
{
ADPCFG = 0xFFFF   //todos los pines de la Puerto B como digital y no analógico.
TRISB=       0x0000   //todos los pines de la Puerto B como salida.
PORTB=      0xFFFF  // enciende todos los pines de la Puerto B.
}
Como aquí se aprecia en el lenguaje C no es necesario conocer a profundidad la arquitectura de un DSPIC,  basta con cargar los valores adecuados que realizan tal o cual función. Las ventajas del lenguaje C respecto al ensamblador son enormes en cuanto al ahorro de tiempo en las líneas de programación, pudiendo realizar implementaciones más complejas con pocas líneas de código.
Ejemplo de un programa en lenguaje C  que genera señales PWM (modulación por ancho de pulso) y utilización de comandos de lenguaje C en ensamblador.
#include "p30f4013.h"
void InicializaOC1(void)
{    OC1RS = 0;
   OC1R = 0;
   OC1CON = 0x0006;
   T2CON = 0x8030;
}
int main (void)                   //inicio del programa principal
{    InicializaOC1();      //llama a la subrutina superior
      TRISF=0x0003;      // configuración del puerto F
      ADPCFG=0;      // Puerto F  declarado como digital
      PR2=0x0100;      //registro
 while(1)         //repite indefinidamente este bucle
  {      asm("clrwdt");      // utilización en lenguaje C de un comando en asm
   if (PORTF == 0)
        OC1RS = 0;
   if (PORTF == 1)
       OC1RS = 0x0030;
   if (PORTF == 2)
      OC1RS = 0x0080;
   if (PORTF == 3)
      OC1RS = 0x0100;
   }
}
; si deseamos retardos en milisegundos */ Retardos para  microsegundos*/
Void delay_us(unsigned int m)
  {     for(;m>0;m--)
        {         nop();        // este bloque de instrucciones produce el retardo de 1 us.
         Nop();       // esta instrucción nop consume un ciclo de tiempo sin e-
         Nop();       // ejecutar ninguna operación que altere ningún registro.
         Nop();
         Nop();
         Nop();
         Nop();
         Nop();
         Nop();
         Nop();
          }
}
*/ Retardos para  milisegundos de tiempo*/
Void delay_ms(unsigned char n)
  {     for(;n>0;n--)
        {        delay_us(982);        // este bloque de instrucciones produce el retardo de 1 ms.
         }
}
 
COMO SUBO IMAGENES que tengo de un grabador hecho para dspic30f6014a, alguien indiqueme no me permite subir a este foro

Desconectado juantaipe

  • PIC10
  • *
  • Mensajes: 7
Re: dspic en ensamblador
« Respuesta #21 en: 29 de Junio de 2011, 12:34:04 »
EN el archivo adjunto se muestra un grabador par los dspic30f6014a y dspic30f1413, es el grabador que usa www.msebilbao.com.
Todo lo que  el ser humano puede concebir el hombre lo puede hacer

Desconectado juantaipe

  • PIC10
  • *
  • Mensajes: 7
Re: dspic en ensamblador
« Respuesta #22 en: 29 de Junio de 2011, 12:58:11 »
EN EL CIRCUITO GRABADOR DE DSPIC ANEXO SE MUESTRA para grabar un dspic30f4013 por ejemplo, pero tambien sirve para un dspic30f6014a, se muestra el dspic30f4013, un max 232, y el max 622 siendo su reemplazo el LTC1262CN8-ND , www.msebilbao.com  http://www.msebilbao.com/tienda/index.php  usa el max 662 en sus diseño, pero al usar el LTC1262CN8-ND y modificar su diseño, ya es parte de mi diseño

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: dspic en ensamblador
« Respuesta #23 en: 29 de Junio de 2011, 13:06:39 »

« Última modificación: 29 de Junio de 2011, 20:25:10 por todopic »
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado juantaipe

  • PIC10
  • *
  • Mensajes: 7
Re: dspic en ensamblador
« Respuesta #24 en: 29 de Junio de 2011, 16:21:41 »
« Última modificación: 29 de Junio de 2011, 20:11:05 por un Moderador »

Desconectado juantaipe

  • PIC10
  • *
  • Mensajes: 7
Re: dspic en ensamblador
« Respuesta #25 en: 29 de Junio de 2011, 16:27:06 »
El procesamiento se hace en forma digital porque éste normalmente es más simple de realizar que el procesamiento analógico. Además, las señales digitales requieren menos ancho de banda y pueden ser comprimidas.
La precisión con la que el ADC codifica los valores de la señal (número de bits de la representación digital o tamaño de la palabra del convertidor), tiene una repercusión directa en la calidad de la misma.
El circuito empleado para el desarrollo de esta encriptación de señales de voz usando los controladores digitales de señales, en el caso de este proyecto el dspic30f6014a, se muestra en la figura superoo, aquí se aprecia también el códec si 3000.
La figura anterior  muestra las conexión  del códec si 3000, empleadas en el presente proyecto, con los respectivos pines del dspic30f6014a , que controlan el funcionamiento del circuito encriptador de voz realizado, el códec si3000 trabaja en el rango de frecuencias de la voz humana, posee dos pines para la entrada del micrófono en modo estéreo( pines 2 y 10), dos pines para la salida de parlante por los pines 1 y 16 respectivamente en modo estéreo, posee un pin de reset para reinicializar el códec si3000, el códec si3000 es controlado por el dspic30F6014A a través de cinco líneas de control, que lo controlan en modo esclavo, es decir la operación de procesamiento lo realiza el dspic30F6014A, funciona a un voltaje de 3.3 voltios o a 5 voltios, en el presente proyecto se trabaja a un voltaje de operación de cinco voltios para alimentar todo el circuito.

Desconectado Alber_pic

  • PIC10
  • *
  • Mensajes: 6
Re: dspic en ensamblador
« Respuesta #26 en: 15 de Diciembre de 2013, 16:44:02 »
Años después......me apunto al hilo de los dsPIC.
Deseando comenzar a probarlos.