[an error occurred while processing this directive]
В догонку
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ФИ 08 марта 2003 г. 21:34
В ответ на: Делаешь Linked SNF Extractor и собираешь из двух половинок - целевого проекта и вспомогательного - RAM, ROM, например на 10к, набиваешь его синусом и симулируешь в собственное удовольствие. отправлено ФИ 08 марта 2003 г. 21:30

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

void main(int argc, char *argv[])
{
int i, n, nw, m, icc, iss;
double pi, xk;
FILE *fc, *fs;
char lin[200];
if(argc!=3) {
printf("mifsicos NW N\n");
return;
}
sscanf(argv[1], "%d", &nw);
sscanf(argv[2], "%d", &n);
m=(int)(log((double)n)/log(2.0)+0.5);
if(n!=(1<<m)){
printf("%d must be %d\n",n,m);
return;
}
sprintf(lin,"Cos.mif");
fc=fopen(lin,"w");
fprintf(fc, "WIDTH = %d;\n", nw);
fprintf(fc, "DEPTH = %d;\n\n", n/2);
fprintf(fc, "ADDRESS_RADIX = DEC;\n"); //BIN, DEC, HEX, OCT, or UNS
fprintf(fc, "DATA_RADIX = DEC;\n\n");
fprintf(fc, "CONTENT BEGIN\n");

sprintf(lin,"Sin.mif");
fs=fopen(lin,"w");
fprintf(fs, "WIDTH = %d;\n", nw);
fprintf(fs, "DEPTH = %d;\n\n", n/2);
fprintf(fs, "ADDRESS_RADIX = DEC;\n"); //BIN, DEC, HEX, OCT, or UNS
fprintf(fs, "DATA_RADIX = DEC;\n\n");
fprintf(fs, "CONTENT BEGIN\n");

pi=3.14159265;
xk=2.0*pi/((double)n);
for(i=0;i<n/2;i++) {
icc=(int)( cos(xk*(double)i)*(1<<(nw-2)));
iss=(int)(-sin(xk*(double)i)*(1<<(nw-2)));
fprintf(fc, "%7d : %d;\n", i, icc);
fprintf(fs, "%7d : %d;\n", i, iss);
// fflush(fc);
}
fprintf(fc, "END;\n");
fprintf(fs, "END;\n");
fclose(fc);
fclose(fs);
}
/*
Memory Initialization File (.mif)
DEPTH = 32; % Memory depth and width are required %
WIDTH = 14; % Enter a decimal number %

ADDRESS_RADIX = HEX; % Address and value radixes are required %
DATA_RADIX = HEX; % Enter BIN, DEC, HEX, OCT, or UNS; unless %
% otherwise specified, radixes = HEX %

-- Specify values for addresses, which can be single address or range

CONTENT
BEGIN

[0..F] : 3FFF; % Range--Every address from 0 to F = 3FFF %
6 : F; % Single address--Address 6 = F %
8 : F E 5; % Range starting from specific address-- %

END ; % Addr[8] = F, Addr[9] = E, Addr[A] = 5 %
*/

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru