注意 (2023-2-26)
CY8C29466-24PXI,CY8C29666-24LFXI,PSoC4200
CY8CKIT-049は、生産中止品です。ところが、在庫があるという販売店があります。
/*************************?/
#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
FILE *fp;
unsigned char sine_table[256];
int main (void)
{
int i;
for(i=0;i<256;i++){
sine_table[i]=128.0+126.0*sin((double)i/256.0*2.0*3.1415926);
}
/* 保存はカレントディレクトリーのsin_table.hというファイル名で上書きする */
if ((fp = fopen ("sin_table.h", "w")) == NULL)
{
printf ("cannot open sin_table.h\n");
exit (1);
}
printf ("now saving file!\n");
i=0;
fprintf (fp, "const unsigned char sin_table[256]={%d, //
i=%d\n",sine_table[i],i);
for(i=1;i<256;i++){
fprintf (fp, "%d, // i=%d\n",sine_table[i],i);
}
fprintf (fp, "};\n");
fclose (fp);
return (EXIT_SUCCESS);
}
#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
FILE *fp;
unsigned char cos_table[256];
int main (void)
{
int i;
for(i=0;i<256;i++){
cos_table[i]=128.0+126.0*cos((double)i/256.0*2.0*3.1415926);
}
/* 保存はカレントディレクトリーのcos_table.hというファイル名で上書きする */
if ((fp = fopen ("cos_table.h", "w")) == NULL)
{
printf ("cannot open cos_table.h\n");
exit (1);
}
printf ("now saving file!\n");
i=0;
fprintf (fp, "const unsigned char cos_table[256]={%d, //
i=%d\n",cos_table[i],i);
for(i=1;i<256;i++){
fprintf (fp, "%d, // i=%d\n",cos_table[i],i);
}
fprintf (fp, "};\n");
fclose (fp);
return (EXIT_SUCCESS);
}
また、triangle_table.hを作製するプログラムは以下の通り。#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
FILE *fp;
unsigned char triangle_table[256];
int main (void)
{
int i;
for(i=0;i<127;i++){
triangle_table[i]=i+i;
}
triangle_table[127]=254;
for(i=0;i<127;i++){
triangle_table[i+128]=254-i-i;
}
triangle_table[256]=0;
/* 保存はカレントディレクトリーのtriangle_table.hというファイル名で上書きする */
if ((fp = fopen ("triangle_table.h", "w")) == NULL)
{
printf ("cannot open
triangle_table.h\n");
exit (1);
}
printf ("now saving file!\n");
i=0;
fprintf (fp, "const unsigned char triangle_table[256]={%d, //
i=%d\n",triangle_table[i],i);
for(i=1;i<256;i++){
fprintf (fp, "%d, // i=%d\n",triangle_table[i],i);
}
fprintf (fp, "};\n");
fclose (fp);
return (EXIT_SUCCESS);
}
これらを実行するには、wslが
いい と思います。私は、ubuntu20.04をインストールしてます。
図1−2 三角波とsin波 周期は7.5327mSなので、132.75Hz
図1−3 sin波とcos波
図1−4 基本波と3倍波