roboforum.ru

Технический форум по робототехнике.

прерывание, помогите

прерывание, помогите

chinga » 31 мар 2010, 12:15

здравствуйте! вот скока уже пытаюсь работать с прерыванием... я новичек и никак не могу разобраться...=(
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: прерывание, помогите

galex1981 » 31 мар 2010, 14:21

Не пойму, объясни еще раз, светодиод мигает в основной программе? Прерывание выполняется или нет?

Re: прерывание, помогите

Michael_K » 31 мар 2010, 14:30

Да, слова-то русские а смысл какой-то совсем не русский :)
Внутрений телепатический голос мне подсказывает перевод:

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

Re: прерывание, помогите

chinga » 31 мар 2010, 14:57

да=))) ну это для примера... у меня под основной программой другая программа... вот как работает? не поможетЕ?
Модератор blindman:Предыдущий пост цитировать не надо, тем более целиком

Re: прерывание, помогите

tsrodger » 31 мар 2010, 15:02

chinga писал(а):
Код: Выделить всёРазвернуть
Stopbutton:
  Portd.7 = 1
Return


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

Re: прерывание, помогите

chinga » 31 мар 2010, 15:55

останавливается, и продолжает работать... но второй светодиод не горит который должен гореть при нажатие кнопки...

Re: прерывание, помогите

tsrodger » 31 мар 2010, 16:15

у вас прерывание сработает только по спаду (те момент нажатия), а на не удержание...

Re: прерывание, помогите

galex1981 » 31 мар 2010, 16:15

А попробуй без прерывания 1 выставить на выход, где подключен 2й светодиод

Re: прерывание, помогите

chinga » 31 мар 2010, 16:44

работает на port.6, а из за чего может не работать port.7? спалил?

Re: прерывание, помогите

galex1981 » 31 мар 2010, 17:03

Может и спалил, может - недопаял ножку

Re: прерывание, помогите

Vovan » 31 мар 2010, 18:03

Proteus Вам в помощь :)

Re: прерывание, помогите

chinga » 31 мар 2010, 18:23

я так и не подружился с ним=(

Re: прерывание, помогите

chinga » 31 мар 2010, 18:41

но када я отпускаю кнопку светоиод не выключается... только работает с заддержкой... нажимаю кнопку горит и только по заданной заддержке горит и выкл, и продолжается основная программа... а если убрать заддержку то нажимаю кнопку он горит бесконечно...
Код: Выделить всёРазвернуть
$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: прерывание, помогите

galex1981 » 31 мар 2010, 21:53

Правильно что горит бесконечно, ты же включаешь светодиод но не выключаешь его

Re: прерывание, помогите

tsrodger » 31 мар 2010, 22:27

вообщем вот - схема в протеусе, ваш мк два диода и кнопка... код рабочий или я чего-то не понимаю :o
Вложения
debug.rar
(6.65 КиБ) Скачиваний: 0


Rambler\'s Top100 Mail.ru counter