//******************** サーボ制御用PICに命令を出す ************************// // 試験用プログラム // 2009.12.15 // // printf関数に CODE,サーボ番号、回転角度の引数を渡してシリアル送信 // サーボ番号は0~Fの16 // 回転角度は限界を超えると動作不定となるので注意 // ±4000を限界値の目安とする // 受信側プログラムでは1万の桁まで認識するようになっているがタイマーの値を超える危険性がある // // // ver1.0 基本プログラム 2009.12.15 // ver1.1 命令コードの角度値を5byteに固定 2009.12.15 // //****************************************************************************// #include <12f683.h> #fuses INTRC_IO,NOWDT,NOPROTECT,NOMCLR,BROWNOUT #use delay(clock = 4000000) #use rs232(BAUD =9600, XMIT = PIN_A2, RCV = PIN_A3) #define CODE "%d%05ld\n" void main(){ int i = 0; long data=40; set_tris_a(0x08); output_a(0x00); while(1){ for(i=0;i<100;i++){ printf(CODE,0,data * i); delay_ms(100); } printf(CODE,0,0); delay_ms(1000); for(i=0;i<100;i++){ printf(CODE,0,-data * i); delay_ms(100); } printf(CODE,0,0); delay_ms(1000); } }