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

 
 
 
Reply to this topicStart new topic
Midas
сообщение Jun 28 2007, 15:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Здравствуйте ребята тут такой прикол у меня вышел. В проге поставел прерывание по ниспадаещому фронту на INT0 и falling edge на INT2 так вот на INT2 при падении напряжения прерывание генерируется,
а на INT0 нет. Не пойму почему? 07.gif. Мерял вольтметром то на этой ножке напряжения падает с 4.22В на 0.01В, а функция по обработке прерывани не вызивается почему-то?
Go to the top of the page
 
+Quote Post
NVade
сообщение Jun 28 2007, 15:55
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 7-07-06
Из: Новосибирск
Пользователь №: 18 652



хотя бы кусок кода привел...
Go to the top of the page
 
+Quote Post
Midas
сообщение Jun 28 2007, 16:42
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Выкладываю весь проэкт
Прикрепленные файлы
Прикрепленный файл  REAL_SYSTEM.rar ( 89.4 килобайт ) Кол-во скачиваний: 61
 
Go to the top of the page
 
+Quote Post
Midas
сообщение Jun 29 2007, 13:46
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Ребята, написал маленькую тест программу, вот код
Код
#include <mega16.h>
#include <delay.h>
//---------------------------------------------------------------------------------        
void main(void)
{  
DDRD=0x00;
DDRC=0xFF;
PORTC.6=1;
PORTC.7=1;
while(1)    
{      
  if(PIND.2==0)
  {
    delay_ms(25);
    if(PIND.2==0)
    {
      PORTC.6=0;
    }
  }  
  if(PIND.3==0)
  {
    delay_ms(25);
    if(PIND.3==0)
    {
      PORTC.7=0;
    }
   }
}
}

Так вот эта прога делает лишь одно провиряет состояния PIND.2 и PIND.3 и эсли условия истиное то загорпются светодиоды на PORTC.7 и PORTC.6, но тут такой прикол. Прошил мк, ни на какую кнопку не нажимал, а диод загорается и всё время на PORTC.7. Это чё значит ножка МК не работает или что, напряжения 4 В. Прокоментируйте пожалуйста
Go to the top of the page
 
+Quote Post
NVade
сообщение Jun 29 2007, 14:03
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 7-07-06
Из: Новосибирск
Пользователь №: 18 652



а что за компилятор?
Листинг смотрел - там все нормально?
Питание, клок, фузы проверил?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 29 2007, 14:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Midas @ Jun 29 2007, 16:46) *
Прокоментируйте пожалуйста

Нет проблем. Подтяжки кнопок внешние есть?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
muravei
сообщение Jun 29 2007, 14:40
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(Midas @ Jun 29 2007, 17:46) *
Ти всё время на PORTC.7. Это чё значит ножка МК не работает или что, напряжения 4 В. Прокоментируйте пожалуйста

А тестером ее потыкать -не пищит? Выключенное , конечно.
И схемку, как св.диоды включены.
Go to the top of the page
 
+Quote Post
Midas
сообщение Jun 29 2007, 14:55
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Не пищит. Всё в протеусе!
Прикрепленные файлы
Прикрепленный файл  Ss.rar ( 29.66 килобайт ) Кол-во скачиваний: 71
 
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jun 29 2007, 15:47
Сообщение #9


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Midas @ Jun 29 2007, 12:46) *
Так вот эта прога делает лишь одно проверяет состояния PIND.2 и PIND.3 и если условие истиное то загораются светодиоды на PORTC.7 и PORTC.6, но тут такой прикол. Прошил мк, ни на какую кнопку не нажимал, а диод загорается и всё время на PORTC.7. Это чё значит ножка МК не работает или что, напряжения 4 В. Прокоментируйте пожалуйста

