roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 15:32

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




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

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Yuraskas писал(а):
как тухнуть при отпускании я пока не придумал
так всё таки должно (когда-нибудь) тухнуть :wink:
а если просто зажечь или просто потушить, то всё верно, кроме: 1. почему вторая строчка после SEI закомментирована? (не работает!) 2. в комментариях зажигаем\гасим поменять местами, если СД вторым своим хвостом на минус посажен.

_________________
_________
Sincerely,
Vovan


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

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
Vovan писал(а):
так всё таки должно (когда-нибудь) тухнуть


Должно конечно, и уже тухнет! :)
Код:
.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

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

SBI DDRD,0         ;PD0 на выход
CBI PORTD,0         ;убеждаемся что диод не горит :)

LDI R16,0x1         ;по изменению уровня INT0
OUT MCUCR,R16

LDI R16,1<<INTF0
OUT GICR,R16

SEI

Main:
RJMP Main

INT_0:
SBIS PIND,0
RJMP Light_on         ;зажигаем диод
SBIC PIND,0
RJMP Light_off         ;гасим диод
RETI            ;если вдруг третье состояние )))

Light_on:
SBI PORTD,0
RETI

Light_off:
CBI PORTD,0
RETI

P.S. Всем большое спасибо за ответы! :) А я буду разбираться дальше, на очереди таймеры...

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


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
если INT0: это обработчик прерывания то нафига в нем в нутри RETI ...
Поще на Си писать наверно - там компилятор чуток помогает.


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

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Так там же в комменте написано - если вдруг на ребро упадет или в воздухе зависнет ;)


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Ау меня же написано ... в нем в нутри


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

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Так он всё равно не слушает что говорят, по своему делает... Я же дал код давно и гаснет и горит по прерыванию без опроса и нагрузки процессора (sbis, sbic - ф топку!)... а можно тот код ваще до 5 строчек свести, но походу это не надо: ни си ни правильный асм...
Зачем спрашивал человек? непонятно... :crazy:

_________________
_________
Sincerely,
Vovan


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Ну научится то он хочет и наверно научится в конце концов, но советов и правда не слушает хотя спрашивает.

Наверно на парадоксах работает.


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

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
2 Vovan: вот именно что вы дали код, готовый, для меня же больший кайф дойти до него самому. На мой взгляд для обучения было бы полезнее объяснить чем плох мой код и какие методы нужно применить чтобы его улучшить, например те же sbis, sbic - чем они плохи? А что касается советов, я их слушаю, но на С писать пока все равно не хочу :)
А тем временем кнопка всё же не работает, и дело тут уже не в программе...
Схема такая:
Изображение
Нажимаю на кнопку - не работает, выпаиваю кнопку, прикасаюсь щупом к сопротивлению, либо прямо к ноге МК - работает... Объясните пожалуйста в чём дело...

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


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Наверно подтяжки нет. А от пальца расколбас создает на ножке единички и нули и срабатывает. А может вообще нет такта в МК а при касании он тактируется. Правда без такта он и не прошивался бы. Залейте прогу которая в начале чуток просто помигает светодиодом чтобы убедится что с тактом все стабильненько. По длительности горения светика можно вычислить частоту такта AVR.

Вы опять проект не цепляете ? У вас ПРИНЦИП такой чтоль ?


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

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
Внутренний подтяг включен, на реальной схеме стоит кварц на 8Mhz. Что касается помигать - попробую. По поводу проекта, не прикладывал потом что в проекте вроде всё шоколадно, а вот на реальном макете - никак :(


Вложения:
Button.rar [13.06 КиБ]
Скачиваний: 10

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

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Вы пишите:
Цитата:
пока поставил себе задачу зажигать светодиод при нажатии на кнопку (по прерыванию)
я и предложил код (очень простой) зажигать светодиод используя внешние прерывания. Вполне резонно (и логично!) и гасить используя то же.
Т.е. есть вн. прерывание - горим, нет - гасим. Зачем в обработчике задействовать процессор? Это тоже самое что: ощутив ожёг не отдёргивать руку, а сначала посмотреть и убедиться - а точно ли рука касается чего-то горячего? и убедившись, спокойно отодвинуть (не отдёрнуть!) руку. Именно так Вы поступаете используя опрос портов (sbis и sbic) в обработчике.
Я не говорю что такое справедливо всегда, но в данном случае - это очевидно.
Самому дойти до этого очень похвальное желание, однако как идти через глубокую реку не зная броду?
Рекомендую, коль попалась река под названием "Внешние прерывания" пойти там где и указывают люди не раз проходившие по этой дороге...
Цитата:
На мой взгляд для обучения было бы полезнее объяснить чем плох мой код и какие методы нужно применить чтобы его улучшить, например те же sbis, sbic - чем они плохи? А что касается советов, я их слушаю, но на С писать пока все равно не хочу :)
а на мой взгяд - если занялись вн. прерываниями - доведите это дело до конца, "ведь это нужно Вам" (с). Слушать советы - мало, "их нужно применять" (с) :wink:
sbis и sbic ни чем не плохи, однако если пользуетесь ими, нужно знать для чего ЭТО и когда применяется (в этом месте опять хочется процитировать avr123, но удержусь :) ) А код Ваш афтоматически улучшится, если Вы поэтапно и до конца разберётесь сначала с одним, затем с другим, затем с n-ным...
А что непонятного в коде который я дал? Там по-моему и вопрос-то воткнуть некуда...

_________________
_________
Sincerely,
Vovan


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

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
Vovan, дык в твоем коде там будут мерцания с заоблачной частотой... а он как я понял фиксирует изменение уровня прерыванием, в обработчике проверяет уровень.... мне кажется вполне нормальный код для именно такой функции...

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


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

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Хех... а в его коде "зажечь светодиод" (не гася) не тоже самое происходит? :wink:
Вы о какой частоте щас?
Добавляю, спустя 5мин: код в последнем прикреплённом архиве ваще не рабочий :crazy: , искать ошибки в нём не хочу и не буду, потому что походу топика задача и условия невнятные, мягко говоря...
Хотелось бы услышать: что мешает зажигать и гасить СД по вн.прерыв.? (INT0)

ЗЫ: Млин, ну реально: диагноз благоприятный если начать с си - там стока подсказок, мастеров, отладчиков и т.д. - всё для начинающего plug & play... и 4 страницы ниочём писать не придётся...
Здесь я двумя, даже тремя руками поддерживаю avr123 :)

_________________
_________
Sincerely,
Vovan


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

Зарегистрирован: 20 июл 2009, 13:59
Сообщения: 119
Откуда: Канск
2 Vovan: ваш код у меня почему-то не заработал, а мой (с последней ссылки) работает. Хотя возможно тут что-то не то со схемой, как я уже говорил, просто прикасаюсь щупом к выводу и проходит срабатывание, поэтому программный вопрос отходит на второй план, сперва нужно понять как сделать чтобы схема стабильно срабатывала от кнопки и не срабатывала от прикосновения.

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


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

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Не поленился и заснял на видео: в архиве Button - работа Вашего кода и Ваш hex. Код работает непонятно как, а именно - может при нажатии на кнопку загораться, а может тухнуть, рАвно то же и при включении питания...
в архиве knopka - работа моего кода и мой hex. Код работает чётко никаких проблемм :)


Вложения:
knopka.rar [781.83 КиБ]
Скачиваний: 14
Button.rar [1.76 МиБ]
Скачиваний: 13

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

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


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

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


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

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