チーム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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード