アットウィキロゴ

前提

モータ回路(トランジスタのところ)ができてる。
スイッチがついてる。
書き込みができる。

プログラム

#include <16F873A.h>

#fuses HS,NOWDT,NOLVP,NOPROTECT
#use delay(clock = 20000000)
#use RS232(BAUD=9600,xmit=PIN_C6,rcv=PIN_C7)

int i;
int prd;
int div;
int sw_b;
void main(){
     
//ポートA入力
set_tris_a(0xFF);

//ポートB4bit出力
set_tris_b(0xF0);

//RB3にPWM信号生成
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);

//タイマー2の周期を約0.1mSに設定  
prd=40;    
setup_timer_2(T2_DIV_BY_4,prd,1);
prd -= 2;
div=0;
while(1){
    //パルス幅でモータをPWM制御する  
    if(sw_b==1&&input(PIN_A0)==0){
		div+=5;
		printf("%d\r\n",div);
		delay_ms(20);
      set_pwm1_duty(prd-div);
      set_pwm2_duty(prd-div);
//       div += 2;
  }
	sw_b=input(PIN_A0);
 }
}

タグ:

+ タグ編集
  • タグ:
最終更新:2010年07月16日 13:47