простые и интересные  РАДИОСХЕМЫ сделанные своими руками

» Гость

Мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!



» ДАТАШИТЫ
Например: TDA1562

» СХЕМЫ


Отметить прочитанными   -   Поиск   -   Правила   -   Новые сообщения

Страница 1 из 11
Модератор форума: Электродыч, Витинари, Sam 
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Прошу помощи, подобие стробоскопа
Прошу помощи, подобие стробоскопа
Ср, 02.12.2015, 01:02 | Сообщение # 1        
Fenix
аватар
  Постов: 5  Offline
Всем доброго времени суток! С мк стал знакомится недавно, до этого только собирал и повторял готовое. Суть вот в чем:
МК - Attiny13. К нему подключены три светодиода
Первый - вспыхивает как стробоскоп 1 раз в три секунды. Длительность вспышки 0,2 сек.
Второй - вспышка длительностью 0,2 сек, затем пауза 0,2 сек, затем опять вспышка длительностью 0,2 сек, затем пауза 1,4 сек. То есть цикл за 2 секунды
Третий вспышка длительностью 0,2 сек через каждые 1,8 сек.
Помогите пожалуйста, направьте в нужное русло. Заранее примного благодарен
Ср, 02.12.2015, 09:41 | Сообщение # 2        
Электродыч
аватар
  Постов: 8866  Online Модератор 
Fenix, так вы конкретизируйте-чего нужно то-прошивку написать и схему разработать?Так этим вряд ли кто будет заниматься кроме вас.А если есть готовая схема-другое дело.
Ср, 02.12.2015, 11:47 | Сообщение # 3        
Fenix
аватар
  Постов: 5  Offline
Электродыч, схема простейшая, да и прошивка, думаю не сложная. Просто МК начал изучать совсем недавно, очень нужна помощь

Добавлено (02.12.2015, 11:47)
---------------------------------------------
Просто мигание на 1 светодиод получить удалось, но вот как сделать так как нужно?

#include <avr/io.h>
#include <avr/interrupt.h>

//ISR(TIM0_OVF_vect)
ISR(SIG_OVERFLOW0)
{
PORTB ^= 0x01;
TCNT0 = (256 - 234);
}

int main(void)
{
PORTB = 0b00111111;
DDRB = 0b00000001;

TCCR0A = 0;
TCCR0B = 0b00000101;
TCNT0 = (256 - 234);
TIMSK0 = 0b00000010;
sei();
while (1) {}
}


Отредактировал Fenix - Ср, 02.12.2015, 11:48
Ср, 02.12.2015, 22:59 | Сообщение # 4        
Витинари
аватар
  Постов: 2484  Online Модератор 
Fenix, опишу в общих чертах:
посмотрите на заданные временные промежутки - они все кратны 0.2 с. Настраиваете таймер на прерывание каждые две десятых секунды, заводите отдельные переменные, которые инкрементируются на 1 по прерыванию таймера, и, соответственно, в функции прерывания оставляете только прибавление этих переменных (можно, конечно, сделать и на одной переменной, но это будет несколько сложнее). Не забудьте сделать обнуление, когда каждая переменная достигает определенного значения (например, полный цикл мигания первого светодиода занимает 3 секунды, 3/0.2=15; то есть когда переменная, отвечающая за мигание первого светодиода, станет больше либо равна 14, ей присваивается значение 0, и цикл повторяется снова).
В цикле while добавляете проверку этих переменных на определенные значения (которые равны времени в секундах, деленному на 0.2 - длительность одного прерывания), и когда значение той или иной переменной совпадает со значением в условии, подаете на нужную ногу контроллера 1 или 0.
Чт, 03.12.2015, 02:00 | Сообщение # 5        
Fenix
аватар
  Постов: 5  Offline
Витинари, а вам не сложно сделать это наглядно? просто начал мк изучать недавно, очень трудно пока понимается на словах. Благодарю заранее

Добавлено (03.12.2015, 02:00)
---------------------------------------------
Вопрос закрыт. Всё получилось. Спасибо всем за участие и помощь!!!

Чт, 03.12.2015, 15:21 | Сообщение # 6        
Витинари
аватар
  Постов: 2484  Online Модератор 
Fenix, я под пики программирую, так что саму реализацию процесса описать могу, но непосредственно с вариантами языка C под AVR и с их архитектурой дела пока не имел.
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Прошу помощи, подобие стробоскопа
Страница 1 из 11
Поиск:
Кто есть кто на форуме радиолюбителей: Администратор Модераторы Друзья Пользователи
Группа вконтакте Канал ютуб Группа в фэйсбук Мобильная версия © 2010-2016, "Радиосхемы". Все права защищены. Почта