Yep it sounds like you are pretty well maxing it out!
HServostate is only on some pins like, which are marked in the Arc32 data sheet. I think they are: 9-15,24-31.
I don't believe that any of the IO pins on AUX2 are analog capable. There is one on the Aux1 which can be used for Analog input.
Hservo subsystem does not take care of setting an IO pin high or low. But this is not difficult.
I don't know if Nathan has uploaded his set of macros up here in this forum or not, He did earlier on the Lynxmotion forums. They make it easier to do lots of the things like setting a pin to be an Input pin or an Output pin or High or Low... There is more information about this up in the thread:
http://www.lynxmotion.net/viewtopic.php ... bly+macrosThere are ones like:
Code:
;********************************
; HighFuncMac
;********************************
;R0L = Pin number
;********************************
.macro _HIGHFUNCMAC ;(46)
_GETPINMAC ;18
bset r3l,@er2 ;8 Set PDR bit
mov.b @(0x70-0xD0,er2),r1l ;6 Get PCRS value
bset r3l,r1l ;2 Set PCR bit
mov.b r1l,@(0x70-0xD0,er2) ;6 Save PCRS
mov.b r1l,@(0x10,er2) ;6 Set PCR
.endm
;********************************
; HighFastFuncMac
;********************************
;R0L = Pin number
;********************************
.macro _HIGHFASTFUNCMAC ;(26)
_GETPINMAC ;18
bset r3l,@er2 ;8
.endm
You simply need to put your desired IO pin in R0L the macro does the rest. You can include the macro file or you can simply copy the macros into your code. Note: These will not work on all Arc32 IO pins, that it only those that are marked as standard IO pins in the data sheet.
Note: the two macros I show above require other macros as well. The difference between the two macros for setting a pin high is one makes sure to set the IO pin to be an output pin, where the other one assumes that you already did this.
Good Luck
Kurt