ok ok he estado trabajando y desde esa fecha para aca muchas cosas me han quedado claras
Efectivamente estoy utilizando la tabla de look-up para generar la onda senoidal, ya he podido obtener una salida, con un dac0800, q por cierto me quitó algo de tiempo echarlo a andar, (errores tontos) y si, logro dibujar una senoidal, pero a frecuncia muy baja!!!, y pensando, vi q no es necesario o al menos eso pienso, utilizar la interrupción de overflow del rtcc para ir colocando las muestras.
Pienso dejar una sola tabla, y no colocar muchas, pues pretendo hacer un barrido d frecuencias, entonces, mejor modificaré el tiempo entre muestra y muestra con un retraso
asi puedo controlar el tiempo q lleva escribir todas las muestras, q correspondería al periodo.
peeeero al modificar el programa ahora ya no tengo salidas en PORTB, no se específicamente cuál sea el error. este es el código nuevo.
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=4000000)
BYTE CONST SINE_WAVE[256] = {
128,131,134,137,140,144,147,150,153,156,159,162,165,168,171,174,
177,179,182,185,187,191,193,196,199,201,204,206,209,211,213,216,
218,220,222,224,226,228,230,232,233,235,237,239,240,241,243,244,
245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,
255,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,
245,244,243,241,240,239,237,235,234,232,230,228,226,224,222,220,
218,216,213,211,209,206,203,201,199,196,193,191,188,185,182,179,
177,174,171,168,165,162,159,156,153,150,147,144,140,137,134,131,
128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76,
74,71,68,65,63,60,57,54,52,49,47,45,43,40,38,36,34,32,30,28,26,
24,22,21,19,17,16,15,13,12,11,10,8,7,6,6,5,4,3,3,2,1,1,1,1,1,1,
1,1,1,2,2,2,3,3,4,5,6,6,7,8,10,11,12,13,15,16,17,19,21,24,26,28,
30,32,34,36,38,40,43,45,47,50,52,55,57,60,63,65,68,71,74,77,79,
82,85,88,91,94,97,100,103,106,109,112,116,119,122,125,128};
BYTE sine_index;
void main() {
output_B(SINE_WAVE[sine_index]);
delay_ms(10);
if(++sine_index==256) {
sine_index=0;
}
while (true);
}
Despues haré variable el retraso, controlado por un botón externo. Pero en este momento no logro ver salida en portB
Primero pretendo obtenr la máxima frecuencia posible con este pic, y cuento con osciladores XT de hasta 40Mhz
Saludos a todos los q han comentado