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

 
 
8 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> жутко глючит мк, помогите пожалуйста
_Ivan_33
сообщение Apr 20 2008, 11:10
Сообщение #1


fpga designer
****

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



Здравствуйте уважаемые разработчики!!!
помогите пожалуста начинающему
делаю бегущие огни
прошивку почти написал
но проблема в том, что когда я ставлю delay_ms(...) то время указанное в скобках будет не такое, а будет хаотично (при подключенной переменке) и все будет норм если просто подключен светодиод
мк - attiny2313
частота внутренняя 1 МГц
суть устройства: мк управляет с помощью симисторов цепями лампочек которые мигают, медленно включаются и выключаются в определенной последовательности
схема питания - блок питания на выходе 10 вольт - конденсатор 470 мкф 25 вольт на землю - кренка - кондер 22 мкф на 63 вольта на землю - кондер 0,1 мкф на землю - сам мк
схема управления - нога мк - резистор 330 ом - оптопара moc3021 - симистор - с одной стороны цепь лампочек с другой вывод переменки и на лампочке еще 1 вывод переменки
схема обнаружения 0 на переменке (ну чтоб определить момент когда мгновенное напряжение в переменке равна 0) - фаза переменки - резистор 560 ком - диод 1n4107 - нога мк...

помогите пожалуйста!!!! я уже с этим около месяца копошусь!!!

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


--------------------
Go to the top of the page
 
+Quote Post
sKWO
сообщение Apr 20 2008, 11:20
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(_Ivan_33 @ Apr 20 2008, 14:10) *
но проблема в том, что когда я ставлю delay_ms(...) то время указанное в скобках будет не такое, а будет хаотично (при подключенной переменке) и все будет норм если просто подключен светодиод

А можно код увидеть? И как Вы используете пересечение нуля?
Может от него и надо плясать?
И почему собственно глюки МК?


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 11:26
Сообщение #3


fpga designer
****

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



.....
с помощью этого кода я хочу узнать как плавно лампочку загорать

Moderator:
Воспользуйтесь форматированием кода.

Сообщение отредактировал zltigo - Apr 20 2008, 11:34


--------------------
Go to the top of the page
 
