Heeft iemand toevallig een 10-bits sinustabel liggen? Dus een tabel van 1024 bytes.
Weet niet hoe ik zo'n tabel bijv. kan genereren.

Wat is het nut van een 10-bit tabel als de output slechts 8 bit is.
Na 9bit krijg je geen extra informatie volgens mij, alleen maar dubbele entries.

hoi,

heb hem ff gemaakt voor je:

www.solcon.nl/mapals/10bitsine.xls

de laatste kolom zijn je getallen

als je vragen hebt dan meel maar of zet het hier neer.

fripster

edit: dat van die dubbele getallen dat klopt, kijk maar in de tabel..

[Bericht gewijzigd door fripster op (17%)]

De tabel is niet goed geschaald (bekende fout): de getallen moet van 0 t/m 255 gaan, niet van 0 t/m 256 (dat zijn 257 verschillende waarden). Geeft een spectaculaire ouput.

alleen krijg je deze niet in een byte, 256 is net één te veel.

edit: te laat.

Wat is het nut van een 10-bit tabel als de output slechts 8 bit is.
Na 9bit krijg je geen extra informatie volgens mij, alleen maar dubbele entries.

je kan 360 graden ook delen door 1024

Op 24 juli 2007 22:37:46 schreef JoWi:
Wat is het nut van een 10-bit tabel als de output slechts 8 bit is.
Na 9bit krijg je geen extra informatie volgens mij, alleen maar dubbele entries.

Ik wek de sinus op met 10-bit PWM.

De tabel is niet goed geschaald (bekende fout): de getallen moet van 0 t/m 255 gaan, niet van 0 t/m 256 (dat zijn 257 verschillende waarden). Geeft een spectaculaire ouput.

De tabel moet gaan van 0 t/m 1023. (10-bits) dat worden dus 1024 10-bits getallen.

Voor eenvoudige toonopwekking is 8 bit PWM even goed en gebruikt een stuk minder geheugen...
(Mits je natuurlijk een goed filter gebruikt op de PWM)

Op 24 juli 2007 22:39:01 schreef fripster:
hoi,

heb hem ff gemaakt voor je:

www.solcon.nl/mapals/10bitsine.xls

de laatste kolom zijn je getallen

als je vragen hebt dan meel maar of zet het hier neer.

fripster

edit: dat van die dubbele getallen dat klopt, kijk maar in de tabel..

Ik heb geen XLS, kan jij er TXT van maken svp?

Dus een tabel van 1024 bytes

De tabel moet gaan van 0 t/m 1023. (10-bits) dat worden dus 1024 10-bits getallen.

???????

.htm ook goed

Ik heb even een C-programmatje geschreven:


/* mksinus.c (C) R.E.Wolff@BitWizard.nl

   Compile with 
        gcc -Wall -O2 mksinus.c -o mksinus -lm
 */

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

#define PI 3.1415926

int main (int argc, char **argv)
{
   int maxval = 255;
   int minval = 0;
   int nsteps = 256;
   int i;
   double step, pos;

   if (argc > 1) nsteps = atoi (argv[1]);
   if (argc > 2) maxval = atoi (argv[2]);
   if (argc > 3) minval = atoi (argv[3]);
   
   step = 2 * PI / nsteps;

   for (i=0, pos = 0;i<nsteps;i++, pos += step) {
       printf ("%d  %.0lf\n", i, (1+sin (pos)) / 2 * (maxval-minval) + minval); 
    
   }
   exit (0);
}

Ik snap nog niet of je ingang van de tabel 8 of 10 bits moet zijn, en dus de uitgang 10 of 8 bits... Maar goed. Dit progje kan alles.

 mksinus <nsteps> <maxval> <minval> 

als je input 8 bits is geef je bij nsteps 256 op. Krijg je 256 tabel waarden. Als je 10 bits output wenst, geef je als maxval 1023 op. Als je signed output wilt, kan je minval opgeven als -1024 (dus je tabel wordt dan 11 bits).

Het heeft wel degelijk zin om een 10->8 bits tabel te maken: de overgang van 128 naar 129 (en de daaropvolgenden) is dan gewoon beter getimed dan wanneer je 8bits als input voor je tabel gebruikt.

leuk hoor, knutsel ik 's avonds ff snel een tabelletje in elkaar,maak een fencepost error, en word direct afgeschoten. ;-)

Natuurlijk moet je dit ff aanpassen. Zal ik doen en posten.

fripster

edit: Daar issie: 10bitsine.csv

[Bericht gewijzigd door fripster op (18%)]

Heel erg bedankt!!!!!

PS. Het gaat 10-bit PWM worden, geen R2R.

Op 26 juli 2007 11:11:47 schreef RES:
PS. Het gaat 10-bit PWM worden, geen R2R.

Als je de output van de PWM module als D/A converter gebruikt zie ik niet in waarom je een 10x8 tabel nodig hebt. Dan zou je een 10x10 tabel moeten hebben. De faze stap geef je dan op in 10 bits en de output (analoge spanning) ook in 10 bits.
Wat is het nut van een 10bit PWM als je maar 8 bits voor de PWM waardes (output van de sinus tabel) hebt ?
Ik hoop niet dat je een sinusgenerator wil maken, want heb je al eens uitgerekend wat de maximale frequentie is en wat voor filter dat je nodig hebt bij 10bit ?

edit: Oops, ik zie dat er inmiddels al 10 bit tabellen gegeven worden, dus niet 1024 bytes voor de tabel maar 1024 woorden. Blijft het probleem van het onderdrukken van de PWM frequentie.

[Bericht gewijzigd door JoWi op (13%)]

Ik hoop niet dat je een sinusgenerator wil maken, want heb je al eens uitgerekend wat de maximale frequentie is en wat voor filter dat je nodig hebt bij 10bit ?

Ik kan max. 62.5kHz samplerate 10-bit PWM draaien, dus zo'n 30kHz bandbreedte.
Het wordt een sinus opwekken. Een zoveelste orde filter komt erachter. (moet ik nog bepalen) eerst de software in elkaar draaien.