Страница 1 из 1

помогите с задержкой

Добавлено: Вс мар 20, 2011 17:04:53
viktor110668
скажите как можно заменить в переменной задержки с миллисекунд на секунды

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 17:43:24
dimm1985
создать библиотеку delay_s.h, сохранить в C:\cvavr\inc

delay_s.h
Код:

#ifndef DELAY_S_H
#define DELAY_S_H

#include <util/delay.h>

static inline void delay_s(float s)
{
uint16_t i = s * 100;
if(i) do _delay_ms(10); while(--i);
}
#endif

потом в программе

#include "delay_s.h"

void main(void)
{
delay_s(3.5); // 3,5 sek
delay_s(5); //5 sek
}

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 17:45:20
ChipKiller
как можно заменить в переменной задержки с миллисекунд на секунды
1 сек = 1000 мсек .... :) только зачем так издеваться над МК

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 17:48:38
viktor110668
в блокноте могу сделать ?


у меня в проекте есть две кнопочки + и - вот чтобы не гнать с 5000 по одной единице
устанешь кнопкой щелкать в итоге сломаешь кнопку

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 18:24:13
viktor110668
всем спасибо я разобрался
как сделать очень просто без включения файлов

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 18:38:03
ksv82
Я б на вашем месте все таки про таймеры подумал... а то пока кода да функций в проге мало такие задержки еще прокатывают, а вот когда функционала станет побольше, такие извращения будут оочень сильно мешаться.

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 18:51:30
viktor110668
код буден увеличен на 5 строк если будет задача сделать расширенный код тогда придется
ломать голову над таймерами

Re: помогите с задержкой

Добавлено: Вс мар 20, 2011 19:24:10
dimm1985
в блокноте и надо, только сохранить не как .txt а .h

И как в итоге победил? Поделись, сам иногда с секундами и минутами дело имею.

Re: помогите с задержкой

Добавлено: Пн мар 21, 2011 05:28:13
viktor110668
а очень просто
if (PINB.0==0) { //
delay_ms(50); //
PINC.0=1 ;
delay_ms(tmp*10);// вот тут переменную умножил на 10 и все
PINC.0=0;
while(PINB.2==0) {}; //
delay_ms(5); //