Сделал через таймер. Вроде правильно)
Протеус показывает нормальную частоту.
Но на выходе все так же 3 с чемто.
- Код: Выделить всё • Развернуть
void wait(void){
TCNT1=0;
while(TCNT1<120){};
}
...
TCCR1A=0x00;
TCCR1B=0x01;
...
while (1)
{
PORTD.5 = 1;
wait();
PORTD.5 = 0;
wait();
if(PIND.6 == 0)
{
walk(1);
}
};
Добавлено спустя 3 минуты 14 секунд:Ну мне нужна частота 30 000 герц.
Это 30 000 за 1 секунду или 30 за 1 миллисекунду.
1 миллисекунда равна 1000 микросекунд.
1000/30 = 32 (примерно)
Добавлено спустя 1 час 25 минут 26 секунд:Интересная вещь.
Если в протеусе не указывать частоту кварца, то на выходе частота будет как раз 3.4-3.8
Я в коде указал частоту
- Код: Выделить всё • Развернуть
#define F_CPU 8000000
Это верно? Может что-то еще нужно?