Описание: Помогите составить функцию |
Поиск в теме | Версия для печати |
anar |
Отправлено: 12 Августа, 2012 - 20:19:02
|
Главнокомандующий
Сообщений всего: 441
Дата рег-ции: Июнь 2011
|
Artem пишет:anar, можно ещё вопрос по поводу вашего кода: я залил его в мк, но я не совсем понимаю что он должен делать, я подключил к выходу B1 светодиод, я так понимаю B1 это физический выход таймера, подключил кнопку к C1 но ничего не происходит.
Не могли бо вы по подробнее рассказать о том как функционирует код.
Все очень просто.Таймер 1 в режиме counter(счетчика), то есть он считает импульсы приходящие на вход T1, когда значение счетчика достигнет 1, то есть он посчитает 2 импульса, логический уровень на выхоте OC1A изменится на противоположный.Соберите все по схеме, что я привел внизу.Возможно у вас возникнут проблемы с дребезгом, тогда значение compar1a придется увеличить.Этот код я привел, чтобы вы лучше поняли работу таймера.
CODE:$regfile = "m8def.dat"
$crystal = 1000000
Config Portb.1 = Output
Config PINC.1 = Input
Config Timer1 = Counter , Edge = Rising , Prescale = 8 , Compare A = Toggle , Clear Timer = 1
Do
Compare1a = 1
Loop
(Отредактировано автором: 17 Августа, 2012 - 12:47:33) |
|
|
Artem |
Отправлено: 15 Августа, 2012 - 18:20:06
|
Главнокомандующий
Сообщений всего: 347
Дата рег-ции: Май 2012
|
Да у меня всё получилось, но не сразу. С начала я пренебрёг дребезгом контактов и не поставил резистор, в сочетании с микропереключателем с лапкой это дало не понятный эффект: программа вроде бы работала, но светодиод постоянно мерцал, и срабатывания были не уверенными, затем я попытался изменить значение Comparea1 в большую сторону тогда задержкки между миганием светодиода становились больше, а кнопка почти не влияла на работу, затем я поставил значение 0.5, компилятор не выдал ошибки и я загрузил код, светодиод перестал светиться, но и всё программа перестала работать.
Затем я всё таки поставил резистор, предохраняющий от дребезга, дела пошли лучше, хаотичное мерцание и ложные срабатывания прекратились, однако всё равно в некоторые моменты срабатывание не происходит, но это как я понимаю из-за самого переключателя, надо будет поставить простую кнопку.
Сейчас попробую увеличить значение Comparea1 посмотрим что будет.
И огромное вам спасибо |
|
|
Artem |
Отправлено: 16 Августа, 2012 - 09:51:45
|
Главнокомандующий
Сообщений всего: 347
Дата рег-ции: Май 2012
|
Всё понятно, кода, я только начанал работать с электроникой, в одной из книг был описан транзисторный ключ, я никак не мог его собрать, провёл кучу экспериментов, и затем мне удалось, но я всё же не понимал зачем подтягивать базу к земле, теперь всё ясно, спасибо. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (3): « 1 [2] 3 » |
« Делимся опытом » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|