Получается разовое включение. Попробуйте так, чтобы видеть изменение состояния кнопок:
Код
{  
DDRD=0x00;
DDRC=0xFF;
PORTC.6=1;
PORTC.7=1;
while(1)    
{      
  if(PIND.2==0) PORTC.6=0;
  else PORTC.6=1;

  if(PIND.3==0) PORTC.7=0;
  else PORTC.7=1;
}
}


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Midas
сообщение Jun 29 2007, 16:16
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Так вот, сделал так как говорил =GM= но тут такой прикол идёт всё равно разовое включание, тоесть если PIN уже был 1 то он не миняется, так и остаётся потому-что диод продолжает гореть даже при розомкнутом состоянии кнопки, ЧЁ делать? crying.gif 07.gif
Go to the top of the page
 
+Quote Post
archi2000
сообщение Jun 29 2007, 17:59
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 38
Регистрация: 30-09-05
Пользователь №: 9 098



Попробуй скомпилировать в urboff формат и отладить в AVRStudio.
Вообще в симуляторе Протеус может работать, а в реальном железе - нет по многим причинам - ошибки в монтаже например.
Еще в микроконтроллере есть WATCHDOG, он может ресетить процессор, на время отладки его нужно отключать.
Go to the top of the page
 
+Quote Post
Midas
сообщение Jun 29 2007, 18:09
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Нет я конечно понимаю, всё может быть но одно мне недоходит почему на INT2 прерывание идет, смысли срабатывает, а на INT1 и INT0 НЕТ 07.gif Может ли повлиять тот факт что длинна от замыкателя(кнопки) больше 5 метров, хотя я возле ноги вольтметром мерал, то напряжения там нормально почти как от батареек и падает нормально. Чёрт его знает, вот самая большая досада, что INT2 работает, а остальные нет. А каие могут быть ошибки монтажа? Может ли так глючить из-зи малого питания-3.75В, хотя с другой стороны INT2 срабатывает всё таки. Я ещё в даташите чего-то не догнал, мол что INT2- это какоето асинхронное прерывание, это как?

Сообщение отредактировал Midas - Jun 29 2007, 18:10
Go to the top of the page
 
+Quote Post
muravei
сообщение Jun 29 2007, 18:36
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(Midas @ Jun 29 2007, 22:09) *
Может ли повлиять тот факт что длинна от замыкателя(кнопки) больше 5 метров, хотя я возле ноги вольтметром мерал, то напряжения там нормально почти как от батареек

Все может повлиять, Вы бы потрудились и нарисовали полную схему, Протеусом большинство не пользуется.Есть ли керамический конд . по питанию? А Вам эти 5м жизнено необходимы ? Добейтесь, сначала, устойчивой работы на 5см .
Асинхронное это значит процессор узнает о нем не в момент прихода такт импульса, а значит , наверно,оно может случиться от импульса меньше длительности клока.
И еще, может Вам лучше настроить INT0 на прерывание по "0"?
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jun 29 2007, 19:59
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Аяяй!

Ну народ Вы даете smile.gif
Давно избитую проблему не знаете.

1 В протеусе PC7 не пашет под мегу16
2 В реале тоже не пашет ,нужно отключить фуз JTAGEN.
Go to the top of the page
 
+Quote Post
Midas
сообщение Jun 29 2007, 21:27
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Почему не пашет 07.gif ? У меня протеус 7.1 и всё пашет!
Тут проблема в другом...
Ребята, большое вам спасибо, за то что терпели и отвечали на мои ламерские вопросы a14.gif
Ошибку Я нашёл в монтаже платы 08.gif 08.gif , по просьбе muravei я начал рисовать схему и тут я понял что INT0 INT1 находятся на много далее от INT2, чем у меня на плате и тут я понял, что перепутал верх и низ контроллера 01.gif ! Вот такой я дурак, быстро всё перепаял и вуалля...
ВСЁ работает 08.gif
Ребята ещё раз извините за такое дурацкое недоглядение, я уже себе пообещал, что больше такого не повторится! smile.gif smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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