Вот тут у меня другое мнение... Сколько datasheet'ов на импортные шаговики читал, везде был указан "rated phase current", и никаких намеков, что при half-step его следует делить пополам. Да и "каноничная" SGS-Thomson L297, насколько я помню, всегда стабилизирует в обмотке тот ток, который задан резистором токового датчика и вольтажом Vref, не обращая внимания, запитана при этом другая обмотка, или нет.
При полушаге, когда только он и все, иногда так поступают, но это не совсем честно, ибо в полушаге на мотор в этом случае идет удвоенная мощность, а это значит движок нельзя по полной использовать из-за возможного перегрева и насыщения магнитопровода, но как только надо делать микрошаги по чесному - надо тогда и с токами работать по честному...
по моему автор не делил синус на косинус а поступил проще: Rp holds the transistor JUST off (at 0% current) when the PIC is not sending an output, so any signal from the PIC will proportionately increase the current past the zero point. In this way the PIC sets 4 main currrent levels; * 0% current * 25% current * 55% current * 100% current
Для сглаживания резонансов и такого округления достаточно, а тем более из-за теплового дрейфа напряжения база эмиттер , что даст большой дрейф рабочего тока фазы, такое допущение вполне допустимо. Но если делать по честному, то надо выдерживать соотношение токов в фазах по закону синус/косинус