サークルで活動するには参加が必要です。
「サークルに参加する」ボタンをクリックしてください。
※参加を制限しているサークルもあります。
-
from: こーたろーさん
2020/07/09 23:56:35
icon
SINの振幅によってLEDを点灯
[問題点]SINの振幅値によってLEDを点灯させたいです。0.8<sinωt<1.0ならLED3を点灯、0.6<sinωt<0.8ならLED4を点灯、以後刻みを0.6~0.4、0.4~-0.4、-0.4~-0.6,-0.6~-0.8、-0.8~-1.0,とする。
また計算に時間がかかり本来の処理が遅れることが問題なので計算速度はできるだけはやくしたいです。
以下のプログラムを組んでみましたがうまくビルドされませんでした。加筆修正願います。特にint main (void)以下をお願いします。ちなみにMCCを用いておりますので#より上は自動でプログラムされております。水晶発振器は3MHzに設定しております。
よろしくお願いします。
[code]
#include "mcc_generated_files/system.h"
#include "mcc_generated_files/led_d3.h"
#include "mcc_generated_files/led_d4.h"
#include "mcc_generated_files/led_d5.h"
#include "mcc_generated_files/led_d6.h"
#include "mcc_generated_files/led_d7.h"
#include "mcc_generated_files/led_d8.h"
#include "mcc_generated_files/led_d9.h"
#include "mcc_generated_files/charlcd.h"
#include<math.h>
#define N (99)
/*
Main application
*/
int main(void)
{ uint8_t i=0;
double a[N+1],b[N+1],c[N+1],pi,t;
pi=4*atan(1.0);
for(i=0;i<=N;i++){
t=0.01666666*i/((double N)+1);
a[i]=t;
b[i]=120*pi*t;
c[i]=sin(b[i]);
}
while (1)
{
for(i=0;i<=N;i++){
if(0.8<=c[i]&&c[i]<1.0) LED_D3_On();
else LED_D3_Off();
if(0.6<=c[i]&&c[i]<0.8) LED_D4_On();
else LED_D4_Off();
if(0.4<=c[i]&&c[i]<0.8) LED_D5_On();
else LED_D5_Off();
if(-0.4<=c[i]&&c[i]<0.4) LED_D6_On();
else LED_D6_Off();
if(-0.6<=c[i]&&c[i]<-0.4) LED_D7_On();
else LED_D7_Off();
if(-0.8<=c[i]&&c[i]<-0.6) LED_D8_On();
else LED_D8_Off();
if(-1.0<=c[i]&&c[i]<-0.8) LED_D9_On();
else LED_D9_Off();
}
// Add your application code
}
return 1;
}
/**
End of File
*/
[/code]-
サークルで活動するには参加が必要です。
「サークルに参加する」ボタンをクリックしてください。
※参加を制限しているサークルもあります。 - 0
-
サークルで活動するには参加が必要です。
「サークルに参加する」ボタンをクリックしてください。
※参加を制限しているサークルもあります。 - 0
icon拍手者リスト
-
コメント: 全0件