Nocturno, hize lo que me dijiste y ahora si me compila, pero me salen varios "warning", lo que me sale en la compilación es esto:
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F4011 -c -x c "pruebas dsp.c" -o"pruebas dsp.o" -g
pruebas dsp.c: In function `main':
pruebas dsp.c:14: warning: passing arg 2 of `VectorCopy' makes pointer from integer without a cast
pruebas dsp.c:14: warning: passing arg 3 of `VectorCopy' makes pointer from integer without a cast
pruebas dsp.c:24: warning: passing arg 2 of `VectorAdd' makes pointer from integer without a cast
pruebas dsp.c:24: warning: passing arg 3 of `VectorAdd' makes pointer from integer without a cast
pruebas dsp.c:24: warning: passing arg 4 of `VectorAdd' makes pointer from integer without a cast
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -Wl,"F:\Microchip\dsPIC\dsp\pruebas dsp.o","C:\Archivos de programa\Microchip\MPLAB C30\lib\libp30F4011-elf.a","C:\Archivos de programa\Microchip\MPLAB C30\lib\libp30F4011-coff.a","C:\Archivos de programa\Microchip\MPLAB C30\lib\libdsp-coff.a","C:\Archivos de programa\Microchip\MPLAB C30\lib\libpic30-coff.a",-L"C:\Archivos de programa\Microchip\MPLAB C30\lib",--script="C:\Archivos de programa\Microchip\MPLAB C30\support\gld\p30f4011.gld",-o"pruebas.cof",-Map="pruebas.map"
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-bin2hex.exe" "pruebas.cof"
Loaded F:\Microchip\dsPIC\dsp\pruebas.cof.
BUILD SUCCEEDED: Thu Feb 01 11:45:56 2007
Los archivos .h y de cabecera que adheri son estos:
- En Source Files.- pruebas dsp.c
- En Header Files.- dsp.h
- En Library Files.- libpic30-coff.a libp30f4011-coff.a libpic30f4011-elf.a libdsp-coff-a
- En linker Scripts.- p30f4011.gld
El archivo corregido es este:
#include <p30f4011.h>
#include <dsp.h>
int main(void)
{
// dos operaciones con vectores
// ----------------------------
// copiar vectores
fractional dstV[4] ;
fractional srcV[4] = {0.1, 0.2, 0.3, 0.4};
int n=3;
// dstV[n] = srcV[n] ;n=<0,3>
VectorCopy (n, *dstV, *srcV);
// sumar vectores
int n1=4;
fractional dst1V[5] ;
fractional srcV1[5] = {0.2, 0.3, 0.4, -0.5, 0.4};
fractional srcV2[5] = {0.4, 0.5, -0.5, -0.31, 0.2};
// dst1V[n] = srcV1[n]+srcV2[n] ;n1=<0,4>
// If the absolute value of srcV1[n] + srcV2[n] is larger than 1-2^-15,
// this operation results in saturation for the n-th element.
VectorAdd (n1, *dst1V, *srcV1, *srcV2);
// una operaciones con matrices
// ----------------------------
// One word of memory (two bytes) is used to store the value of each element,
// and this quantity must be interpreted as a fractional value in Q.15 format.
// Matriz transpuesta
int numRows=3;
int numCols=3;
fractional dstM[3][3] ;
fractional srcM[3][3] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9};
// dstM[i][j] = srcM[j][i], 0 = i < numRows, 0 = j < numCols.
MatrixTranspose (numRows, numCols, *dstM, *srcM);
}
Cambié los valores de los vectores porque en el formato Q15 no se permite números que estén fuera del rango -1 a 1, los vectores resultado o destino tampoco deben de salirse de este rango.
Cuando lo simulo paso a paso los resultados son siempre cero, no cambian, ahora que estaré haciendo mal.