〒619-0237 京都府相楽郡精華町光台8丁目
TEL. 070-5263-2200
jun@kinet-tv.ne.jp
//------------------------------------------------------------------------------------------------------------------ // motor speed:±100 // -100〜0〜+100 => -900〜-108/0/+108〜+900 void motor(int l_speed, int r_speed) { int l_spd, r_spd; BYTE l_fsw, r_fsw; BYTE l_bsw, r_bsw; if (gMS[L_MS] == l_speed && gMS[R_MS] == r_speed) return; //ck_pin(on); // motor all off setPwmDuty(0, 0); MOT_LF = off; MOT_LB = off; MOT_RF = off; MOT_RB = off; // 250usec Timer start PIE2bits.TMR3IE = 0; // タイマー3は割込み禁止 PIR2bits.TMR3IF = 0; // Interrupt Flag Clear T3CONbits.TMR3ON= 0; TMR3H = INT_T3_250H; TMR3L = INT_T3_250L; // 250usec T3CONbits.TMR3ON = 1; // Left motor if (SPEED_STOP < l_speed){ l_fsw = MOT_ON; l_bsw = MOT_OFF; l_spd = l_speed * 8 + 100; } else if (l_speed < SPEED_STOP){ l_fsw = MOT_OFF; l_bsw = MOT_ON; l_spd = l_speed * -8 + 100; } else if (gIsFastStop){ l_fsw = MOT_ON; l_bsw = MOT_ON; l_spd = 0; } // Right motor if (SPEED_STOP < r_speed){ r_fsw = MOT_ON; r_bsw = MOT_OFF; r_spd = r_speed * 8 + 100; } else if (r_speed < SPEED_STOP){ r_fsw = MOT_OFF; r_bsw = MOT_ON; r_spd = r_speed * -8 + 100; } else if (gIsFastStop){ r_fsw = MOT_ON; r_bsw = MOT_ON; r_spd = 0; } gIsFastStop = TRUE; gMS[L_MS] = l_speed; gMS[R_MS] = r_speed; // 250uS Wait while (PIR2bits.TMR3IF == 0); PIR2bits.TMR3IF = 0;// Interrupt Flag Clear // set motor setPwmDuty((UINT)l_spd, (UINT)r_spd); MOT_LF = l_fsw; MOT_LB = l_bsw; MOT_RF = r_fsw; MOT_RB = r_bsw; //ck_pin(off); } //------------------------------------------------------------------------------------------------------------------ |
//------------------------------------------------------------------------------------------------------------------- // C-Style Function //------------------------------------------------------------------------------------------------------------------- // msec wait // void wait_ms(UINT wct) { UINT w; INTCONbits.TMR0IE = 0; gW_Tct = 0; INTCONbits.TMR0IE = 1; do { INTCONbits.TMR0IE = 0; w = gW_Tct; INTCONbits.TMR0IE = 1; } while (w < wct); } //------------------------------------------------------------------------------------------------------------------- |
//------------------------------------------------------------------------------------------------------------------- // C-Style Function //------------------------------------------------------------------------------------------------------------------- // LED点灯制御 void set_Led(BYTE led_no, BOOL sw) { switch (led_no){ case LNO_GREEN: LED_GREEN= sw; break; case LNO_RED1: LED_RED1 = sw; break; case LNO_RED2: LED_RED2 = sw; break; case LNO_RED3: LED_RED3 = sw; break; } } //------------------------------------------------------------------------------ BOOL get_Led(BYTE led_no) { BOOL sw = LED_OFF; switch (led_no){ case LNO_GREEN: sw = LED_GREEN; break; case LNO_RED1: sw = LED_RED1; break; case LNO_RED2: sw = LED_RED2; break; case LNO_RED3: sw = LED_RED3; break; } return(sw); } //------------------------------------------------------------------------------------------------------------------- |
〒619-0237
京都府相楽郡精華町光台8丁目
TEL : 070-5263-2200
FAX : 0774-98-1100
mail : jun@kinet-tv.ne.jp