' ========================================================================= ' ' File....... PWMPAL_Servo.BS2 ' Purpose.... ' Author..... Jon Williams -- Parallax, Inc. ' E-mail..... jwilliams@parallax.com ' Started.... ' Updated.... 02 JAN 2005 ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- PpPin PIN 0 ' PWMPAL Serial I/O ' -----[ Constants ]------------------------------------------------------- #SELECT $stamp #CASE BS2, BS2E, BS2PE T9600 CON 84 T19K2 CON 32 T38K4 CON 6 #CASE BS2SX, BS2P T9600 CON 240 T19K2 CON 110 T38K4 CON 45 #ENDSELECT Baud CON T38K4 ' -----[ Variables ]------------------------------------------------------- s1Pos VAR Word ' servo 1 position temp VAR Word ' work variable ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- Reset: SEROUT PpPin, Baud, ["!PWMSS", %00010000] ' enable output (on P12) ' -----[ Program Code ]---------------------------------------------------- Main: FOR s1Pos = 1000 TO 2000 STEP 250 ' position is uS temp = s1Pos / 25 ' convert to PWMPAL units SEROUT PpPin, Baud, ["!PWMM1", temp.BYTE0, temp.BYTE1, $20, $03] PAUSE 500 NEXT GOTO Main END ' -----[ Subroutines ]-----------------------------------------------------