#include #include "py/obj.h" #include "py/gc.h" #include "py/mphal.h" //#include "board.h" #include "p2.h" //#include "sdcard.h" #include "smartpins.h" //RJA for smartpin constants /// RJA Testing STATIC mp_obj_t p2_pinl(mp_obj_t pin_in) { // _pinl(pin_in); int n=mp_obj_get_int(pin_in); _pinl(n); //printf("pin #%d driven low\r\n",n); return mp_const_none; } STATIC MP_DEFINE_CONST_FUN_OBJ_1(p2_pinl_obj, p2_pinl); STATIC mp_obj_t p2_pinh(mp_obj_t pin_in) { // _pinl(pin_in); int n=mp_obj_get_int(pin_in); _pinh(n); //printf("pin #%d driven low\r\n",n); return mp_const_none; } STATIC MP_DEFINE_CONST_FUN_OBJ_1(p2_pinh_obj, p2_pinh); //STATIC mp_obj_t p2_freemem(void) { // gc_collect(); // printf("%d Bytes Memory available\r\n",gc_mem_free()); // return mp_const_none; //} //STATIC MP_DEFINE_CONST_FUN_OBJ_0(p2_freemem_obj, p2_freemem); STATIC const mp_rom_map_elem_t p2_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_p2) }, { MP_ROM_QSTR(MP_QSTR_pinl), MP_ROM_PTR(&p2_pinl_obj) }, { MP_ROM_QSTR(MP_QSTR_pinh), MP_ROM_PTR(&p2_pinh_obj) }, //{ MP_ROM_QSTR(MP_QSTR_freemem), MP_ROM_PTR(&p2_freemem_obj) }, //Smart pin constants { MP_ROM_QSTR(MP_QSTR_P_TRUE_A), MP_ROM_INT(P_TRUE_A)}, //RJA: TOO BIG for 31 bit short int! { MP_ROM_QSTR(MP_QSTR_P_INVERT_A), MP_ROM_INT(P_INVERT_A)}, { MP_ROM_QSTR(MP_QSTR_P_LOCAL_A), MP_ROM_INT(P_LOCAL_A)}, { MP_ROM_QSTR(MP_QSTR_P_PLUS1_A), MP_ROM_INT(P_PLUS1_A) }, { MP_ROM_QSTR(MP_QSTR_P_PLUS2_A), MP_ROM_INT(P_PLUS2_A)}, { MP_ROM_QSTR(MP_QSTR_P_PLUS3_A), MP_ROM_INT(P_PLUS3_A)}, { MP_ROM_QSTR(MP_QSTR_P_OUTBIT_A), MP_ROM_INT(P_OUTBIT_A)}, { MP_ROM_QSTR(MP_QSTR_P_MINUS3_A), MP_ROM_INT(P_MINUS3_A)}, { MP_ROM_QSTR(MP_QSTR_P_MINUS2_A), MP_ROM_INT(P_MINUS2_A)}, { MP_ROM_QSTR(MP_QSTR_P_MINUS1_A), MP_ROM_INT(P_MINUS1_A)}, { MP_ROM_QSTR(MP_QSTR_P_TRUE_B), MP_ROM_INT(P_TRUE_B)}, { MP_ROM_QSTR(MP_QSTR_P_INVERT_B), MP_ROM_INT(P_INVERT_B)}, { MP_ROM_QSTR(MP_QSTR_P_LOCAL_B), MP_ROM_INT(P_LOCAL_B)}, { MP_ROM_QSTR(MP_QSTR_P_PLUS1_B), MP_ROM_INT(P_PLUS1_B) }, { MP_ROM_QSTR(MP_QSTR_P_PLUS2_B), MP_ROM_INT(P_PLUS2_B)}, { MP_ROM_QSTR(MP_QSTR_P_PLUS3_B), MP_ROM_INT(P_PLUS3_B)}, { MP_ROM_QSTR(MP_QSTR_P_OUTBIT_B), MP_ROM_INT(P_OUTBIT_B)}, { MP_ROM_QSTR(MP_QSTR_P_MINUS3_B), MP_ROM_INT(P_MINUS3_B)}, { MP_ROM_QSTR(MP_QSTR_P_MINUS2_B), MP_ROM_INT(P_MINUS2_B)}, { MP_ROM_QSTR(MP_QSTR_P_MINUS1_B), MP_ROM_INT(P_MINUS1_B)}, { MP_ROM_QSTR(MP_QSTR_P_PASS_AB), MP_ROM_INT(P_PASS_AB)}, { MP_ROM_QSTR(MP_QSTR_P_AND_AB), MP_ROM_INT(P_AND_AB)}, { MP_ROM_QSTR(MP_QSTR_P_OR_AB), MP_ROM_INT(P_OR_AB)}, { MP_ROM_QSTR(MP_QSTR_P_XOR_AB), MP_ROM_INT(P_XOR_AB)}, { MP_ROM_QSTR(MP_QSTR_P_FILT0_AB), MP_ROM_INT(P_FILT0_AB)}, { MP_ROM_QSTR(MP_QSTR_P_FILT1_AB), MP_ROM_INT(P_FILT1_AB)}, { MP_ROM_QSTR(MP_QSTR_P_FILT2_AB), MP_ROM_INT(P_FILT2_AB)}, { MP_ROM_QSTR(MP_QSTR_P_FILT3_AB), MP_ROM_INT(P_FILT3_AB)}, { MP_ROM_QSTR(MP_QSTR_P_LOGIC_A), MP_ROM_INT(P_LOGIC_A)}, { MP_ROM_QSTR(MP_QSTR_P_LOGIC_A_FB), MP_ROM_INT(P_LOGIC_A_FB)}, { MP_ROM_QSTR(MP_QSTR_P_LOGIC_B_FB), MP_ROM_INT(P_LOGIC_B_FB)}, { MP_ROM_QSTR(MP_QSTR_P_SCHMITT_A), MP_ROM_INT(P_SCHMITT_A)}, { MP_ROM_QSTR(MP_QSTR_P_SCHMITT_A_FB), MP_ROM_INT(P_SCHMITT_A_FB)}, { MP_ROM_QSTR(MP_QSTR_P_SCHMITT_B_FB), MP_ROM_INT(P_SCHMITT_B_FB)}, { MP_ROM_QSTR(MP_QSTR_P_COMPARE_AB), MP_ROM_INT(P_COMPARE_AB)}, { MP_ROM_QSTR(MP_QSTR_P_COMPARE_AB_FB), MP_ROM_INT(P_COMPARE_AB_FB)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_GIO), MP_ROM_INT(P_ADC_GIO)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_VIO), MP_ROM_INT(P_ADC_VIO)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_FLOAT), MP_ROM_INT(P_ADC_FLOAT)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_1X), MP_ROM_INT(P_ADC_1X)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_3X), MP_ROM_INT(P_ADC_3X)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_10X), MP_ROM_INT(P_ADC_10X)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_30X), MP_ROM_INT(P_ADC_30X)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_100X), MP_ROM_INT(P_ADC_100X)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_990R_3V), MP_ROM_INT(P_DAC_990R_3V)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_600R_2V), MP_ROM_INT(P_DAC_600R_2V)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_124R_3V), MP_ROM_INT(P_DAC_124R_3V)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_75R_2V), MP_ROM_INT(P_DAC_75R_2V)}, { MP_ROM_QSTR(MP_QSTR_P_LEVEL_A), MP_ROM_INT(P_LEVEL_A)}, { MP_ROM_QSTR(MP_QSTR_P_LEVEL_A_FBN), MP_ROM_INT(P_LEVEL_A_FBN)}, { MP_ROM_QSTR(MP_QSTR_P_LEVEL_B_FBP), MP_ROM_INT(P_LEVEL_B_FBP)}, { MP_ROM_QSTR(MP_QSTR_P_LEVEL_B_FBN), MP_ROM_INT(P_LEVEL_B_FBN)}, { MP_ROM_QSTR(MP_QSTR_P_ASYNC_IO), MP_ROM_INT(P_ASYNC_IO)}, { MP_ROM_QSTR(MP_QSTR_P_SYNC_IO), MP_ROM_INT(P_SYNC_IO)}, { MP_ROM_QSTR(MP_QSTR_P_TRUE_IN), MP_ROM_INT(P_TRUE_IN)}, { MP_ROM_QSTR(MP_QSTR_P_INVERT_IN), MP_ROM_INT(P_INVERT_IN)}, { MP_ROM_QSTR(MP_QSTR_P_TRUE_OUTPUT), MP_ROM_INT(P_TRUE_OUTPUT)}, { MP_ROM_QSTR(MP_QSTR_P_INVERT_OUTPUT), MP_ROM_INT(P_INVERT_OUTPUT)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_FAST), MP_ROM_INT(P_HIGH_FAST)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_1K5), MP_ROM_INT(P_HIGH_1K5)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_15K), MP_ROM_INT(P_HIGH_15K)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_150K), MP_ROM_INT(P_HIGH_150K)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_1MA), MP_ROM_INT(P_HIGH_1MA)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_100UA), MP_ROM_INT(P_HIGH_100UA)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_10UA), MP_ROM_INT(P_HIGH_10UA)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_FLOAT), MP_ROM_INT(P_HIGH_FLOAT)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_FAST), MP_ROM_INT(P_LOW_FAST)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_1K5), MP_ROM_INT(P_LOW_1K5)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_15K), MP_ROM_INT(P_LOW_15K)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_150K), MP_ROM_INT(P_LOW_150K)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_1MA), MP_ROM_INT(P_LOW_1MA)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_100UA), MP_ROM_INT(P_LOW_100UA)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_10UA), MP_ROM_INT(P_LOW_10UA)}, { MP_ROM_QSTR(MP_QSTR_P_LOW_FLOAT), MP_ROM_INT(P_LOW_FLOAT)}, { MP_ROM_QSTR(MP_QSTR_P_TT_00), MP_ROM_INT(P_TT_00)}, { MP_ROM_QSTR(MP_QSTR_P_TT_01), MP_ROM_INT(P_TT_01)}, { MP_ROM_QSTR(MP_QSTR_P_TT_10), MP_ROM_INT(P_TT_10)}, { MP_ROM_QSTR(MP_QSTR_P_TT_11), MP_ROM_INT(P_TT_11)}, { MP_ROM_QSTR(MP_QSTR_P_OE), MP_ROM_INT(P_OE)}, { MP_ROM_QSTR(MP_QSTR_P_CHANNEL), MP_ROM_INT(P_CHANNEL)}, { MP_ROM_QSTR(MP_QSTR_P_BITDAC), MP_ROM_INT(P_BITDAC)}, { MP_ROM_QSTR(MP_QSTR_P_NORMAL), MP_ROM_INT(P_NORMAL)}, { MP_ROM_QSTR(MP_QSTR_P_REPOSITORY), MP_ROM_INT(P_REPOSITORY)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_NOISE), MP_ROM_INT(P_DAC_NOISE)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_DITHER_RND), MP_ROM_INT(P_DAC_DITHER_RND)}, { MP_ROM_QSTR(MP_QSTR_P_DAC_DITHER_PWM), MP_ROM_INT(P_DAC_DITHER_PWM)}, { MP_ROM_QSTR(MP_QSTR_P_PULSE), MP_ROM_INT(P_PULSE)}, { MP_ROM_QSTR(MP_QSTR_P_TRANSITION), MP_ROM_INT(P_TRANSITION)}, { MP_ROM_QSTR(MP_QSTR_P_NCO_FREQ), MP_ROM_INT(P_NCO_FREQ)}, { MP_ROM_QSTR(MP_QSTR_P_NCO_DUTY), MP_ROM_INT(P_NCO_DUTY)}, { MP_ROM_QSTR(MP_QSTR_P_PWM_TRIANGLE), MP_ROM_INT(P_PWM_TRIANGLE)}, { MP_ROM_QSTR(MP_QSTR_P_PWM_SAWTOOTH), MP_ROM_INT(P_PWM_SAWTOOTH)}, { MP_ROM_QSTR(MP_QSTR_P_PWM_SMPS), MP_ROM_INT(P_PWM_SMPS)}, { MP_ROM_QSTR(MP_QSTR_P_QUADRATURE), MP_ROM_INT(P_QUADRATURE)}, { MP_ROM_QSTR(MP_QSTR_P_REG_UP), MP_ROM_INT(P_REG_UP)}, { MP_ROM_QSTR(MP_QSTR_P_REG_UP_DOWN), MP_ROM_INT(P_REG_UP_DOWN)}, { MP_ROM_QSTR(MP_QSTR_P_COUNT_RISES), MP_ROM_INT(P_COUNT_RISES)}, { MP_ROM_QSTR(MP_QSTR_P_COUNT_HIGHS), MP_ROM_INT(P_COUNT_HIGHS)}, { MP_ROM_QSTR(MP_QSTR_P_STATE_TICKS), MP_ROM_INT(P_STATE_TICKS)}, { MP_ROM_QSTR(MP_QSTR_P_HIGH_TICKS), MP_ROM_INT(P_HIGH_TICKS)}, { MP_ROM_QSTR(MP_QSTR_P_EVENTS_TICKS), MP_ROM_INT(P_EVENTS_TICKS)}, { MP_ROM_QSTR(MP_QSTR_P_PERIODS_TICKS), MP_ROM_INT(P_PERIODS_TICKS)}, { MP_ROM_QSTR(MP_QSTR_P_PERIODS_HIGHS), MP_ROM_INT(P_PERIODS_HIGHS)}, { MP_ROM_QSTR(MP_QSTR_P_COUNTER_TICKS), MP_ROM_INT(P_COUNTER_TICKS)}, { MP_ROM_QSTR(MP_QSTR_P_COUNTER_HIGHS), MP_ROM_INT(P_COUNTER_HIGHS)}, { MP_ROM_QSTR(MP_QSTR_P_COUNTER_PERIODS), MP_ROM_INT(P_COUNTER_PERIODS)}, { MP_ROM_QSTR(MP_QSTR_P_ADC), MP_ROM_INT(P_ADC)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_EXT), MP_ROM_INT(P_ADC_EXT)}, { MP_ROM_QSTR(MP_QSTR_P_ADC_SCOPE), MP_ROM_INT(P_ADC_SCOPE)}, { MP_ROM_QSTR(MP_QSTR_P_USB_PAIR), MP_ROM_INT(P_USB_PAIR)}, { MP_ROM_QSTR(MP_QSTR_P_SYNC_TX), MP_ROM_INT(P_SYNC_TX)}, { MP_ROM_QSTR(MP_QSTR_P_SYNC_RX), MP_ROM_INT(P_SYNC_RX)}, { MP_ROM_QSTR(MP_QSTR_P_ASYNC_TX), MP_ROM_INT(P_ASYNC_TX)}, { MP_ROM_QSTR(MP_QSTR_P_ASYNC_RX), MP_ROM_INT(P_ASYNC_RX)}, //#if MICROPY_HW_ENABLE_SDCARD // { MP_ROM_QSTR(MP_QSTR_SDCard), MP_ROM_PTR(&pyc_sdcard_type) }, //#endif }; STATIC MP_DEFINE_CONST_DICT(p2_module_globals, p2_module_globals_table); const mp_obj_module_t p2_module = { .base = { &mp_type_module }, .globals = (mp_obj_dict_t*)&p2_module_globals, };