0 / 0 / 0
Регистрация: 05.02.2015
Сообщений: 64
1

Расчет задержки Atmel Studio 6 (C#)

08.02.2015, 23:04. Показов 2964. Ответов 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
}
}
Если задать в ручную значения переменных inject_time и delay_time то все нормально работает,а если пустить в расчет то один раз сработает и зависает, мне кажется что гдето я не учел особенность математических рассчетов в C#. Есть проект протеуса и могу вложить проект атмел студио. Направьте меня на путь истинный. Буду крайне благодарен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2015, 23:04
Ответы с готовыми решениями:

Почему AVR Studio 4, а не Atmel Studio 6?
По какой причине большинство специалистов по AVR микроконтроллерам в основном используют AVR Studyo...

(МК51) Расчет задержки на Assembler
В вложении программа управлении светодиодами на макете, и там мы выставляем задержку между...

Расчет общего времени задержки в блоке Service
Добрый вечер всем! В курсовом проекте требуется найти кпд рабочих. Для решения этой задачи мне...

Atmel Studio 6.0
Здравствуйте! Подскажите пожалуйста , не пойму почему при запуске программы компилятор выдает : ...

2
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2015, 00:49

Atmel studio 6
Вопрос таков, есть некая библиотека, в lcd_lib.h прототипы, в lcd_lib.c сами функции, оба файла...

Atmel Studio
Подскажите где смотреть библиотеку Atmel Studio.

Atmel Studio
помогите написать программу работы светофора на языке Assembler

Atmel studio 6.1
Здравствуйте. столкнулся с проблемой запуска программы. вылетает сообщение:debugging tool is not...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.