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

Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:03:23
Jman
Доброго времени суток. Задача такова - при включении питания происходит отчет времени допустим 1 минута, после чего на порт МК выдается импульс на секунд 10. На порте транзисторный ключь и реле. Знаю что просто реализовать, но с кодом проблема. Прошу помочь форумчан с написанием кода. Спасибо.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:09:17
pyzhman

Код: Выделить всё

delay_ms(60000);
PORTX.x= 1;
delay_ms(10000);
PORTX.x= 0;

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:15:14
Jman
Спасибо за оперативность. Это в цикле будет вертеться - правильно я понял? А событие должно выполняться один раз. Подали питание на схему, посчитал 1 минуту, дал импульс и стоп все операции, пока снова не выключить - включить питание.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:25:58
ploop
Тогда не в цикле. Просто в конец бесконечный цикл-затычку и всё.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:27:07
Flasher
...
for(;;);

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:27:56
Jman
ploop писал(а):Тогда не в цикле. Просто в конец бесконечный цикл-затычку и всё.
Я прошу меня простить, в С я полный чайник и радиолюбитель из кружка, что такое затычка и с чем ее едят?. Понимаю что какая-то скобка, но какая? =)

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:30:17
Jman
Flasher писал(а):...
for(;;);
Это вместо while?

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:33:43
ploop
Угу. Можно и while (true) засунуть.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:53:10
Jman
Распишите пожалуйста на базе кода, который дал pyzhman. Как оно все визуально выглядит?

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:54:19
pyzhman
В CVAVR можно и без затычки, компилятор сам ее вставит.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 09:57:20
Jman
Распишите пожалуйста на базе кода, который дал pyzhman. Как оно все визуально выглядит?

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 10:23:20
Jman
Скажите еще - с задержками, что в посте выше, какая частота тактирования?

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 10:42:18
ploop
Неважно, delay_ms пересчитывает задержку относительно частоты, заданной в проекте. Правильно задашь - будет правильная задержка.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 10:43:02
pyzhman
Да один в один все и выглядит. А частоту задай в свойствах проекта; компилятор все сам посчитает.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 10:48:54
Jman
Ок. Спасибо всем большое! Как освобожусь - попробую компильнуть, спаяю. Отпишусь. Хорошо что есть такой форум, где не остаются равнодушными к чужим проблемам.!

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 15:23:13
Jman
Получится ли вот так это реализовать?

int flag = 1;

while (flag) {
delay_ms(60000);
PORTX.x= 1;
delay_ms(10000);
PORTX.x= 0;// Place your code here
flag = 0;

}

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 17:14:41
Jman
Chip type : AT90S2323
AVR Core Clock frequency: 4,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/

#include <90s2323.h>
#include <delay.h>

void main(void)
{
PORTB=0x00;
DDRB=0x01;


for (;;)
{
delay_ms(6000);
PORTB.0= 1;
delay_ms(1000);
PORTB.0= 0;

}
}


Реле постоянно щелкает согласно задержкам =( Что-то наверное не то делаю.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 17:26:51
ploop
Что-то наверное не то делаю.
Угу. Все задержки выполняются внутри цикла. А надо - перед циклом.

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 17:34:34
pyzhman

Код: Выделить всё

Chip type : AT90S2323
AVR Core Clock frequency: 4,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/

#include <90s2323.h>
#include <delay.h>

void main(void)
{
PORTB=0x00;
DDRB=0x01;

delay_ms(6000);
PORTB.0= 1;
delay_ms(1000);
PORTB.0= 0;
}

Re: Помогите с созданием таймера включения

Добавлено: Вт мар 06, 2012 17:39:36
Jman
#include <90s2323.h>
#include <delay.h>

void main(void)
{
PORTB=0x00;
DDRB=0x01;

delay_ms(6000);
PORTB.0= 1;
delay_ms(1000);
PORTB.0= 0;


}

while (1) {
};


Вот так что-ли?