Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:be95bfb06686, 2022-01-17 (annotated)
- Committer:
- wuliqunyy
- Date:
- Mon Jan 17 13:20:09 2022 +0000
- Revision:
- 0:be95bfb06686
a working non_flat + adc_didt for ehp regulation version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wuliqunyy | 0:be95bfb06686 | 1 | #include "mbed.h" |
wuliqunyy | 0:be95bfb06686 | 2 | #include "main_init.h" |
wuliqunyy | 0:be95bfb06686 | 3 | #include "i2c_mbed_fpga.h" |
wuliqunyy | 0:be95bfb06686 | 4 | #include "uart_mbed.h" |
wuliqunyy | 0:be95bfb06686 | 5 | #include "scpi-def.h" |
wuliqunyy | 0:be95bfb06686 | 6 | |
wuliqunyy | 0:be95bfb06686 | 7 | #define RAM_END_ADDR 0x4B |
wuliqunyy | 0:be95bfb06686 | 8 | //#define HAVE_STDBOOL |
wuliqunyy | 0:be95bfb06686 | 9 | |
wuliqunyy | 0:be95bfb06686 | 10 | i2c_mbed_fpga i2c; |
wuliqunyy | 0:be95bfb06686 | 11 | |
wuliqunyy | 0:be95bfb06686 | 12 | DigitalOut led1(LED1); |
wuliqunyy | 0:be95bfb06686 | 13 | DigitalOut led2(LED2); |
wuliqunyy | 0:be95bfb06686 | 14 | DigitalOut led3(LED3); |
wuliqunyy | 0:be95bfb06686 | 15 | DigitalOut led4(LED4); |
wuliqunyy | 0:be95bfb06686 | 16 | DigitalOut fpga_rstb(p27); //On FPGA PCB with red marked version ID it should be p20, (p27 of MBED is connected to p22 of the FPGA CMOD for 90415FPGA_EVB2) |
wuliqunyy | 0:be95bfb06686 | 17 | //DigitalIn TimerIn(p29); //p29 shall be input pin |
wuliqunyy | 0:be95bfb06686 | 18 | |
wuliqunyy | 0:be95bfb06686 | 19 | /* Main function */ |
wuliqunyy | 0:be95bfb06686 | 20 | int main() { |
wuliqunyy | 0:be95bfb06686 | 21 | char i2cBuffer[3]; |
wuliqunyy | 0:be95bfb06686 | 22 | char i2cTestPassFlag = 0; |
wuliqunyy | 0:be95bfb06686 | 23 | // char i2cRamDumpFlag = 0; |
wuliqunyy | 0:be95bfb06686 | 24 | char i2cTestPulseDebugFlag = 0; |
wuliqunyy | 0:be95bfb06686 | 25 | |
wuliqunyy | 0:be95bfb06686 | 26 | fpga_rstb = 1; |
wuliqunyy | 0:be95bfb06686 | 27 | configure_scpi(); |
wuliqunyy | 0:be95bfb06686 | 28 | |
wuliqunyy | 0:be95bfb06686 | 29 | if(i2cTestPulseDebugFlag == 1) { |
wuliqunyy | 0:be95bfb06686 | 30 | i2c.i2c_mlx_mode_entry(); |
wuliqunyy | 0:be95bfb06686 | 31 | wait_us(1000); |
wuliqunyy | 0:be95bfb06686 | 32 | *(i2cBuffer+0) = (char)(I2C_STATUS)& 0xff; |
wuliqunyy | 0:be95bfb06686 | 33 | i2c.i2c_word_read(i2cBuffer); |
wuliqunyy | 0:be95bfb06686 | 34 | uart_print(i2cBuffer); |
wuliqunyy | 0:be95bfb06686 | 35 | |
wuliqunyy | 0:be95bfb06686 | 36 | if( i2cBuffer[2] == 0x0C ){ |
wuliqunyy | 0:be95bfb06686 | 37 | uart_I2C_test_pass(); |
wuliqunyy | 0:be95bfb06686 | 38 | i2cTestPassFlag = 1; |
wuliqunyy | 0:be95bfb06686 | 39 | led4 = 0; |
wuliqunyy | 0:be95bfb06686 | 40 | } |
wuliqunyy | 0:be95bfb06686 | 41 | else { |
wuliqunyy | 0:be95bfb06686 | 42 | uart_I2C_test_fail(); |
wuliqunyy | 0:be95bfb06686 | 43 | i2cTestPassFlag = 0; |
wuliqunyy | 0:be95bfb06686 | 44 | led4 = 1; |
wuliqunyy | 0:be95bfb06686 | 45 | } |
wuliqunyy | 0:be95bfb06686 | 46 | |
wuliqunyy | 0:be95bfb06686 | 47 | if(i2cTestPassFlag == 1){ |
wuliqunyy | 0:be95bfb06686 | 48 | i2c.i2c_enable_pules_debug_mode(1); |
wuliqunyy | 0:be95bfb06686 | 49 | wait_us(1000); |
wuliqunyy | 0:be95bfb06686 | 50 | } |
wuliqunyy | 0:be95bfb06686 | 51 | } |
wuliqunyy | 0:be95bfb06686 | 52 | |
wuliqunyy | 0:be95bfb06686 | 53 | if(i2cTestPulseDebugFlag == 1) { |
wuliqunyy | 0:be95bfb06686 | 54 | wait_us(100000); |
wuliqunyy | 0:be95bfb06686 | 55 | char i; |
wuliqunyy | 0:be95bfb06686 | 56 | for(i=0xEA;i<=0xEF;i++) { |
wuliqunyy | 0:be95bfb06686 | 57 | *(i2cBuffer+0) = i; |
wuliqunyy | 0:be95bfb06686 | 58 | i2c.i2c_word_read(i2cBuffer); |
wuliqunyy | 0:be95bfb06686 | 59 | uart_print(i2cBuffer); |
wuliqunyy | 0:be95bfb06686 | 60 | wait_us(300000); |
wuliqunyy | 0:be95bfb06686 | 61 | } |
wuliqunyy | 0:be95bfb06686 | 62 | uart_ram_dump_finish(); |
wuliqunyy | 0:be95bfb06686 | 63 | } |
wuliqunyy | 0:be95bfb06686 | 64 | /*enter infinite loop, motor should be running*/ |
wuliqunyy | 0:be95bfb06686 | 65 | |
wuliqunyy | 0:be95bfb06686 | 66 | while (1) { |
wuliqunyy | 0:be95bfb06686 | 67 | char buffer[50]; |
wuliqunyy | 0:be95bfb06686 | 68 | uart_read(buffer); |
wuliqunyy | 0:be95bfb06686 | 69 | strcat(buffer, "\n"); |
wuliqunyy | 0:be95bfb06686 | 70 | SCPI_Input(&scpi_context, buffer, strlen(buffer)); |
wuliqunyy | 0:be95bfb06686 | 71 | |
wuliqunyy | 0:be95bfb06686 | 72 | } |
wuliqunyy | 0:be95bfb06686 | 73 | |
wuliqunyy | 0:be95bfb06686 | 74 | } |