Diff of /trunk/Monarco/Monarco_FB/private/Pwm/setPWM2freq/svnobj [000000] .. [r78]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/trunk/Monarco/Monarco_FB/private/Pwm/setPWM2freq/svnobj
@@ -0,0 +1,78 @@
+Gx_l! !0…jüoøX-_vAÖnM¸System.StringL{f8a58466-d7f6-439f-bbb8-d4600e41d099}ImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocumentL{f3878285-8e4f-490b-bb1b-9acbb7eb04db}TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}	Id
+longTagText
^/// clip the input Hz on lower and upper bound;H_uidiHz := LIMIT( 1, udiHz, 100000);f//// Determine prescaler and TOP according to tableCASE _uidiHz OFd	1..9			: ePrescale 	:= ePrescaler.ScaleFactor512;ª					  uiTOP			:= TO_UINT( (32000000/ 512/ _uidiHz));// interpolate between 1 and 9Hz	f	10..99			: ePrescale 	:= ePrescaler.ScaleFactor64;°					  uiTOP			:= TO_UINT( (32000000/ 64/ _uidiHz)); // interpolate between 10 and 100Hzf	100..999		: ePrescale 	:= ePrescaler.ScaleFactor8;°					  uiTOP			:= TO_UINT( (32000000/ 8/ _uidiHz));// interpolate between 100 and 1000Hz		l	1000..100000	: ePrescale 	:= ePrescaler.ScaleFactor1;¶					  uiTOP			:= TO_UINT( (32000000/ 1/ _uidiHz));// interpolate between 1000 and 100000HzEND_CASE*/// Now set prescaler4/// bit 15 ..  2 : TOP / 4$CASE ePrescale OF  8///  00  0 : prescaler =   1!X	ePrescaler.ScaleFactor1	: 	fPWM.0 := FALSE;"0								fPWM.1 := FALSE;#8///  01  1 : prescaler =   8$X	ePrescaler.ScaleFactor8 :  	fPWM.0 := TRUE;%:///  10  2 : prescaler =  64	&Z	ePrescaler.ScaleFactor64 :  fPWM.0 := FALSE;'.								fPWM.1 := TRUE;(:///  11  3 : prescaler = 512	)X	ePrescaler.ScaleFactor512 : fPWM.0 := TRUE;*<//   8.0   2.0  PWM1 frequency+`THIS^._abyIntTxBuf[16] 			:= WORD_TO_BYTE(fPWM);,nTHIS^._abyIntTxBuf[17] 			:= WORD_TO_BYTE(SHR(fPWM,8));-Interface.L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}////0Æ///	Just set a frequency between 1 and 100 kHz and the PWM will be set according to below settings;1R///  f_PWM = 32 MHz / ( prescaler × TOP )2š/// Where **prescaler can be (1, 8, 64, 512)** and **TOP can be 0 to 65532**.3ž/// TOP is represented by 14bit value in process data and then multiplied by 4.4Ì/// Modulated value is represented by 16 bits in process data and internally scaled to 0 to TOP range.5”/// The lowest possible prescaler should be preferred for given frequency.6Ä/// Because this leads to a bigger value of TOP and so a better resolution of the modulated value.7¦///	==========  ================================  =================================8¢/// Prescaler   Recommended range low boundary    Recommended range high boundary9„///	1  		    e" 1 kHz TOP = 32000               d" 100 kHz TOP = 320:ˆ///	8           e" 100 Hz TOP = 40000              < 1 kHz TOP = 4000;Š///	64          e" 10 Hz TOP = 50000               < 100 Hz TOP = 5000<ˆ///	512         e" 1 Hz TOP = 62500                < 10 Hz TOP = 6250=/// Example:>H///  f_PWM = 10Hz => 16#C352 = 50002?€///   prescaler = 64, TOP = 50000 => 10 = 32x10^6 / (64 x 50000)@VMETHOD setPWM2freq : MNR.eMonarcoComStatus;AVAR_INPUTB²	/// base frequency of the PWM, anywhere from 1Hz to 100kHz (10 Hz = 10, 100kHz = 100000)C®	/// A setting higher then 100kHz and lower then 1Hz will be limited to 100kHz and 1Hz.D&	udiHz			: UDINT;		EEND_VARFVARG&	_uidiHz			: UDINT;H€	ePrescale		: MNR.ePrescaler; 	/// Determined prefered prescalerI(	uiRangeLow		: UINT;J*	uiRangeHigh		: UINT;KZ	uiTOP			: UINT;			/// Determined TOP settingL$	fPWM			: WORD;			ÐÐÐE&ÐÐ	
+­åÚÐ-
ÐÐ	
+­ÚÐ-ÐÐ	
+­æÚÐ-ÐÐ	
+­7ÚÐ-ÐÐ	
+­8ÚÐ-ÐÐ	
+­9ÚÐ-ÐÐ	
+­:ÚÐ-ÐÐ	
+­;ÚÐ-ÐÐ	
+­<ÚÐ-ÐÐ	
+­=ÚÐ-ÐÐ	
+­>ÚÐ-ÐÐ	
+­?ÚÐ-ÐÐ	
+­@ÚÐ-ÐÐ	
+­AÚÐ-ÐÐ	
+­BÚÐ-ÐÐ	
+­CÚÐ-ÐÐ	
+­÷ÚÐ-ÐÐ	
+­ÚÐ-ÐÐ	
+­kÚÐ-ÐÐ	
+­ÀÚÐ-ÐÐ	
+­mÚÐ-ÐÐ	
+­ÌÚÐ- ÐÐ	
+­nÚÐ-!ÐÐ	
+­ÇÚÐ-"ÐÐ	
+­ËÚÐ-#ÐÐ	
+­pÚÐ-$ÐÐ	
+­ÈÚÐ-"ÐÐ	
+­sÚÐ-%ÐÐ	
+­tÚÐ-&ÐÐ	
+­ÉÚÐ-'ÐÐ	
+­uÚÐ-(ÐÐ	
+­vÚÐ-)ÐÐ	
+­ÊÚÐ-'ÐÐ	
+­oÚÐ-ÐÐ	
+­¸ÚÐ-ÐÐ	
+­·ÚÐ-*ÐÐ	
+­ÚÐ-+ÐÐ	
+­ÚÐ-,Ð-.ÐE&ÐÐ	
+­ÚÐ-/ÐÐ	
+­ÚÐ-0ÐÐ	
+­ÚÐ-/ÐÐ	
+­ÚÐ-1ÐÐ	
+­ÚÐ-/ÐÐ	
+­ÚÐ-2ÐÐ	
+­ÚÐ-3ÐÐ	
+­ÚÐ-4ÐÐ	
+­ÚÐ-5ÐÐ	
+­ÚÐ-6ÐÐ	
+­ÚÐ-/ÐÐ	
+­ÚÐ-7ÐÐ	
+­ÚÐ-8ÐÐ	
+­ÚÐ-7ÐÐ	
+­ ÚÐ-9ÐÐ	
+­!ÚÐ-:ÐÐ	
+­"ÚÐ-;ÐÐ	
+­#ÚÐ-<ÐÐ	
+­$ÚÐ-7ÐÐ	
+­%ÚÐ-/ÐÐ	
+­&ÚÐ-=ÐÐ	
+­'ÚÐ->ÐÐ	
+­(ÚÐ-?ÐÐ	
+­)ÚÐ-/ÐÐ	
+­*ÚÐ-@ÐÐ	
+­+ÚÐ-AÐÐ	
+­,ÚÐ-BÐÐ	
+­-ÚÐ-CÐÐ	
+­.ÚÐ-DÐÐ	
+­/ÚÐ-EÐÐ	
+­0ÚÐ-FÐÐ	
+­1ÚÐ-GÐÐ	
+­2ÚÐ-HÐÐ	
+­3ÚÐ-IÐÐ	
+­4ÚÐ-JÐÐ	
+­5ÚÐ-KÐÐ	
+­6ÚÐ-LÐÐ	
+­¾ÚÐ-E
\ No newline at end of file