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

 
 
> Непонятка с ATtiny2313A
ZhukV
сообщение Jul 27 2012, 15:22
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 26-07-12
Пользователь №: 72 921



Не могу понять что за прикол (((

По инету, где описывают прерывание (включая видеоуроки), говорят, что подтягивающий резистор и само прерывание нужно подключать на общий провод.
Но когда закинул мелкую прогу на ATtiny2313A (с 2-я прерываниями), прерывание на общем проводе не работали, а на VCC работали.

На 8515 и 8535 работает нормально. ))

Подскажите плз, что это за прикол. Почему так? Может что-то упустил из даташита?

Для точности даю код и видео, как работает:
http://www.youtube.com/watch?v=JBMInzEEQog

CODE
#include <tiny2313a.h>
#include <delay.h>


// Speed
int speed = 1000;

// GoTo left
void toLeft(void)
{
if (PORTB.0 == 1) {
PORTB = 0b10000000;
delay_ms(speed);
}
PORTB = PORTB >> 0b1;

}

// GoTo right
void toRight(void)
{
PORTB = PORTB << 0b1;
if (PORTB.7 == 1) {
delay_ms(speed);
PORTB = 0b00000001;
}
}


interrupt[3] void changeType()
{
PORTD.0 ^= 1;
}

interrupt[2] void changeSpeed()
{
speed -= 100;
if (speed < 100) {
speed = 1000;
}
}


// Main
void main(void)
{
DDRB = 0xFF;
PORTB = 0x01;

DDRD = 0b00001101;
PORTD = 0b00000001;

MCUCR = 0b00001010;
GIMSK = 0b11000000;

#asm("sei");

while (1) {
delay_ms(speed);
if(PORTD.0 == 1) { toLeft(); }
else { toRight(); }
}
}



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

Сообщение отредактировал IgorKossak - Jul 27 2012, 19:30
Причина редактирования: [codebox] для длинного кода!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Jul 27 2012, 20:43
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Там еще вроде программируется "falling or rising edge or a low level". Т.к. можно заказать, чтобы прерывание срабатывало от дерганья вверх, вниз или уровня. Например, если было установлено прерывание на подъем, то от VCC оно работать будет, а от земли нет, потому что через внутрений резистор подтяжки (там где-то 50 ком) напряжение нарастает медленнее, чем это требуется для срабатывания прерывания. В вашем случае, видимо, проще запрограммировать "low level", чтобы недостаточная скорость нарастания или спада сигнала не помешала детекции прерывания.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 27 2012, 20:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Xenia @ Jul 27 2012, 23:43) *
В вашем случае, видимо, проще запрограммировать "low level", чтобы недостаточная скорость нарастания или спада сигнала не помешала детекции прерывания.

Как "недостаточная скорость нарастания" может помешать генерации прерывания по спаду?
Триггер Шмитта разве не поможет?
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 27 2012, 21:32
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(_Артём_ @ Jul 28 2012, 00:59) *
Как "недостаточная скорость нарастания" может помешать генерации прерывания по спаду?
Триггер Шмитта разве не поможет?


Нет, конечно. Недостаточная скорость нарастания может помешать генерации прерывания по подъёму, а недостаточная скорость падения - прерыванию по спаду. А вот прерыванию по низкому уровню, кажется, ничто помешать не может. sm.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 27 2012, 22:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Xenia @ Jul 28 2012, 00:32) *
Нет, конечно.

Как так?
А зачем его тогда на входах ставят?

Цитата(Xenia @ Jul 28 2012, 00:32) *
А вот прерыванию по низкому уровню, кажется, ничто помешать не может.

Может (если следовать вашей логике, конечно): раз перепада не возникло, то и уровня не было - формируются то они от одного и того же сигнала.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:53
Рейтинг@Mail.ru


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