#include #include #include uint8_t lpt_data; DefineBuffer(512,LPTDATABUF) void EXTI9_5_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line9) != RESET) { LPT_BUSY_ON(); {uint32_t x = 3;while ((x--) > 0) _nop();} lpt_data = LPT_DATA_GET(); PutBuffer(&LPTDATABUF, lpt_data); EXTI_ClearITPendingBit(EXTI_Line9); } } int main() { volatile uint16_t tmp = 0; volatile bool indatasend = false; xbUSARTSendText(USART1, ";;;twr;Start..."); LPT_BUSY_OFF(); LPT_SELECTED_ON(); LPT_ERR_ON(); for(;;) { tmp = GetBuffer(&LPTDATABUF); if (tmp != 0x100) { if (!indatasend) { indatasend = true; cmd_SendText(&csTERM, "nD(""); } cmd_SendCharInQuote(&csTERM, tmp); } else { BEGIN_WAITMS(inds,1000) if (indatasend) { indatasend = false; cmd_SendText(&csTERM, "");"); } RESET_WAITMS(inds) END_WAITMS(inds) CMD_DoEvent(); } LPT_BUSY_OFF(); } }