+Quote Post
sKWO
сообщение Apr 20 2008, 11:36
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(_Ivan_33 @ Apr 20 2008, 14:26) *
#include <tiny2313.h>
#include <delay.h>
void main(void) {DDRB=4;
DDRA.1=0;
while(1) {
PORTB=4;
delay_ms(3000);
if (PINA.1==0x00)
{PORTB=0;};
с помощью этого кода я хочу узнать как плавно лампочку загорать

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


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 11:37
Сообщение #5


fpga designer
****

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



Код
#include <tiny2313.h>
#include <delay.h>
void main(void) {DDRB=4;
DDRA.1=0;
while(1) {
PORTB=4;
delay_ms(3000);
if (PINA.1==0x00)
{PORTB=0;};
delay_ms(20);
if (PINA.1==0x00)
{PORTB=4;};
delay_ms(250);
if (PINA.1==0x00)
{PORTB=0;};
delay_ms(20);
if (PINA.1==0x00)
{PORTB=4;};
delay_ms(350);
if (PINA.1==0x00)
{PORTB=0;};
delay_ms(30);
if (PINA.1==0x00)
{PORTB=4;}
delay_ms(450);
if (PINA.1==0x00)
{PORTB=0;}
delay_ms(20);
if (PINA.1==0x00)
{PORTB=4;};
delay_ms(550);
if (PINA.1==0x00)
{PORTB=0;};
delay_ms(20);
if (PINA.1==0x00)
{PORTB=4;};
delay_ms(700);};}

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

Сообщение отредактировал zltigo - Apr 20 2008, 11:39


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 20 2008, 11:39
Сообщение #6


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

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



Это не глюк, а помехи от включения симистора.
Ставишь транс по питанию, по выходу опторазвязка,
а переход через 0 делаешь - гальванически соединяешь с фазой???

И вообще, схемку бы.
Обычно переход фиксируют по прерыванию.

Сообщение отредактировал domowoj - Apr 20 2008, 11:42


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


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

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



Посмотрите здесь

AVR182: Zero Cross Detector
AVR040: EMC Design Considerations

По крайней мере, детектирование нуля Атмел предлагает делать немного иначе.
В принципе, для детектирования нуля можно цепляться к напряжению вторичной обмотки трансформатора - так безопасней будет

Сообщение отредактировал tazik - Apr 20 2008, 11:55
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 11:53
Сообщение #8


fpga designer
****

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



транс - трансформатор?
у меня самодельный блок питания на трансворматоре
при переходи через 0 у меня включается канал лампочек чтоб помех не было
а по выходу опторазвяка была!


--------------------
Go to the top of the page
 
+Quote Post
Amper25
сообщение Apr 20 2008, 12:01
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 10-04-07
Пользователь №: 26 929



При переходе через 0 не надо включать лампы. При переходе, надо сбрасывать счетчик, который считает время до включения.

Если в 0 включать симисторы, то выключатся они только при следующем 0.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 12:04
Сообщение #10


fpga designer
****

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



у меня нет никакого счетчика


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 20 2008, 12:11
Сообщение #11


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 19:04) *
у меня нет никакого счетчика

Счетчик есть он програмный (delay_ms(30);- вот например)
и включать его надо в момент перехода через 0.


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


fpga designer
****

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



а напишите мне пожалуйста буквально 3 строчки кодла как это будет выглядеть


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 20 2008, 12:34
Сообщение #13


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

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



К сожалению с СИ я на ВЫ,
а на словах-
таймер в реж. ШИМ синхронизируется (сбрасывается в 0) переходом через 0,
в OCR0x записываешь число соответствующее нужной яркости, вывод OC0x на вых. - управление симистором, чтобы максимально использовать таймер нужно чтобы частота ШИМ была близка к 100Гц-
подстройка через OSCCAL , можно автоматически , можно вручную.

Сообщение отредактировал domowoj - Apr 20 2008, 12:36


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


fpga designer
****

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



если вы с СИ на вы то я с ним незнаком...
учился на курсе avr

можно поподробнее а то для меня это ничего не значится
или где об этом почитать


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


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

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



Иван, а у Вас какая тактовая частота МК?
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 13:20
Сообщение #16


fpga designer
****

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



Цитата(_Ivan_33 @ Apr 20 2008, 15:10) *
мк - attiny2313
частота внутренняя 1 МГц


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 20 2008, 13:28
Сообщение #17


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

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



Ага, тогда предлагаю сделать так: Вы пробуете сделать свою штуку на tiny2313, а я попробую на 90S8535 (нету у меня модели tiny2313 для Протеуса)
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 20 2008, 13:47
Сообщение #18


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 19:59) *
если вы с СИ на вы то я с ним незнаком...
учился на курсе avr

можно поподробнее а то для меня это ничего не значится
или где об этом почитать

Пользуюсь ASM(издревле повелось) да и код компактней,
а почитать
http://lord-n.narod.ru/walla.html
Голубцов М.С.
Микроконтроллеры AVR:
от простого к сложному.

Цитата(tazik @ Apr 20 2008, 20:28) *
Ага, тогда предлагаю сделать так: Вы пробуете сделать свою штуку на tiny2313, а я попробую на 90S8535 (нету у меня модели tiny2313 для Протеуса)

Тини2313 более "продвинутая" , а в Протеусе 7.2.2 у 8535 глюки с прерываниями.


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


fpga designer
****

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



в протеусе вообще нет модели тини2313 тока 90s2313 полный аналог

штуку то тестировали в протеусе - все норм
тока не я тестил...


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


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 20:48) *
в протеусе вообще нет модели тини2313 тока 90s2313 полный аналог

штуку то тестировали в протеусе - все норм
тока не я тестил...


Вопервых далеко не полный аналог,
а во вторых какую штуку.


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


fpga designer
****

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



бегущие огни без медленного загорания и отключения


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 20 2008, 14:05
Сообщение #22


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 22:00) *
штуку то тестировали в протеусе - все норм
тока не я тестил...


Хм, тогда не знаю. 01.gif

Спасибо про прерывания - не знал

Сообщение отредактировал tazik - Apr 20 2008, 14:07
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 14:11
Сообщение #23


fpga designer
****

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



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


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 20 2008, 14:23
Сообщение #24


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 22:11) *
ну так значит что может служить помехами?? включение тиристора ???
а насчет того что переход через 0 и мк будет включать порт на следующий переход имхо неверно так как там стоит диод и все значения лог0 от 0 до 1 вольта пройдет очень много времени если считать что команду он обрабатывает в 1 цикл мк


