チーム1937
課題名
温度センサー。
研究者名
Wang Ziming
Ryota Kakinuma
概要[#a6651ac0]
温度の高さによって異なる音階の音を出す装置を作ってみった。
LCDに温度を出力させました。
使用部品[#z06ef467]
・Psoc
・Miniprog書き込み機
・スピーカー
・ジャンパー 5本
・温度センサー
見出しN
#include <m8c.h> // part specific constants and macros
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
#pragma interrupt_handler myISR
int PW=125; // Pulse Width
int SILENT=0, D=229, L=204, M=182, F=172, S=153, R=136, C=121, DD=115;
int TC=0; //Time Count
void myISR(void)
{
/*
TC += 1; //TC = TC +1
PWM16_1_WritePulseWidth(PW);
if(TC == 1)
PWM16_1_WritePeriod(D);
else if(TC == 4)
PWM16_1_WritePeriod(L);
else if (TC == 8)
PWM16_1_WritePeriod(M);
else if(TC == 13)
PWM16_1_WritePeriod(F);
else if(TC == 19)
PWM16_1_WritePeriod(S);
else if (TC == 26)
PWM16_1_WritePeriod(R);
else if(TC == 34)
PWM16_1_WritePeriod(C);
else if(TC == 43)
PWM16_1_WritePeriod(DD);
else if (TC == 53)
PWM16_1_WritePeriod(SILENT);
*/ }
void main(void)
{
unsigned int adc_data;
// M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts // Insert your main routine code here.
M8C_EnableGInt;
PGA_Start(PGA_HIGHPOWER);
PWM16_1_Start();
ADCINC_Start(ADCINC_HIGHPOWER);
ADCINC_GetSamples(0);
Timer16_1_EnableInt();
Timer16_1_Start();
LCD_Start();
LCD_InitBG(LCD_SOLID_BG);
while(1){
//while(ADCINC_fIsDataAvailable()==0){}; while(ADCINC_fIsDataAvailable()!=0){}; adc_data=ADCINC_wClearFlagGetData(); LCD_Position(0,0); LCD_PrCString("temp:"); LCD_Position(0,6); LCD_PrHexInt(adc_data); LCD_Position(1,0); LCD_PrHexInt(D); PGA_Start(PGA_HIGHPOWER); M8C_EnableGInt; ADCINC_Start(ADCINC_HIGHPOWER); ADCINC_GetSamples(0); PWM16_1_Start(); PWM16_1_WritePulseWidth(PW); PWM16_1_WritePeriod(D); }
}
考察
チーム1517の作品を参照しました。
二回やり直ししましたか、最後は外部状態を読み取ってLCDに温度を出力させ、音を出すはずですが、外部の状況を読まないままデータを出力にしてしまいました。接線の問題だと思います。
- 最終更新:2019-07-16 17:09:33