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.
Dependencies: eye_r_eye-htpa32x32-v_1_8-ticker mbed
Fork of eye_r_eye-htpa32x32-v_1_8-ticker by
Revision 2:270ef0ab1a2e, committed 2018-03-15
- Comitter:
- withboobs
- Date:
- Thu Mar 15 13:16:22 2018 +0000
- Parent:
- 1:7fd5cc2052cf
- Commit message:
- Use eoc between the conversion, rather than an external timer. I2C speed set to 400kHz which seems to work fine. If some blocks don't get downloaded right, decrease that to 100kHz.
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/eye_r_eye-htpa32x32-v_1_8-ticker.lib Thu Mar 15 13:16:22 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/STM-mbedorg-OSRAM-team/code/eye_r_eye-htpa32x32-v_1_8-ticker/#7fd5cc2052cf
--- a/heimann32x32.cpp Tue Mar 13 23:54:51 2018 +0000 +++ b/heimann32x32.cpp Thu Mar 15 13:16:22 2018 +0000 @@ -1,16 +1,15 @@ #include "mbed.h" #include "heimann32x32.h" - #include "heimann32x32_table.cpp" HTPA32x32::HTPA32x32(I2C * _i2c, I2C * _i2ce, uint8_t addr1, uint8_t addr2) { i2c = _i2c; - i2c->frequency(100000); + i2c->frequency(400000); //i2c->frequency(1000000); i2ce = _i2ce; - i2ce->frequency(100000); + i2ce->frequency(400000); i2c_addr_htpa = addr1; i2c_addr_eeprom = addr2; @@ -40,7 +39,7 @@ data_write[1] = m & TRIM1_ADC_MASK; i2c->write((int) i2c_addr_htpa, data_write, 2, 1); - + wait_ms(5); return mbit; } @@ -59,9 +58,12 @@ bias = m; data_write[1] = m & TRIM_BIAS_MASK; i2c->write(i2c_addr_htpa, data_write, 2, 1); + wait_ms(5); data_write[0] = HTP_TRIM3_BIAS2; i2c->write(i2c_addr_htpa, data_write, 2, 1); + wait_ms(5); + return bias; } @@ -80,6 +82,7 @@ data_write[1] = m & TRIM_FREQ_MASK; i2c->write(i2c_addr_htpa, data_write, 2, 1); + wait_ms(5); return clk; } @@ -98,6 +101,7 @@ pu = m<<4 | m; data_write[1] = pu; i2c->write(i2c_addr_htpa, data_write, 2, 1); + wait_ms(5); } return pu; @@ -118,10 +122,12 @@ bpa = m & TRIM_BPA_MASK; data_write[1] = bpa; i2c->write(i2c_addr_htpa, data_write, 2, 1); + wait_ms(5); data_write[0] = HTP_TRIM6_BPA2; i2c->write(i2c_addr_htpa, data_write, 2, 1); - + wait_ms(5); + return bpa; } @@ -178,6 +184,9 @@ void HTPA32x32::init( void ) { + char data_write[2] = { HTP_CONFIG, CONFIG_WAKEUP }; + i2c->write(i2c_addr_htpa, data_write, 2, 1); + uint8_t raw[5] = {0}; read_eeprom(HTP_EEPROM_CALIB_HI, HTP_EEPROM_CALIB_LO, (char *) raw, 5); mbit = raw[0]; @@ -201,7 +210,7 @@ return; } -uint8_t HTPA32x32::end ( ) +uint8_t HTPA32x32::eoc ( ) { uint8_t rval = HTP_STATUS; i2c->write(i2c_addr_htpa, (char *) &rval, 1, 1);
--- a/heimann32x32.h Tue Mar 13 23:54:51 2018 +0000 +++ b/heimann32x32.h Thu Mar 15 13:16:22 2018 +0000 @@ -540,7 +540,7 @@ uint8_t BPA ( void ), BPA (uint8_t); uint8_t - end (void); + eoc (void); void init( void ); void
--- a/main.cpp Tue Mar 13 23:54:51 2018 +0000 +++ b/main.cpp Thu Mar 15 13:16:22 2018 +0000 @@ -5,20 +5,16 @@ */ #include "heimann32x32.h" -#define FIRMWARE "eye_r_eye-v_1_8-ticker" +#define FIRMWARE "eye_r_eye-v_1_9" -#define BAUDRATE 115200 -//#define BAUDRATE 230400 +//#define BAUDRATE 115200 +#define BAUDRATE 230400 //#define PROC HTPA_PROC_RAW #define PROC (HTPA_PROC_ELOFFS | HTPA_PROC_THOFFS) //#define PROC HTPA_PROC_ELOFFS //#define PROC (HTPA_PROC_ELOFFS | HTPA_PROC_THOFFS | HTPA_PROC_CONVERT) -#if BAUDRATE == 230400 - #define HTPA_DT_MS 100 -#elif BAUDRATE == 115200 - #define HTPA_DT_MS 100 -#endif +#define HTPA_DT_MS 5 I2C i2c(I2C_SDA, I2C_SCL), i2ce(I2C_SDA, I2C_SCL); @@ -28,14 +24,6 @@ DigitalOut led_green(LED2); -Ticker tick; -volatile bool call_htpa=0; -void tick_set_htpa_flag( void ) -{ - call_htpa = 1; -} - - int main() { bool printme=0, print_labels=0; @@ -58,15 +46,12 @@ wait_ms(HTPA_DT_MS); led_green = 0; // initializaiton complete - - // start ticker - tick.attach(&tick_set_htpa_flag, (float) HTPA_DT_MS * (float) 1e-3); - + if (h.tn != TABLENUMBER) { pc.printf("TN=%d does not match the interpolation table %d\n", h.tn, TABLENUMBER); -// pc.printf("Cannot continue!\n"); -// while (1); + pc.printf("Cannot continue!\n"); + while (1); } while (1) @@ -173,10 +158,9 @@ break; } // switch } - if (call_htpa) + + if (h.eoc()) { - call_htpa=0; - led_green = 1; h.readb(); led_green = 0;