Хорошо, а почему бы сначала не взять лампочку, скажем, на 12В и запитать ее через Ваше устройство от трансформатора блока питания - чтобы определиться, что сбои происходят из-за помех.

Если Вы точно знаете, что из-за помех, то выше были приведены application notes от атмела. То есть на сброс - подтягивающий резистор с конденсатором, питание через LC-фильтр.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 14:26
Сообщение #25


fpga designer
****

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



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


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


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

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



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

ШИМ должен быть синхронным с сетью и =100Гц ,
а длительность импульса соответствует яркости.
Каждый ПОЛУпериод тиристор(симистор) включается в
момент определяемый длительностью имп.- фазовое управление называется.

Вообще в нете много инфы - почитай.


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


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 22:26) *
я брал светодиод и у меня все было нормально...
аплиуху сейчас посмотрю
а на сбросе у меня стоит резюк на 750 ом


Хорошо, когда работал светодиод, синхронизация от сети осуществлялась?
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 14:37
Сообщение #28


fpga designer
****

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



я отключил силовую часть (симисторы и поставил на ногу светодиод) поморгал им и все оказалось нормально, мк соблюдал время счетчика

в этом устройстве шим не используется - просто включить ногу мк (цепь лампочек на определенное время и выключить ну максимум сделать так чтоб цепь плавно загоралась( или вы в этом моменте указываете на использование ШИМ?)

когда работал светодиод переменка хоть как то к мк подключена не была


--------------------
Go to the top of the page
 
+Quote Post
Laksus
сообщение Apr 20 2008, 14:40
Сообщение #29


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

Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069



1- Непонятно как можно сделать бегущий огонь используя один вывод?
2- Насколько я понял, у Вас симистор открывается при нуле на выводе микроконтролера?
3- Чтобы привязать открывание тиристора к переменному току надо не проверять наличие нуля,
а проверять момент перехода с единицы на ноль (или наоборот).
Удобно сделать с помощью прерывания INT0 INT1 или PCINT.
А еще есть симисторы с встроенной схемой включения при переходе через ноль - MOC3061-M MOC3062-M MOC3063-M MOC3162-M MOC3163-M.

А если, как у Вас, делать не по моменту изменения, а по нулю и использовать симистор с произвольным моментом открытия, то фаза открытия непредсказуема. И будет хаотичное мигание.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 14:46
Сообщение #30


fpga designer
****

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



1)я использовал один вывод чтоб
- проверить на светодиоде
- узнать промежутки включения порта(открывания симистора) чтоб сделать плавное загорание лампочки и ее плавное отключение - но их как раз и не узнал из-за помех
2) этот вывод подключен к диоду и резистору чтоб узнать когда на переменке 0 и в этот момент включить цепь лампочек
3)почему именно переход? ведь если допустим было 0 а будет 1 то напряжение будет 3 вольта и выше а на переменке будет еще больше вольт
а мне то нужно чтоб помех было меньше...


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 20 2008, 14:58
Сообщение #31


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

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



Хорошо. А если подключить силовую часть и просто попробовать помигать гирляндой - без всякой привязки к полупериодам?
Go to the top of the page
 
+Quote Post
domowoj
сообщение Apr 20 2008, 15:04
Сообщение #32


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

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



Цитата(_Ivan_33 @ Apr 20 2008, 21:46) *
- узнать промежутки включения порта(открывания симистора) чтоб сделать плавное загорание лампочки и ее плавное отключение - но их как раз и не узнал из-за помех
2) этот вывод подключен к диоду и резистору чтоб узнать когда на переменке 0 и в этот момент включить цепь лампочек
3)почему именно переход? ведь если допустим было 0 а будет 1 то напряжение будет 3 вольта и выше а на переменке будет еще больше вольт
а мне то нужно чтоб помех было меньше...

Сейчас разговор не помехах, у вас не работает устройство по определению,
читайте предыдущие посты , вникайте.
Сначала нужно научить ШИМ работать синхронно с сетью.

И что за нули и единицы у переменки? Какие 3 Вольта?
Вам предлагали эксперимент с 12В лампочкой на переменке с тиристором - вперед.


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


