roboforum.ru

Технический форум по робототехнике.
Текущее время: 28 фев 2025, 12:23

Часовой пояс: UTC + 4 часа




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 66 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 14:06 
Не в сети
Аватара пользователя

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
Здравствуйте, только начал заниматься с контроллерами, пока поставил себе задачу зажигать светодиод при нажатии на кнопку (по прерыванию).
Светодиод подключаю через сопротивление к PD0, и PD2 через кнопку подключаю на землю.
Наваял небольшую программку:
Код:
.include "m8def.inc"

.cseg
.org 0x0000

RJMP Reset
RJMP INT_0
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI

Reset:

LDI R16,low(RAMEND)
OUT SPL,R16
LDI R16,high(RAMEND)
OUT SPH,R16

SEI

CBI DDRD,2            ;конфигурируем PD2 на вход
SBI PORTD,2

LDI R16,0x2            ;по восходящему фронту на INT0
OUT MCUCR,R16

LDI R16,1<<INTF0                        ;разрешаем прерывания c INT0
OUT GICR,R16

Main:
RJMP Main

INT_0:
SBI DDRD,0
SBI PORTD,0
RETI


Вроде как бы все должно работать, ан не работает, светодиод не горит :( Причем если тупо установить бит в PD0 - горит, а через прерывание не хочет, подскажите пожалуйста, куда копать?
И еще такой вопрос: после стирания контроллера в программной памяти (и вроде как в EEPROM) каждый раз в разных местах остаются данные типа 7FFF или F7FF. Т.е. полного стирания не происходит. Как от этого избавиться?

_________________
Ты приснись ей, ангел белый, пусть ей будет хорошо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 14:55 
Не в сети
Аватара пользователя

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
Цитата:
Код:
LDI R16,0x2            ;по восходящему фронту на INT0OUT MCUCR,R16

Это прерывание по спаду

Цитата:
Код:
LDI R16,1<<INTF0                        ;разрешаем прерывания c INT0OUT GICR,R16

Фигня полная,нада
Код:
ldi r16,$40
out gicr,r16


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:05 
Не в сети
Аватара пользователя

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
=DeaD= писал(а):
ой ли PD2, а не PD1 ?

Я канешна могу ошибаться, ибо ламер, но почему-то думал что
Код:
CBI DDRD,0 ;обнуляет бит в порту PD0
...
CBI DDRD,2 ;обнуляет бит в порту PD2
и т.д.

Это не так?

Добавлено спустя 6 минут 13 секунд:
Victorovych писал(а):
Цитата:
Это прерывание по спаду

даташита нет сейчас под рукой, не могу посмотреть, возможно что просто коммент не поправил, сперва по-другому хотел..

Цитата:
Фигня полная,нада
Код:
ldi r16,$40
out gicr,r16


Фигня не фигня, а некоторые и так пишут, в частности на easyelectroniсs такой приём со сдвигом видел, да и в симуляторе он прокатывает. Но все же попробую и просто константой.

_________________
Ты приснись ей, ангел белый, пусть ей будет хорошо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:07 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Цитата:
Фигня полная,нада

Полегче, дружище :) Эти 2 куска кода эквивалентены

По правильному, надо
Код:
LDI R16,1<<INT0


Но по счастливому стечению обстоятельств :) INT0 и INTF0 - оба бит номер 7

=DeaD= писал(а):
=DeaD= писал(а):ой ли PD2, а не PD1 ?

Именно PD2

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:08 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Yuraskas писал(а):
Здравствуйте, только начал заниматься с контроллерами, пока поставил себе задачу зажигать светодиод при нажатии на кнопку (по прерыванию).


Именно такой пример есть на страничке о прерываниях в AVR - http://avr123.nm.ru/03.htm - вы можете посимулировать нажатие кнопочек и прерывания от них.

СИЛЬНО РЕКОМЕНДУЮ !!! Учиться программаировать AVR сразу на Си. Это гораздо проще и ИМХО удобней - так как вам будет помогать мастер конфигурации AVR встроеный в компиляторы CVAVR и ICC .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:20 
Не в сети
Аватара пользователя

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
blindman писал(а):
Цитата:
Фигня полная,нада

Полегче, дружище :) Эти 2 куска кода эквивалентены

По правильному, надо
Код:
LDI R16,1<<INT0


Но по счастливому стечению обстоятельств :) INT0 и INTF0 - оба бит номер 7


Угу перегрелся чуток
Тока 6, а не 7 если с нуля считать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:21 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Точно, 6

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:39 
Не в сети
Аватара пользователя

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
Так почему кнопка-то не работает? :(

_________________
Ты приснись ей, ангел белый, пусть ей будет хорошо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:44 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Может подтяжку включить ? Я кнопки рекомендкю подключать к МК только через резистор - 200-400 Ом

И очень советую скачать и использовать PROTEUS - для обучения очень полезно, потому как можно видеть что у МК внутри творится и часто быстрей становится ясно "ПОЧЕМУ ..."

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

Victorovych, вы чт-то разцитировались ! :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:54 
Не в сети
Аватара пользователя

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
Цитата:
Может подтяжку включить

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

_________________
Ты приснись ей, ангел белый, пусть ей будет хорошо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:56 
Не в сети
Аватара пользователя

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
Может в программаторе проблема...
PD2 точно на землю садишь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 21 июл 2009, 15:56 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Вы проверьте что на ножке происходит. Очень желательно ПРОЕКТ выложить чтоб не сидеть не гадать на гуще кофейной.

PROTEUS советую свежий скачать - http://proteus123.narod.ru

Если тяжко 70 Мб качать то скачайте всего 5 - это прекрасный симулятор AVR - VMLAB ! Выше я давал вам линк где есть пример для него по прерываниям на INTx


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 22 июл 2009, 10:02 
Не в сети
Аватара пользователя

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
Вот, вроде наваял проект в протеусе
Вложение:
Button.rar [13.66 КиБ]
Скачиваний: 8
реальная схема такая же, только нет кнопки на сброс. Диод горит, при нажатии на кнопку - гаснет.
Код:
.include "m8def.inc"
.cseg
.org 0x0000

RJMP Reset
RJMP INT_0
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI

Reset:

LDI R16,low(RAMEND)
OUT SPL,R16
LDI R16,high(RAMEND)
OUT SPH,R16

SEI

CBI DDRD,2      ;конфигурируем PD2 на вход
SBI PORTD,2

SBI DDRD,0      ;PD0 на выход
SBI PORTD,0      ;зажигаем светодиод при старте МК

LDI R16,0x2      ;по нисходящему фронту на INT0
OUT MCUCR,R16

LDI R16,1<<INTF0
OUT GICR,R16

Main:
RJMP Main

INT_0:
CBI PORTD,0      ;по прерыванию светодиод гасим
RETI

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

_________________
Ты приснись ей, ангел белый, пусть ей будет хорошо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 22 июл 2009, 10:05 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Слушай, а какие фузы ты перешиваешь, напиши

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тупость, не работает кнопка :(
СообщениеДобавлено: 22 июл 2009, 10:06 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Подумай чуток что нужно в проект КЛАСТЬ что бы был смысл в его выкладывании !


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 66 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO