реклама на сайте
подробности

 
 
8 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> жутко глючит мк, помогите пожалуйста
Omen_13
сообщение Apr 20 2008, 21:27
Сообщение #46


Силовик-затейник
****

Группа: Модераторы
Сообщений: 766
Регистрация: 18-02-07
Из: Столица солнечного Башкортостана
Пользователь №: 25 467



Цитата(_Ivan_33 @ Apr 20 2008, 23:50) *
а то есть мне можно получается и менять яркость лампочки ШИМ и делать плавное загорание и погасание?

Всё будет! НО:
1. Набраться терпения и не торопиться
2. Соблюдать акуратность - перепаивать по нескольку раз из-за простой невнимательности радости мало + в магазин за деталями бегать
3. Внимательно слушать и задавать вопросы - обратная связь приветствуется
4. Читать умные и хорошие книги
5. Выкладывать схемы, фото и т.п. в формате jpg и т.п. - bmp очень неудачный выбор
6. Давай договоримся что с 220В будем работать очень акуратно и пока начнем с более безопасного напряжения (одного заземлят а другого посадят) и нам понадобится понижающий трансформатор на 12В и лампочка 12В для карманного фонаря.

Сначала схема, потом выложу алгоритмы. Заранее предупреждаю что буду оставлять место для твоего творчества в небольшом пространстве - хуже от этого не будет.
Я не специалист по AVR и C - потребуется помощь со стороны (ну и своей головой думать очень полезно).
Прикрепленное изображение

1. Для начала дорисуй недостающие фрагменты схемы (блок питания и обвязку МК), хотя-бы для себя.
2. Посмотри описание на оптосимистор http://www.fairchildsemi.com/ds/MO/MOC3021-M.pdf и оптопару http://www.fairchildsemi.com/ds/H1/H11L1-M.pdf для общего развития
3. На схеме есть одна специальная ошибка, постарайся её найти (ищи вокруг VU1)
Элементы на схеме:
VU1 - H11L1
VU2 - MOC3021
VD1 - любой диод на ток до 100мА, например КД522
Резисторы могут быть импортными, главное мощность (можно ставить более мощный но не наоборот) и сопротивление (по возможности указанное, если таких нет +-10% от указанного номинала).
Конденсатор С1 электролит на 6.3В любой импортный, С2 и С3 любые керамические
DD1 твой микропроцессор, Int - вход прерывания Out - выход включения лампы (+5 и общий не показаны - нарисуешь сам)

И самое главное - от ресурса А*В*Р*один*два*три шарахаться как от огня. Это не шутка


--------------------
"Вперёд на мины, ордена потом!"
"инжинер/разработчик создает нечто, в отличии от многих других профессий. В этом есть сходность с художниками или музыкантами"(с)CodeWarrior1241
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 21 2008, 02:00
Сообщение #47


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Почти согласен.
А для начала реши простую задачку без зажигания лампочек:
выведи на один из выходов сигнал на входе,
т.е. задача посмотреть момент перехода через 0 входной
синусоиды.
INTn пусть работает по любому изменению сигнала.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 04:17
Сообщение #48


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



йа блондинко

только сегодня заметил что когда я вчера подключал лампочку 12 вольт накаливания - она была подключена постоянным током о_О ... а я вот думаю почему она не работает...

есть у меня какой-то транс от блока питания принтера - вот приду после двух посмотрю...

и почемувывод на кренке 5 вольт он 4-ий?
и почему не подключена земля к мк?


--------------------
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 13:49
Сообщение #49


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



if (PINA.1==0){
if (PINA.1==1){
PORTB=4;};};
[else {if (PINA.1==0){if (PINA.1==1){
PORTB=4;};];


чета типа того но почему ругается компилятор?
ЗЫ: это алгоритм перехода через 0


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 21 2008, 14:18
Сообщение #50


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Нет. Переход лучше ловить используя внешние прерывания,
например INT0, настроенный в MCUCR на срабатывание по изменению сигнала, т.е.
прерывания возникнут как по переднему так и по заднему фронту INT0.
А пока прерывания нет - хочешь спи или что-то делай.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 14:20
Сообщение #51


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



где почитать про прерывания чтоб было хорошо написано - понятно и просто!?


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 21 2008, 14:38
Сообщение #52


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Евстифеев
http://lord-n.narod.ru/walla.html
там много книг по АВР.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 21 2008, 14:43
Сообщение #53


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(_Ivan_33 @ Apr 21 2008, 22:20) *
где почитать про прерывания чтоб было хорошо написано - понятно и просто!?


Вообще все очень подробно написано в книге Фрунзе "Микроконтроллеры - это же просто", правда для 51 семейства - но основной сути это не меняет.

А если на пальцах... В общем выполняет у Вас контроллер какую-то там задачу, например, что-то там считает. И в то же время, Вам надо как-то среагировать на изменение, например, уровня сигнала на ножке контроллера. Можно в ту, первую, задачу вставить периодическую проверку уровня на ножке - для быстрой реакции Вам придется вставлять эту проверку, например, после каждого оператора основной задачи. Согласитесь, это не удобно.
Вот как раз для таких случаев существуют прерывания. В случае изменения уровня на ножке INT0 контроллер автоматически прерывает выполнение основной программы и перепрыгивает на жестко заданый адрес. По этому адресу у Вас должен находиться код для обработки данного события.
В общем прерывания позволяют контроллеру заниматься какими-то другими делами, помимо выполнения основной программы

Сообщение отредактировал tazik - Apr 21 2008, 14:45
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 15:10
Сообщение #54


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



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

Сообщение отредактировал _Ivan_33 - Apr 21 2008, 15:11


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 21 2008, 15:26
Сообщение #55


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(_Ivan_33 @ Apr 21 2008, 23:10) *
но ведь изменение логического уровня на ноге мк может произойти в разный момент а тут изменение уровня будет много раз...
и чем же их использование в моем случае так важно?

Не совсем понял вопрос... Можно как-то более четко задавать вопросы - типа как для тазика?

В Вашем случае изменения уровня на ноге будет происходить не в "разный момент" - а конкретно при пересечении нуля.

Да в принципе, можно и без прерываний обойтись. Но с ними проще и удобней.

1) Прерывание INT0 - включаете гирлянду, запускаете таймер Т0
2) Прерывание от T0 - выключаете гирлянду

- вот и вся программа - в общих чертах
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 15:31
Сообщение #56


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



кароче все понятно - при пересечении нуля по прерыванию включать и выключать порт
буду осваивать - а с прерываниями не работал раньше

Сообщение отредактировал _Ivan_33 - Apr 21 2008, 15:31


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 21 2008, 15:50
Сообщение #57


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(_Ivan_33 @ Apr 21 2008, 23:31) *
буду осваивать - а с прерываниями не работал раньше

Да ладно, никто же не настаивает

Цитата(tazik @ Apr 21 2008, 23:26) *
1) Прерывание INT0 - включаете гирлянду, запускаете таймер Т0
2) Прерывание от T0 - выключаете гирлянду


Пардон, у Вас на выходе тиристор? Тогда я Вам наврал ( Правильно как предлагает domowoj
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 16:11
Сообщение #58


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



симистор


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 21 2008, 16:50
Сообщение #59


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Еще раз повторюсь
реши простую задачку без зажигания лампочек:
выведи на один из выходов сигнал на входе,
т.е. задача посмотреть момент перехода через 0 входной
синусоиды.
INT0 пусть работает по любому изменению сигнала.
Осциллограф есть?


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 21 2008, 16:53
Сообщение #60


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



нету, вот эту штуку сделаю его и куплю...


--------------------
Go to the top of the page
 
+Quote Post

8 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 07:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01533 секунд с 7
ELECTRONIX ©2004-2016