十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#includestdio.h
创新互联专注于开封网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供开封营销型网站建设,开封网站制作、开封网页设计、开封网站官网定制、微信小程序开发服务,打造开封网络公司原创品牌,更为您提供开封网站排名全网营销落地服务。
#includemath.h
main()
{
int x;
double y;
printf("游岩input x:");
scanf("祥喊%d",x);
y=sin(x*3.14/180);
printf("%lf",y);
}
上面说的都不对,应该是这样的谨磨野sin(x*3.14/180),你自己琢磨一下
以经验看来你是要做单片机方面波形输出,DAC输出,或者做模拟示波器什么的。
有两种办法:
一是查表法,优点是计算量少,占用RAM少,算法简单,缺点是占用储存内存较多,参数比较固定。
查表法的基本思路就是,通过把sin函数进行采样,得到的值记录成一个表,将表以数组的形式放在程序中,通过循环读取数组的值袜脊达到查表的目告销渗的。
二是计算值法,优缺点跟查表法恰好相反。
计算值法的基本思路是通过特定算法,将特定时间所需的特定值计算出来。
这里给你提供一个计算值斗掘法的核心代码,作为指导建议,根据实际情况修调。
double SinWave(double scale,int cycle_time)
{
int a;
double PI = 3.1416;
int resolution_ratio = 100;//分辨率,描述采样量,越高的分辨率计算越多
for(a=0;aresolution_ratio;a++)
{
DAC_OUT(scale * sin(2*PI*a/resolution_ratio));
delay(cycle_time/resolution_ratio);
}
}
void delay(int us)
{
//......
}
void DAC_OUT(int data)
{
//......
}