Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
caa45040
Date:
Mon May 03 05:18:29 2021 +0000
Commit message:
stm32l010f4p6 adc mcp9701 1

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 1a55aa7b10a5 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon May 03 05:18:29 2021 +0000
@@ -0,0 +1,96 @@
+#include "mbed.h"
+
+//10の割り算 0から1028までは、正しい。主に0から999
+#define DVI10(n) ((n*205)>>11)
+
+//アナログ入力の設定
+AnalogIn adc_vbat(A3); //PA_4
+//AnalogIn adc_vbat(A0); //767
+
+#define ADDR_LCD    (0x7C)   //  address
+
+//I2C i2c(I2C_SDA, I2C_SCL); //767
+//I2C i2c(dp5, dp27); //1114
+I2C i2c(PA_10, PA_9); //010
+
+char    data_read[8];   //i2cバッファー
+
+char INIT_com[]={0x0,0x38,
+0x0,0x39,
+0x0,0x4,
+0x0,0x14,
+0x0,0x70,
+0x0,0x56,
+0x0,0x6C,
+0x0,0x38,
+0x0,0xC,
+0x0,0x1,
+0x40,0x41};
+
+char INIT_cls[]={0x0,0x1};
+
+char ch_hex_a_b[5];
+char *ch_hex_a(int l_num)
+{
+    int a,b,c;
+
+    b=DVI10(l_num);
+    c=l_num-(b*10);
+    l_num=b;
+    a=DVI10(l_num);
+    b=l_num-(a*10);
+
+    ch_hex_a_b[0] = '@';
+    ch_hex_a_b[1] = '0' + a;
+    ch_hex_a_b[2] = '0' + b;
+    ch_hex_a_b[3] = '0' + c;
+    ch_hex_a_b[4] = 0;
+
+    return(ch_hex_a_b);
+} //ch_hex_a
+
+int ii;  //ループカウンタ
+int s;   //アナログ読み取り値
+
+int main()
+{
+    //printf("767\r\n"); //767
+    //液晶の初期化
+    for(ii=0;ii<11;ii++){
+        i2c.write(ADDR_LCD, &INIT_com[ii*2], 2);wait_ms(2);
+    } //for
+    
+    //無限ループ
+    while (1) {
+        //液晶のクリア
+        i2c.write(ADDR_LCD,INIT_cls,2);wait_ms(2);
+
+        //adcの読み込み 0から4096
+        s = (adc_vbat.read_u16()>>4);
+        
+        //電圧を温度に変換 ex 20.0 -> 200 温度の十倍を出力
+        s=((s-496)*27081)>>16;
+
+        //小数点以上と小数点以下を分ける
+        ii=DVI10(s);  // 10の桁
+        s =(s-(ii*10))*10; //  1の桁
+        
+        //温度の小数点以上の表示
+        i2c.write(ADDR_LCD, ch_hex_a( ii ) ,4);
+
+       //温度の小数点以下の表示
+        ch_hex_a( s );
+        ch_hex_a_b[1] = '.';
+      //ch_hex_a_b[2] = '0' + s;
+        ch_hex_a_b[3] = 'C';
+        i2c.write(ADDR_LCD, ch_hex_a_b ,4);
+
+        //1秒待つ
+        wait_ms(1000);
+
+    }//while
+
+}//main
+
+//容量削減
+void error(const char* format, ...){}
diff -r 000000000000 -r 1a55aa7b10a5 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon May 03 05:18:29 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/2e9cc70d1897
\ No newline at end of file