X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm-demo%2Fao_demo.c;h=73ace558dae5141015b78a66cb659b9c5276990e;hb=03dc80d15a2f8fe9d7340351226dadd8bc3cfdb9;hp=63647aac912238d461bccea33e7e33f647df082d;hpb=9b9357f48597a034211affb3f18fc6089816456d;p=fw%2Faltos diff --git a/src/stm-demo/ao_demo.c b/src/stm-demo/ao_demo.c index 63647aac..73ace558 100644 --- a/src/stm-demo/ao_demo.c +++ b/src/stm-demo/ao_demo.c @@ -111,10 +111,49 @@ ao_spi_read(void) { } } +static void +ao_i2c_write(void) { + unsigned char data[] = { 0x55, 0xaa, 0xff, 0x00 }; + int i; + + for (i = 0; i < 10; i++) { + ao_i2c_get(0); + if (ao_i2c_start(0, 0x55)) + ao_i2c_send(data, 4, 0, TRUE); + else { + printf ("i2c start failed\n"); + ao_i2c_put(0); + break; + } + ao_i2c_put(0); + printf("."); + flush(); + ao_delay(100); + } +} + +static void +ao_temp (void) +{ + struct ao_data packet; + int temp; + + ao_data_get(&packet); + + /* + * r = (110 - 25) / (ts_cal_hot - ts_cal_cold) + * 25 + (110 - 25) * (temp - ts_cal_cold) / (ts_cal_hot - ts_cal_cold) + */ + temp = 25 + (110 - 25) * (packet.adc.temp - stm_temp_cal.ts_cal_cold) / (stm_temp_cal.ts_cal_hot - stm_temp_cal.ts_cal_cold); + printf ("temp: %d\n", temp); +} + __code struct ao_cmds ao_demo_cmds[] = { { ao_dma_test, "D\0DMA test" }, { ao_spi_write, "W\0SPI write" }, { ao_spi_read, "R\0SPI read" }, + { ao_i2c_write, "i\0I2C write" }, + { ao_temp, "t\0Show temp" }, { 0, NULL } }; @@ -127,13 +166,15 @@ main(void) ao_timer_init(); ao_dma_init(); ao_cmd_init(); -// ao_lcd_stm_init(); + ao_lcd_stm_init(); // ao_lcd_font_init(); ao_spi_init(); + ao_i2c_init(); ao_timer_set_adc_interval(100); ao_adc_init(); + ao_usb_init(); ao_cmd_register(&ao_demo_cmds[0]);