[r9]: / trunk / GPIOMods / SoftPWM / svnobj  Maximize  Restore  History

Download this file

6 lines (6 with data), 4.5 kB

Gx_l°!0…jüoÿ‰&‰MÁ\½System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextj(* If current task is not, yet, determined, get it *)TIF hTask = SysTask.RTS_INVALID_HANDLE THENN	SysTask.SysTaskGetCurrent(ADR(hTask));END_IF\(* if task is determined, adjust next cycle *)VIF hTask <> SysTask.RTS_INVALID_HANDLE THEN	IF xPWM THEN®		ulInterval := LREAL_TO_DWORD((LREAL#1000000 / DWORD_TO_LREAL(dwFrequ)) * rDutyCycle);
	ELSEÆ		ulInterval := LREAL_TO_DWORD((LREAL#1000000 / DWORD_TO_LREAL(dwFrequ)) * (LREAL#1 - rDutyCycle));	END_IF	ª	(* if we are near the boundary values, we snap the output either to TRUE or FALSE *)D	IF ulInterval < cMinInterval THENz		SysTask.SysTaskSetInterval(hTask, DWORD#1000000 / dwFrequ); 	ELSE		!`		SysTask.SysTaskSetInterval(hTask, ulInterval);"&		xPWM := NOT xPWM;#Interface$L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}%l/// This FB can be used to implement a Soft PWM, based&N/// on the scheduler of a Linux system.'///(l/// Note, that this function block should be used in a)n/// a high priority task. The interval of the task will*,/// constantly change.+,FUNCTION_BLOCK SoftPWM,VAR_INPUT-"	dwFrequ : DWORD;.&	rDutyCycle : REAL;/END_VAR0VAR_OUTPUT1	xPWM : BOOL;2VAR3|	hTask : SysTask.RTS_IEC_HANDLE := SysTask.RTS_INVALID_HANDLE;4&	ulInterval: DWORD;5VAR CONSTANT68	cMinInterval: DWORD := 100;7"UniqueIdGenerator8539POULevel:L{8e575c5b-1d37-49c6-941b-5c0ec7874787};Standard< ChildObjectGuids=8System.Collections.ArrayList>,AddAttributeSubsequent?boolÐÐ-ÐÐ	E
ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ ÚÐ-ÐÐ
­!ÚÐ-ÐÐ
­"ÚÐ-ÐÐ
­+ÚÐ-ÐÐ
­,ÚÐ-ÐÐ
­-ÚÐ-ÐÐ
­5ÚÐ-ÐÐ
­1ÚÐ- ÐÐ
­ÚÐ-!ÐÐ
­*ÚÐ-"ÐÐ
­3ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­	ÚÐ-Ð#$Ð	E
ÐÐ
­#ÚÐ-%ÐÐ
­$ÚÐ-&ÐÐ
­%ÚÐ-'ÐÐ
­&ÚÐ-(ÐÐ
­'ÚÐ-)ÐÐ
­)ÚÐ-*ÐÐ
­ÚÐ-+ÐÐ
­ÚÐ-,ÐÐ
­
ÚÐ--ÐÐ
­ÚÐ-.ÐÐ
­ÚÐ-/ÐÐ
­ÚÐ-0ÐÐ
­ÚÐ-1ÐÐ
­ÚÐ-/ÐÐ
­ÚÐ-2ÐÐ
­ÚÐ-3ÐÐ
­ÚÐ-4ÐÐ
­ÚÐ-/ÐÐ
­.ÚÐ-5ÐÐ
­/ÚÐ-6ÐÐ
­0ÚÐ-/ÐÐ
­ÚÐ-Ð7-8Ð9:-;<=Ð>?­