0 / 0 / 0
Регистрация: 05.02.2015
Сообщений: 64
|
|
1 | |
Расчет задержки Atmel Studio 6 (C#)08.02.2015, 23:04. Показов 3251. Ответов 2
Метки нет Все метки)
(
Добрый день! В AVR я навичек и код мой возможно у кого вызовет рвоту и понос, но всеже прошу направить меня на путь истинный. Знаю что управление задержками декрементом это не правильно и по колхозному, но пока реализацию задачи вижу только так.
Дино: ATmega8 Н-канальный мосфет и кнопка. Задача: управление задержками между ШИМ 255 и 0 на выходе. Написана функция, в зависимости от переменной RPM изменяются задержки.(расчет есть в экселе могу вложить) Переменные inject_time и delay_time тип integer. Код
void clean_on(int RPM) { if(RPM>0){ inject_time=(((10000-RPM)*0.00019)+1.9)*1000; delay_time=(1/(RPM/60))*1000-(inject_time/1000); } long count_inj = inject_time; long count_del = delay_time; while(count_inj--) { _delay_us(1);//1.5-9.9ms длительность впрыска TCCR2=0x6E; OCR2=0xFF; //PWM 255 } while(count_del--) { _delay_ms(1);//10-100ms между впрысками TCCR2=0x00; OCR2=0x00;//PWM 0 } }
0
|
|
08.02.2015, 23:04 | |
Ответы с готовыми решениями:
2
Почему AVR Studio 4, а не Atmel Studio 6? (МК51) Расчет задержки на Assembler
Atmel studio 6.1 |
0 / 0 / 0
Регистрация: 05.02.2015
Сообщений: 64
|
|
09.02.2015, 00:15 | 2 |
Всем спасибо, разобрался. т.к. в части расчета учавствует число с плавающей точкой, а именно 1/(RPM/60) то это как оказалось надо указывать
Код
(ftoot)1/(RPM/60)
0
|
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
|
|
09.02.2015, 00:49 | 3 |
Наверное, лучше даже не так, а RPM/60.0
(а то вы RPM/60 считаете в целых). Ну и для констант нет необходимости писать преобразование - проще поставить десятичную точку.
0
|
09.02.2015, 00:49 | |
09.02.2015, 00:49 | |
Помогаю со студенческими работами здесь
3
Atmel Studio Atmel studio 6 Atmel Studio 6.0 Atmel Studio Помощь с Atmel Studio 7 Proteus, Atmel Studio Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |