void mon_putc(char ch) { while(U1STAbits.UTXBF); /* wait if the buffer is full */ #ifndef STDOUT_NO_CR_WITH_LF if (LF == ch) putcUART1(CR); #endif #ifdef STDOUT_NO_CR if (CR == ch) return; #endif putcUART1(ch); }
void copyMidgToUart1() { unsigned char buf[MIDG_CHUNKSIZE]; int i; unsigned char test[] = MSG_DIV(3,5,2,50); midgMsgAppendChecksum( test ); printToUart1("test of macros: "); for ( i = 0; i < 9; i++ ) { printToUart1("%u ", (unsigned int)test[i]); } printToUart1("... that was it.\n"); midgRead(buf); /* // add NUL terminator after bytes buf[buf[0]+1] = 0; // send the number of bytes read from the buffer printToUart1("%u:<%s>\r\n\0", buf[0], &buf[1]); */ printToUart1("%u:<", buf[0]); for ( i = 1; i <= buf[0]; i++ ) { putcUART1(buf[i]); while(BusyUART1()); } printToUart1(">\r\n\0"); }
//#------------------------------------------------------------------------------------------------- void COMM1_Tx(unsigned int d) { while( U1STAbits.UTXBF); putcUART1(d); }
void process_cmd(void) { char goodcmd[] = "- Command Accepted.\n\n\r\0"; char evilcmd[] = "- BAD Command.\n\n\r\0"; char *r = evilcmd; if (cmdissued == 1) { switch(*rbufptr++) { /*** STEPPER COMMANDS ***/ case 's': putcUART1('s'); if(*rbufptr++ == 't'){ putcUART1('t'); switch(*rbufptr++){ case 's':{ putcUART1('s'); putcUART1(' '); // sts command received (start) if(*rbufptr++ == ' '){ // sts parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;stepper_enable1=1; }else if(*rbufptr++ == '2'){ r = goodcmd;stepper_enable2=1; } } }break; case 'p':{ putcUART1('p'); // stp command received (stop) if(*rbufptr++ == ' '){ // stp parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;stepper_enable1=0; }else if(*rbufptr++ == '2'){ r = goodcmd;stepper_enable2=0; } } }break; case 'd':{ putcUART1('d'); // std command received (disable) if(*rbufptr == ' '){ *rbufptr++; // std parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;disable_stepper1(); }else if(*rbufptr++ == '2'){ r = goodcmd;disable_stepper2(); } }else{ switch(*rbufptr++){ // stdc command received (direction clockwise) case 'c':{ if(*rbufptr++ == ' '){ // stdc parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;direction1=1; }else if(*rbufptr++ == '2'){ r = goodcmd;direction2=1; } } }break; // stdh command received (direction counter clockwise) case 'h':{ if(*rbufptr++ == ' '){ // stdh parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;direction1=0; }else if(*rbufptr++ == '2'){ r = goodcmd;direction2=0; } } }break; } } }break; case 'm':{ putcUART1('m'); switch(*rbufptr++){ // stmf command received (Full Step Mode) case 'f':{ if(*rbufptr++ == ' '){ // stdc parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;mode_step1=1; }else if(*rbufptr++ == '2'){ r = goodcmd;mode_step2=1; } } }break; // stmh command received (Half Step Mode) case 'h':{ if(*rbufptr++ == ' '){ // stdh parameters [1 or 2] if(*rbufptr == '1'){ r = goodcmd;mode_step1=0; }else if(*rbufptr++ == '2'){ r = goodcmd;mode_step2=0; } } }break; } }break; case 'f':{ putcUART1('f'); r = goodcmd; }break; // invalid command default: r = evilcmd;break; } } break; /*** DC MOTOR COMMANDS ***/ case 'm': putcUART1('m'); if(*rbufptr++ == 'd'){ putcUART1('d'); if(*rbufptr++ == 'c'){ putcUART1('c'); switch(*rbufptr++){ case 'r':{ putcUART1('r'); // mdcr command received (start) if(*rbufptr++ == ' '){ // mdcr parameters [] r = goodcmd; SetDCOC1PWM(*rbufptr); } }break; case 'p':{ putcUART1('p'); // mdcp command received (start) if(*rbufptr++ == ' '){ // mdcp parameters [] } }break; case 'i':{ putcUART1('i'); // mdci command received (start) if(*rbufptr++ == ' '){ // mdci parameters [] } }break; case 'd':{ putcUART1('d'); // mdcd command received (start) if(*rbufptr++ == ' '){ // mdcd parameters [] } }break; } } } break; } rbufptr = (char*)bufstt; wbufptr = rbufptr; putsUART1((unsigned int *)r); while(BusyUART1()); cmdissued = 0; } }