Гость vit2700 Опубликовано 15 февраля, 2020 Поделиться Опубликовано 15 февраля, 2020 Доброго дня всем гуру программирования в BASCOM AVR ! В программировании я также как и в космической отрасли ... Увлекаюсь рыбалкой, использую электронные сигнализаторы поклевки (китайские). У меня их с приказавшим долго жить микроконтроллером уже больше десятка. Появилась идея , в корпуса изготовить свою плату на МК attiny13, соответственно без полного набора функций как у оригинала. Здесь на сайте нашел статью "Музыкальный звонок на МК Attiny13". В готовую схему в колхозил светодиод. По факту кнопку планирую заменить на геркон. Не могу разобраться как сделать чтоб при нажатии кнопки, контролер выполнил программу один раз и остановил цикл даже с нажатой кнопкой(это тот случай когда магнит на ролике остановился возле геркон и замкнул контакт ) ? Отпустил,нажал еще раз все повторилось. Есть вторая проблема, во время цикла контролер не реагирует на кнопку .Как сделать чтоб при повторном нажатии происходил сброс программы (уже действующего цикла) и запускалась новая программа (цикл)? $regfile = "attiny13.dat" $crystal = 1200000 $hwstack = 16 $swstack = 16 $framesize = 16 $noramclear Config PINB.1 = Input Config PORTB.2 = Output Toch Alias PINB.1 Led Alias PORTB.2 Config INT0 = Low Level On INT0 Button: Enable Interrupts Enable INT0 Declare Sub Melodi1() Dim Melcount As Byte Do Powerdown Loop End Sub Melodi1() Do Sound , PORTB.0 , 30 , 100 Waitms 10 Sound , PORTB.0 , 30 , 150 Waitms 10 Melcount = Melcount + 1 Loop Until Melcount = 5 Melcount = 0 if Toch = 1 Then Led = 0 if Toch = 0 Then Led = 1 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 End Sub Button: Call Melodi1() GIFR = 64 Return Спасибо всем кто откликнется! Буду рад любой помощи. ver 1.1.0.bas 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.