fpga designer
****

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



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


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


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

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



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


Даже так... Тогда тут трудно сказать что-либо конкретное. Очень многое определяется той же разводкой. И рекомендации носят общий характер. Спасение утопающего - по большей части его личное дело ( Извиняйте (((
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 16:01
Сообщение #35


fpga designer
****

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



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

хотя все-таки дайте книгу чтоб прям была библией по микроконтроллерам

Сообщение отредактировал _Ivan_33 - Apr 20 2008, 16:04


--------------------
Go to the top of the page
 
+Quote Post
Laksus
сообщение Apr 20 2008, 16:37
Сообщение #36


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

Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069



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

Глядя на код не могу понять, что Вы хотите от ламп. Судя по коду:
Выключена 3.7сек-включилась на один период (20мсек)-
выключена 0.25сек-включилась на один период (20мсек)-
выключена 0.35сек-включилась на полтора периода (30мсек)-...и так далее

Но для диода включение его на 20...30 мсек с отключением на четверть секунды вполне заметны. А для лампы я смутно представляю как это будет выглядеть из-за ее инерционности.
Опишите пожалуйста подробнее, что Вы хотите от лампы и что она делает.

3)почему именно переход?
В "AVR182: Zero Cross Detector" описано с рисунками.
Если проверять не момент перехода с 1 на 0 (или с 0 на 1), а наличие ноля, то представьте
-Вы включаете схему, это происходит в случайный момент фазы от 0 до 360градусов фазы.
Если включили во время отрицательного полупериода, то при проверке на выводе будет обнаружен ноль и будет открыт симистор. Но напряжение на симисторе в этот момент может быть любое от 0 до 310В (если в сети 220В).
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 16:57
Сообщение #37


fpga designer
****

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



я как бы порциями даю энергию лампочке(цепи) причем порции становятся все больше и тем самым медленно повышается яркость света


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

стоп
как работать с шим???

Сообщение отредактировал _Ivan_33 - Apr 20 2008, 16:45


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


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

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



Учиться,
Учиться,
Учиться, и еще раз учиться
(почти по Ленину ?!).
Нахрапом не получится
читайте буквари и не только по МК.
Главное у вас есть желание.


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


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

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



Ёп... 07.gif Вот это смена подрастает! beer.gif
На ВУЗ не особо расчитывай, пока доберёшься до специализации пара лет пройдет. В данном вопросе ничего сложного нет, главное не бросать.
Схему в тексте ниасилил, в удобочитаемом виде нет?

Сообщение отредактировал Omen_13 - Apr 20 2008, 17:23


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


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

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



Цитата(_Ivan_33 @ Apr 21 2008, 00:57) *
а насчет апноута я посмотрел и ничего не понял - не рублю я в техническом английском - мне всего 15 лет ...


А, да ничего страшного. Мне еще второй год в 7 классе учиться. Гы
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 20 2008, 17:13
Сообщение #41


fpga designer
****

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



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


--------------------
Go to the top of the page
 
+Quote Post
Omen_13
сообщение Apr 20 2008, 17:23
Сообщение #42


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

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



ШИМ это широтно-импульсная модуляция. Если вкратце - из периода T часть времени t на нагрузку идёт напряжение. Увеличивая или уменьшая t соответственно увеличиваем или уменьшаем среднее напряжение на нарузке. (T>=t) Отношения T к t называют скважиностью

______/-----\______/-----\ (а)
___/---------\___/---------\ (б)
________/--\________/--\ (в)
t = время от / до \
T = время от / до /
Контрольный вопрос:
У какого из графиков (а-в) наибольшее и наименьшее напряжение на нагрузке (_ напряжение =0, - напряжение U)? wink.gif


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


fpga designer
****

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



б-наибольшее
в-наименьшее

схемка прилагается
так как сделать ШИМ!?

все в 22 00 ухожу

в схеме первый прямоугольник это кренка второй мк а еще не сделал токограничительный резистор до оптопары
Прикрепленные файлы
Прикрепленный файл  _____1.BMP ( 3.22 килобайт ) Кол-во скачиваний: 39
 


--------------------
Go to the top of the page
 
+Quote Post
Omen_13
сообщение Apr 20 2008, 17:47
Сообщение #44


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

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



Иди пока, выспись перед экзаменом.
Схема ужОс, есть пара ошибок. Нарисую в удобочитаемом виде выложу и накидаю алгоритм как надо сделать ШИМ.
ПС "не пуха"


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


fpga designer
****

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



к черту...
всем спокойной ночи без прерываний


а то есть мне можно получается и менять яркость лампочки ШИМ и делать плавное загорание и погасание?

Сообщение отредактировал _Ivan_33 - Apr 20 2008, 17:51


--------------------
Go to the top of the page
 
+Quote Post
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
Omen_13
сообщение Apr 21 2008, 20:06
Сообщение #61


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

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



Цитата(_Ivan_33 @ Apr 21 2008, 10:17) *
и почемувывод на кренке 5 вольт он 4-ий?

КР142ЕН5А в 3-х ногом корпусе имеет "золотого" старшего брата 142ЕН5А, там другой корпус. Номера выводов на графическом обозначении для обоих исполнений было решено оставить одинаковыми.
Цитата(_Ivan_33 @ Apr 21 2008, 10:17) *
и почему не подключена земля к мк?

Землю (и питание) МК я не рисовал, т.к. мне было лень смотреть его описание. laughing.gif
Ошибка в том что я не нарисовал резистор между выходом (4 ногой) H11L1 и +5В. Номинал 1кОм если не запямятовал.

Книги читать начал?


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


fpga designer
****

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



да, я сейчас заболел - время появилось


--------------------
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 22 2008, 09:08
Сообщение #63


fpga designer
****

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



вот узнал чтоб глобально разрешить прерывания нужно набрать #asm("sei") а запретить #asm("cli")
ну типа такого прерывания что на выходе int0(1) есть смена логического уровня такого нету... есть только прерывание по лог0, прерывание по ниспадающему фронту сигнала и по возрастающему
и что делать?


--------------------
Go to the top of the page
 
+Quote Post
vladi1147
сообщение Apr 22 2008, 09:54
Сообщение #64





Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993



Цитата(_Ivan_33 @ Apr 22 2008, 13:08) *
и что делать?


Добрый день всем!

Пусть меня старшие товарищи поправят, если я ошибаюсь, но мне кажется было бы полезно познакомиться с программой FlowCode. Она, кажется, для PIC-контроллеров, но позволяет отвлечься от кодирования на ассемблере или Си и сосредоточиться на происходящих событиях. Полученный hex-файл можно загрузить в Proteus, если не хватает внешних элементов, и увидеть происходящее без осциллографа, как если бы он был.

Конечно, окончательный ответ будет найден на макетной плате, но его легче искать, когда ясна суть происходящего.
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 22 2008, 09:58
Сообщение #65


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

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



Цитата(_Ivan_33 @ Apr 22 2008, 17:08) *
вот узнал чтоб глобально разрешить прерывания нужно набрать #asm("sei") а запретить #asm("cli")
ну типа такого прерывания что на выходе int0(1) есть смена логического уровня такого нету... есть только прерывание по лог0, прерывание по ниспадающему фронту сигнала и по возрастающему
и что делать?


Почему нету? Есть - MCUCR ISC01=0, ISC00=1 - any change - при любом изменении.
Более того, помимо INT0, INT1 есть еще прерывание PCINT - при изменении уровня на одной из 6 ножек

Цитата(vladi1147 @ Apr 22 2008, 17:54) *
Добрый день всем!

Пусть меня старшие товарищи поправят, если я ошибаюсь, но мне кажется было бы полезно познакомиться с программой FlowCode. Она, кажется, для PIC-контроллеров, но позволяет отвлечься от кодирования на ассемблере или Си и сосредоточиться на происходящих событиях.


Спасибо за ссылку. Думал, что кроме Algoritm Buildera ничего нет. Уже есть и для AVR, и для ARM )
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 22 2008, 10:37
Сообщение #66


fpga designer
****

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



блин перерыл книги там мало что написано.... ну может кто-нить сюда хоть откуда-то скопирует... я наверное штук 5 книг смотрел уже - на 2 страницах максимум написано...


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 22 2008, 10:44
Сообщение #67


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

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



Цитата(_Ivan_33 @ Apr 22 2008, 18:37) *
блин перерыл книги там мало что написано.... ну может кто-нить сюда хоть откуда-то скопирует... я наверное штук 5 книг смотрел уже - на 2 страницах максимум написано...


А что именно ты сейчас ищешь?
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Apr 22 2008, 13:27
Сообщение #68


fpga designer
****

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



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


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


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

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



Цитата(_Ivan_33 @ Apr 22 2008, 20:27) *
как делать прерывания... хотя бы на изменение лог уровня на ноге...

Вот нашел кое-что- это какие-то регуляторы,
есть и на си, с прерыванием.

Сообщение отредактировал domowoj - Apr 22 2008, 16:16
Прикрепленные файлы
Прикрепленный файл  Switch.rar ( 237.3 килобайт ) Кол-во скачиваний: 266
 


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


fpga designer
****

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



нашел на gaw.ru детектор нуля... сейчас буду разибрать...
если что не понятно напишу...
а кто-то мне еще хотел про шИМ написать....


--------------------
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 08:45
Сообщение #71


fpga designer
****

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



вот в книжке евстифеева написано что есть вектор прерывания изменения логического уровня на ноге. в ДШ на тиню написано вот это 0x000B PCINT Pin Change Interrupt. как мне его использовать?????
напишите в общей форме как вообще инициализировать прерывания!!! кто-нибудь помогите пожалуйста!!!


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 09:10
Сообщение #72


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

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



Там же все написано.
В GIMSK устанавливаешь PCIE, в PCMSK устанавливаешь нужный PCINTx,
при установленном общем прерывании готово прерывание полюбому изменению сигн.
на выбранной ноге МК.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 09:46
Сообщение #73


fpga designer
****

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



а вот написано - изменение сигналов на выводах - на каких выводах? и если их много как установить чтоб было тока на 1 выводе?

как записать в регистр GIMSK 5-ий разряд называемый PCIE лог.1????


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 09:51
Сообщение #74


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

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



Цитата(_Ivan_33 @ May 1 2008, 17:46) *
а вот написано - изменение сигналов на выводах - на каких выводах? и если их много как установить чтоб было тока на 1 выводе?

как записать в регистр GIMSK 5-ий разряд называемый PCIE лог.1????


Км, уважаемый, а мы вообще в этом веке планируем читать datasheets от производителя? Или уже только в следующем?
Там все четко написано.
С Вашей стороны не видно совершенно никаких усилий, это удручает

GIMSK|=(1<<PCIE);

Сообщение отредактировал tazik - May 1 2008, 09:53
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 09:51
Сообщение #75


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

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



Не в GIMSK , а в PCMSK- маска прерывания.
Посмотри в начале книги цоколевку и назначение выводов МК.
PCINT5 - PB5 - 17 нога у тини2313.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 10:06
Сообщение #76


fpga designer
****

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



я его сегодня скачал!!! и тем более я пока начинающий - еще не знаю что к чему

нашел этот регистр в ДШ...


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 10:10
Сообщение #77


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

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



Цитата(_Ivan_33 @ May 1 2008, 17:59) *
я его сегодня скачал!!! и тем более я пока начинающий - еще не знаю что к чему


Только сегодня?
Понятно, что начинающий, я ж не против. Просто Вам потребуется усвоить более-менее приличный объем информации. Хорошо было бы иметь под рукой знающего человека, чтобы общаться с ним вживую. То есть более оперативно решать вопросы. Если такого человека нет, то придется грызть все самому, по книжкам. \
bb-offtopic.gif
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 10:12
Сообщение #78


fpga designer
****

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



Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. - вот похоже я пошел правильным путем!


а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...

ну ERRATa я скачал раньше!


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 10:28
Сообщение #79


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

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



Цитата(_Ivan_33 @ May 1 2008, 17:12) *
Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. -
а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...

Ну на чистом англицком и у Евстифеева на чистом русском написано.
Таким образом ты организовал прерывание внешнее или програмное, если изменить этот бит порта.
Читать внимательнее!!! Все поймешь.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 10:35
Сообщение #80


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

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



Цитата(_Ivan_33 @ May 1 2008, 18:12) *
Each PCINT7..0-bit selects whether pin change interrupt is enabled on the corresponding
I/O pin. If PCINT7..0 is set and the PCIE bit in GIMSK is set, pin change interrupt is
enabled on the corresponding I/O pin. If PCINT7..0 is cleared, pin change interrupt on
the corresponding I/O pin is disabled. - вот похоже я пошел правильным путем!
а почему в разряды записываются лог. состояния именно так?
вроде в регистры порта записывается просто PORTB=2...

ну ERRATa я скачал раньше!


Есть конечно, команды sbi и cbi, позволяющие обращаться к битам регистров индивидуально. Другое дело, что только к I/O регистрам. GIMSK к ним не относится.

можно было бы сделать так:
ldi r16, 1<<TOIE1
out TIMSK,r16

Но при этом изменятся биты, которые мы не хотели трогать

В итоге приходится делать так - для установки бита в 1:
in r16,TIMSK
andi r16,1<<TOIE1
out TIMSK,r16

на С:
TIMSK|=(1<<TOIE1); - установка в 1

TIMSK&=!(1<<TOIE1); - сброс в 0

Регистры и биты взяты произвольные - для примера

Сообщение отредактировал tazik - May 1 2008, 10:37
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 10:41
Сообщение #81


fpga designer
****

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



все... поехал в сад... вечером буду...

Сообщение отредактировал _Ivan_33 - May 1 2008, 10:44


--------------------
Go to the top of the page
 
+Quote Post
tazik
сообщение May 1 2008, 10:48
Сообщение #82


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

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



Цитата(_Ivan_33 @ May 1 2008, 18:41) *
ну а почему записывается в регистры именно так а не как в регистры порта?

Архитектура контроллера такая.
АВРСтудио под рукой есть? Попробуйте сами.

The CBI and SBI instructions work with registers 0x00 to 0x1F only.

Цитата(_Ivan_33 @ May 1 2008, 18:41) *
все... поехал в сад... вечером буду...


Нормально. Удачи

Сообщение отредактировал tazik - May 1 2008, 10:47
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 17:10
Сообщение #83


fpga designer
****

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



#include <tiny2313.h>
#include <delay.h>
void main(void) {
#asm("sei");
DDRB=2;
GIMSK|=(1<<PCIE);
PCMSK|=(1<<PCINT7);}
void interrupt [PCINT7](void) {
PORTB=2;} - в чем ошибки?? в кодевижне пишет что PCIE PCINT7 - неизвестные символы...


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 17:19
Сообщение #84


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

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



#include <tiny2313.h>

// Pin change 0-7 interrupt service routine
interrupt [PCINT] void pin_change_isr0(void)
{
// Place your code here

}

Вот что пишет коде визард кодвижна.


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


fpga designer
****

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



а мне подсказали что исправить на номера битов это все...
другой вопрос ... типа у меня в программе
if (a==0||a==17) {function1(2);
function1(4);
function1(8);
function1(16);};


и так далее .... а мне нужно заменить функцию на прерывание и чтоб кусок кода который будет выполняться был от разных переменных - в данном случае - 2,4,8,16


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 1 2008, 18:12
Сообщение #86


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

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



Цитата(_Ivan_33 @ May 2 2008, 00:50) *
а мне подсказали что исправить на номера битов это все...
другой вопрос ... типа у меня в программе
if (a==0||a==17) {function1(2);
function1(4);
function1(8);
function1(16);};
и так далее .... а мне нужно заменить функцию на прерывание и чтоб кусок кода который будет выполняться был от разных переменных - в данном случае - 2,4,8,16

Честно, не знаю, да и не понятно что ты хочешь.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 1 2008, 18:26
Сообщение #87


fpga designer
****

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



ну вообщем мы объявили функцию... там выполняется кусок кода относительно переменной... в этом коде это и написано ...


а мне нужно чтоб после объявления функции обработки прерывания в общем виде потом в главной функции ставилось уже обработчик прерывания но относительно какого либо значения переменной


понимаю что бредово написал так как прерывания идут обособленно от функции...


--------------------
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 2 2008, 08:09
Сообщение #88


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



switch (a)
{
case 0 : .... break; // разрешаем нужное прерывание и ждем или программно вызывем его
case 17: .... break; //то-же самое
}
Значениям а лучше дать осмысленные названия через ENUM.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 7 2008, 15:32
Сообщение #89


fpga designer
****

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



кароче мне объяснили как сделать это.... но вопрос стоит - использовать счетчик или delay_ms () для подсчета времени... так ли это принципиально и если что предстоит исчитывать периоды для плавного загорание лампочки...


--------------------
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 8 2008, 17:59
Сообщение #90


fpga designer
****

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



начал изучать счетчики - вопрос: как записать и куда записать значение при котором счетчик должен отреагировать? т.е. конечное значение счета...


--------------------
Go to the top of the page
 
+Quote Post
fredo
сообщение May 8 2008, 19:32
Сообщение #91


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 13-09-06
Пользователь №: 20 357



Цитата(_Ivan_33 @ May 8 2008, 21:59) *
начал изучать счетчики - вопрос: как записать и куда записать значение при котором счетчик должен отреагировать? т.е. конечное значение счета...

В регистр сравнения OCR, при совпадении его значения со значением счетного регистра будет сгенерировано прерывание.
Либо записываешь начальное значение в счетный регистр и ждешь переполнения.

Сообщение отредактировал fredo - May 8 2008, 19:37
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 9 2008, 10:34
Сообщение #92


fpga designer
****

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



Цитата
#include <tiny2313.h>
#include <delay.h>
bit a=0;
bit b=0;
void main(void) {
#asm("sei");
TCCR1B|=(1<<2);
TCCR1B|=(1<<0);
DDRB=2;
GIMSK|=(1<<5);
PCMSK|=(1<<7);
while(1) {
if (a==1&&b==1) {a=0;
PORTB=2;
...
if(a==1) {a=0;
PORTB=0;};};};}
void interrupt [PCINT.7](void) {
a=1;
delay_xc(1000);
a=0;}
void interrupt [TIM1_COMPA]{
b=1;}


вместо ... напишите отсчет времени по счетчику ну скажем 2 секунды...
прога для attiny2313
и потом выключить отсчет времени...


--------------------
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 25 2008, 15:24
Сообщение #93


fpga designer
****

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



вот пишу опять сюда... ничего не получается... тот же самый случай
Цитата
#include <tiny2313.h>
#include <delay.h>
int a=0;
void main(void) {
#asm("sei");
DDRB=2;
GIMSK|=(1<<5);
PCMSK|=(1<<7);
while(1) {
if (a==200) {a=0;
PORTB=2;
if(a==200) {a=0;
PORTB=0;};};};}
interrupt [PCINT] void pin_change_isr0(void) {
a++;}

опять ничто не получается... я уже просто не знаю что делать ...
ничего не мигает ... ну если только иногда ...
цепь питания - блок питания - 500 мкф на 25 вольт кренка 100 мкф на 25 вольт 0,1 мкф - сам контроллер


цепь определения перехода - 560 ком и диод 1N4007...


на резет подано лог1 через 10 ком

возникла мысль поменять блок питания...


--------------------
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 25 2008, 15:40
Сообщение #94


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_Ivan_33 @ May 25 2008, 18:24) *
вот пишу опять сюда... ничего не получается... тот же самый случай
На этом форуме буквально через день ищется одна и та же ошибка. Если у вас переменная меняется в прерывании, а проверяется в основной программе, то она обязательно должна быть объявлена с квалификатором volatile! Поэтому у вас должно быть volatile int a = 0;


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 25 2008, 15:55
Сообщение #95


fpga designer
****

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



эффект тот же... но мигать стало почаще


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 25 2008, 16:07
Сообщение #96


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

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



Цитата(_Ivan_33 @ May 25 2008, 22:24) *
цепь определения перехода - 560 ком и диод 1N4007...

Откуда 560 ком и куда диод?


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
WHALE
сообщение May 25 2008, 16:08
Сообщение #97


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



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


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 25 2008, 16:10
Сообщение #98


fpga designer
****

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



1) взято с аналогичного девайса но + диод на ногу мк
2) таймера нету ... просто если посмотреть на волну переменного тока там будет 2 перехода через 0 и исходя из периода волны мы считаем


--------------------
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 25 2008, 16:20
Сообщение #99


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

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



Цитата(_Ivan_33 @ May 25 2008, 23:10) *
1) взято с аналогичного девайса но + диод на ногу мк
2) таймера нету ... просто если посмотреть на волну переменного тока там будет 2 перехода через 0 и исходя из периода волны мы считаем

Вольт сколько подаешь ?
Диод на землю не нужен тк он есть внутри МК.


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


fpga designer
****

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



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


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

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

 


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


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