Krik99

Нужен Исходник Простого Охранного Устройства На Avr...

13 сообщений в этой теме

Krik99    0

Кто может дать исходник на Си простого охранного устройства на два датчика? При срабатывания 1-го датчика охранное устройство должно сработать сразу и включить сирену, а при срабатывание 2-го датчика охранное устройство дложно ждать 30 сек. и если в течении 30 сек. не будет нажата кнопка то охранное устройство должно сработать и включить серену... Я думаю что исходник будет очень простой. :rolleyes: За ранние благодарен!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex K    4

Архитектура микроконтроллера то хоть какая? Могли бы схемку сперва набросать, чтоли...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

Вот приблизительно такая схема...

post-13943-1183629376_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

Ну хотябы чо за чем должно выполнятся в программе? Чё не кто не знает как написать на Си? <_<

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

Krik99    0

Ну вот я нарисовал структуру программы для вот такой схемы. Проверте на правельность, и укажите на ошибки. Если всё правельно я попробую написать программу на Си...

post-13943-1183705424_thumb.jpg

post-13943-1183705511_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95
При срабатывания 1-го датчика охранное устройство должно сработать сразу и включить сирену....

Номера датчиков вроде как перепутаны...Кроме того, нет проверки

...и если в течении 30 сек. не будет нажата кнопка то охранное устройство должно сработать и включить серену...
Изменено пользователем Goodefine

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0
Номера датчиков вроде как перепутаны...Кроме того, нет проверки

Насчёт датчиков то нечего страшного. А вот про то что у меня нет проверки по подробние...

да как написать первую паузу? <_<

Изменено пользователем Krik99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95

Как я понял, сигнализация одного из датчиков должна быть отключаемой (в течение 30с) другой кнопкой. Кроме того, в режиме паузы необходимо продолжать мониторинг датчиков, т.к могут сработать оба - чтобы обеспечить мгновенное срабатывание сигнализации от 2-го датчика, если уже сработал 1-й. Примерный алгоримт:

1.Инициализация МК (конфигурация портов, установка тактирующей частоты и коэфф. предделителя таймера (30с) с разрешением прерывания от него и запретом счета...)

2.Программа мониторинга датчика и кнопки откл. (проверяет по очереди)

2.1Если датчик1 сработал - тревога

2.2если датч.2 - рарешаем работу таймера и в 2.

2.3 Если кнопка - запрещаем счет таймера и обнуляем его и в 2 (или куда надо).

2.4 Если прерывание от таймера - тревога (+запрет счета, обнуление)

2.5 Если ничего не сработало - в 2.

... И в таком духе...

Надо придумать полный алгоритм работы устройства - что оно, например, должно делать после срабатывания, как ставится в дежурный режим и т.д...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0

Вот я написал вот такую программу пока без кнопки Сброс... Не ругайте сильно я только начал изучать Си...

Вот код:

#include <avr/io.h> // Библиотека ввода-вывода

void pausa(unsigned long a) // Начало функции пауза

{

unsigned long cn;

for(cn=a; cn>0; cn--);

} // Конец функции пауза

void gudok(void) // Начало функции гудок

{

while(1)

{

PORTC &=~_BV(PC3);

pausa (10000);

PORTC |=_BV(PC3);

pausa (10000);

}

} // Конец функции гудок

int main(void) // Начало основной программы

{

PORTB = PORTC = PORTD = 0xFF;

DDRC |= _BV(PC3);

pausa (220000); // Пауза на 30 сек.

while (1) // Бесконечный цикл

{

if (bit_is_clear(PINB,PB2)) // Проверка датчика 1

{

pausa (220000); // Пауза на 30 сек.

gudok (); // Включаем сирену

}

else

{

if (bit_is_clear(PINB,PB3)) // Проверка Датчика 2

{

gudok (); // Включаем сирену

}

}

}

} // Конец основной программы

И раскажите по подробние о том как сделать так чтобы контролёр ждал 30 Сек но в тоже время мог чтото ещё делать , а не стоять и тупо щитать... за ранние благодарен!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Goodefine    95
/...И раскажите по подробние о том как сделать так чтобы контролёр ждал 30 Сек но в тоже время мог чтото ещё делать , а не стоять и тупо щитать...

Для этого паузу нужно организовывать не программно, а аппаратно. В частности для этого существуют встроенные таймеры (какой МК планируется?). Нужно его так сконфигурировать (зависит от конкретного МК), чтобы он переполнялся через нужный промежуток времени, после переполнения возникает прерывание, дальше дело техники...Пока таймер считает, МК может работать...

Прогу не проверял (некогда пока). Если есть симулятор, то проверяй там. Кстати, какой компиллятор и симулятор (ежели есть)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Krik99    0
Для этого паузу нужно организовывать не программно, а аппаратно. В частности для этого существуют встроенные таймеры (какой МК планируется?). Нужно его так сконфигурировать (зависит от конкретного МК), чтобы он переполнялся через нужный промежуток времени, после переполнения возникает прерывание, дальше дело техники...Пока таймер считает, МК может работать...

Прогу не проверял (некогда пока). Если есть симулятор, то проверяй там. Кстати, какой компиллятор и симулятор (ежели есть)?

Программу я проверял всё работает нормально... Нащёт таймера я начал изучать AVR по урокам опубликованым в Радиоаматор за 2005г. а там небыло описания работы с таймером , не могли бы вы показать какой нибуть пример с использованием таймера... Да я пользуюсь компилятором WinAVR. Да и подскажите нормальный учебник по AVR только под компилятор WinAVR. За ранние благодарен!!!

Изменено пользователем Krik99

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MaStak    2
и подскажите нормальный учебник по AVR

В.Н. БАРАНОВ "ПРИМЕНЕНИЕ микроконтроллеров AVR: схемы, алгоритмы, программы"

На 12 странице проект "Контроллер сигнализации" написано на ASMе, описываеться работа в AVR Studio.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас