Этого треда уже нет.
Это копия, сохраненная 31 марта 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
87464568654.jpg123 Кб, 869x434
ATtiny13 и длительность импульса 303270 В конец треда | Веб
Аноны, помогите нубу написать простую прошивочку для определения длительности импульса на attiny13, должны загораться светодиоды в зависимоти от длительности импульса, при коротком гореть один, при длинном другой, при отсутствии третий. Длительность импульсов 1мс-1с
2 303271
Да, код нужен в CodeVisionAVR
3 303280
interrupt [EXT_INT0] void ext_int0_isr(void)
{
if (Signal)
{
TCCR0B = 0x01;
}
else
{
TCCR0B = 0x00;
Value += TCNT0;
TCNT0 = 0x00;
ValueDo = Value / 7.246;
Value = 0;
}
}

И

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
Value += 255;
TCNT0 = 0x00;
}

И

if (F > 0)
{
if (ValueDo > 1000)
{
ValueADCDo = ValueDo - 1000;
if (ADC + 10 < ValueADCDo)
{
OUT1 = 1; OUT2 = 0;
}
else if (ADC - 10 > ValueADCDo)
{
OUT1 = 0; OUT2 = 1;
}
else
{
OUT1 = 0; OUT2 = 0;
F = 0;
}
}
}

Дальше сам.
3 303280
interrupt [EXT_INT0] void ext_int0_isr(void)
{
if (Signal)
{
TCCR0B = 0x01;
}
else
{
TCCR0B = 0x00;
Value += TCNT0;
TCNT0 = 0x00;
ValueDo = Value / 7.246;
Value = 0;
}
}

И

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
Value += 255;
TCNT0 = 0x00;
}

И

if (F > 0)
{
if (ValueDo > 1000)
{
ValueADCDo = ValueDo - 1000;
if (ADC + 10 < ValueADCDo)
{
OUT1 = 1; OUT2 = 0;
}
else if (ADC - 10 > ValueADCDo)
{
OUT1 = 0; OUT2 = 1;
}
else
{
OUT1 = 0; OUT2 = 0;
F = 0;
}
}
}

Дальше сам.
4 303287
>>280
А можно чуток комментов к коду, я совсем нубас и не пойму как таймер настроить
5 303523
Бамп
6 303542
>>287
Включаешь таймер на максимум, предделитель на 1. Включаешь прерывание сначала по фронту, в самом прерывании сбрасываешь тик таймера в ноль и прерывание по спаду включаешь. Как только возник спад - передаёшь значение переменной + таймера в другую переменную и сбрасываешь таймер и переменную таймера. При переполнении таймера просто добавляешь 255 или 65535 к переменной таймера. В основном коде обрабатываешь полученное значение.
7 303701
>>542
ничего не понятно
8 303745
>>701
Тогда тебе нужны уроки по повторению алгоритма работы сервоконтроллера из обычных сервомашинок. То же самое и я тем кодом как раз и повторят работу сервомашинки.
9 303931
>>745

>алгоритма работы сервоконтроллера из обычных сервомашинок



Эмулятор четырех транзисторов в смысле?
10 303946
>>931
Серва считывает сигнал длительностью от 700 мс до 2300 мс, середина 1500 мс. После подсчета управляет двигателем, скоростью и направлением. Почти твоя задача.
Тред утонул или удален.
Это копия, сохраненная 31 марта 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /ra/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски