Я совсем новичок в программировании контролеров. Прошу помощи у знающих людей. Нужно сформировать последовательность импульсов длительностью 1мс с периодом 20мс для управления сервоприводом. Вот программа:
CODE
#include <avr/io.h>
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRC = 0xFF;
unsigned char i;
while(1)
{
_delay_ms(1000);
for (i=0;i<255;i++)
{
PORTC = 0b111111;
_delay_ms(1);
PORTC = 0b000000;
_delay_ms(19);
}
}
}
но почему с помощью задержек длительность импульса получается всегда больше?(по данному коду получается 5мс, даже если поставить ее 1мкс получаем 2мс). Подскажите в чем ошибка? Или подскажите (с примером кода) как можно по другому решить данную задачу. Спасибо