пятница, 9 мая 2014 г.

3ф синусоидальный ШИМ. (Организации временных задержек для шагания по таблице синуса )

Идея простая шагать по таблице и из неё вынимать значения для синусоидальной шим.
Можно также очень просто реализовывать задержки инкрементирования переменной i, не делеями, а по другому.

while(1)
{
i++;
delayus(20)
}

для того чтобы задрежать
можно сдеать так:

uint32 a = 0;
uint32 i = 0;
uint32 delay_inc = 1;
while(1)
{
if (i%delay_inc == 0) a++;
i++;
}
Если i++ тикает в прерывании с частотой 100 раз в секунду, то при помощи delay_inc мы можем выставлять делитель для переменной a, если delay_inc=1 то переменная а тикает с такой же частотой как и i.
Если delay_inc=20, то переменная а тикает с частотой 100/20=5 раз в секунду и т.д 

Комментариев нет:

Отправить комментарий