roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 20:21

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




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 12:15 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
здравствуйте! вот скока уже пытаюсь работать с прерыванием... я новичек и никак не могу разобраться...=(
http://www.decada.org.ru/project/lesson ... /index.php читал я вот здесь... когда светик мигает нажимаю на кнопку на дисплей выводит СТОПЪ... а вот в место СТОПЪ я не могу зажечь просто светодиод... вот светодиод мигает ( или другая программа) под основной программой, и когда нажимаю на кнопку горит другой, а когда отпускаю кнопку основная программа должна продолжать работу основной программы с того места, где она была прервана...
вот программа
Код:
$regfile = "m32def.dat"
$crystal = 16000000

Config Pind.6 = Output
Config Pind.7 = Output
Config Pind.2 = Input
Config Int0 = Falling

Dim Wtime As Byte

On Int0 Stopbutton

Cls

Wtime = 200

Enable Interrupts
Enable Int0

Do
  Set Portd.6
  Waitms Wtime
  Reset Portd.6
  Waitms Wtime
Loop

Stopbutton:
  Portd.7 = 1
Return

End


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 14:21 
Не в сети
Аватара пользователя

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

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 14:30 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Да, слова-то русские а смысл какой-то совсем не русский :)
Внутрений телепатический голос мне подсказывает перевод:

Чинга хочет, чтобы основная программа мигала светодиодом.
Когда он нажимает на кнопку, основная программа, как он думает должна встать и должен запуститься обработчик прерывания. Который зажжет другой светодиод. И будет им светить, пока кнопка нажата.
Когда он отпустит кнопку, то как он думает, прерывание должно, видимо, погасить второй светодиод и вернуть управление основной программе...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 14:57 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
да=))) ну это для примера... у меня под основной программой другая программа... вот как работает? не поможетЕ?
Модератор blindman:Предыдущий пост цитировать не надо, тем более целиком


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 15:02 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2008, 17:31
Сообщения: 134
Skype: tsrodger
прог. языки: VB.Net, C, PHP
chinga писал(а):
Код:
Stopbutton:
  Portd.7 = 1
Return


Не пишу на Баскоме, но если я правильно понял задачу и синтаксис в примере то у вас все работает, просто в вашем примере мигать нечему и все ...
Код:
Stopbutton:
  Set Portd.7
  Waitms Wtime
  Reset Portd.7
  Waitms Wtime
Return


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 15:55 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
останавливается, и продолжает работать... но второй светодиод не горит который должен гореть при нажатие кнопки...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 16:15 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2008, 17:31
Сообщения: 134
Skype: tsrodger
прог. языки: VB.Net, C, PHP
у вас прерывание сработает только по спаду (те момент нажатия), а на не удержание...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 16:15 
Не в сети
Аватара пользователя

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

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 16:44 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
работает на port.6, а из за чего может не работать port.7? спалил?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 17:03 
Не в сети
Аватара пользователя

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

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 18:03 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Proteus Вам в помощь :)

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 18:23 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
я так и не подружился с ним=(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 18:41 
Не в сети

Зарегистрирован: 24 дек 2008, 17:55
Сообщения: 203
Откуда: Актюбинск
но када я отпускаю кнопку светоиод не выключается... только работает с заддержкой... нажимаю кнопку горит и только по заданной заддержке горит и выкл, и продолжается основная программа... а если убрать заддержку то нажимаю кнопку он горит бесконечно...
Код:
$regfile = "m32def.dat"
$crystal = 16000000

Config Pind.3 = Input
Config Pind.6 = Output
Config Pind.5 = Output
Config Pind.2 = Input
Config Int0 = Falling

Dim Wtime As Byte

On Int0 Stopbutton

Cls

Wtime = 200

Enable Interrupts
Enable Int0
Do
Set Portd.5
  Waitms Wtime
  Reset Portd.5
  Waitms Wtime
Loop


Stopbutton:
  Portd.6 = 1
  Waitms 1000
  Reset Portd.6

Return

End


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 21:53 
Не в сети
Аватара пользователя

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

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: прерывание, помогите
СообщениеДобавлено: 31 мар 2010, 22:27 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2008, 17:31
Сообщения: 134
Skype: tsrodger
прог. языки: VB.Net, C, PHP
вообщем вот - схема в протеусе, ваш мк два диода и кнопка... код рабочий или я чего-то не понимаю :o


Вложения:
debug.rar [6.65 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу 1, 2, 3  След.

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


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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 13


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

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