Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Это я сразу увидел, что вывод INT0 ты перепутал, да и в сон отправлял не по Феншую. Сразу не хотел об этом писать, а лишь подтолкнул тебя советом в правильном направлении, чтобы сам попробовал разобраться. Это наилучший результат для понимания. Удачи в дальнейших проектах. 
Это я сразу увидел, что вывод INT0 ты перепутал, да и в сон отправлял не по Феншую. Сразу не хотел об этом писать, а лишь подтолкнул тебя советом в правильном направлении, чтобы сам попробовал разобраться. Это наилучший результат для понимания. Удачи в дальнейших проектах. 8-)
|
|
|
 |
Добавлено: 30 окт 2015, 15:37 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
SVN, огромное спасибо за помощь, все мои вопросы решились... Я перепутал вывод кнопки, поэтому ничего не работало... как только разобрался и подключил кнопку на нужный пин - сразу попёрло.....появилась движуха на все изменения в программе и советы стали помогать.....Всё оказалось так просто!
SVN, огромное спасибо за помощь, все мои вопросы решились... Я перепутал вывод кнопки, поэтому ничего не работало... как только разобрался и подключил кнопку на нужный пин - сразу попёрло.....появилась движуха на все изменения в программе и советы стали помогать.....Всё оказалось так просто!
|
|
|
 |
Добавлено: 30 окт 2015, 09:58 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Ну и не забываем об [url=http://www.forum.getchip.net/viewtopic.php?f=16&t=231]основных рекомендациях[/url] при написании любой программы. [quote]На оба вопроса =да[/quote] Тогда попробуй писать программы по такому принципу:
Начало программы 1 Указываешь адрес стека. 2 Настраиваешь использующие порты МК. 3 Очищаешь используемые переменные SRAM и используемые регистры. 4 Настраиваешь необходимую встроенную периферию. 5 Разрешаешь общее прерывание. 6 Ставишь метку. 7 Далее выполняется алгоритм необходимой программы. 8 После выполнения всего цикла программы, переход на пункт 6 (Метка).
Перепиши программу после изучения… посмотрим пойдёт ли изучение на пользу.
В новом алгоритме разберём по пунктам, если будет что не так. Но нужно понимать – я не программист, и то, что я буду писать [u]это исключительно моё мнение[/u], которое может не совпадать с профессиональными рекомендациями. ;)
|
|
|
 |
Добавлено: 27 окт 2015, 17:25 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
На оба вопроса =да, так что пошёл лопатить интернет по поводу работы прерываний и спящего режима.... Спасибо за описание того, что я настроил на нормальном языке... 
На оба вопроса =да, так что пошёл лопатить интернет по поводу работы прерываний и спящего режима.... Спасибо за описание того, что я настроил на нормальном языке...:)
|
|
|
 |
Добавлено: 27 окт 2015, 16:55 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Вот твой алгоритм программы: [quote]алгоритм устройства такой: подаём питание- тинька уходит в спячку, тока не кушает... жмём на пимпу 1 раз- включается и запускается основное тело программы, которое работает около 30 мин(с возможностью выключения той же кнопкой- если нажимаем второй раз ), после отработки алгоритма само выключается. все выключения до полной спячки...чтоб батарейку не гнобить....[/quote]
А вот, что ты написал по пунктам:
Начало программы. 1 Указываешь адрес стека. 2 Разрешаешь спящий режим. Выбираешь режим сна Idle Mode. 3 Настраиваешь порт РВ0. 4 Ставишь метку-1. 5 Настраиваешь порт РВ1, РВ3, РВ4. 6 Разрешаешь глобальные прерывания. 7 Ставишь метку-2. 8 Разрешаешь внешнее прерывание по INT0 (при лог 0). 9 Запускаешь инструкцию SLEEP (МК «засыпает»). 10 Запрещаешь внешнее прерывание по INT0 11 Подпрограмма «Пауза». 12 Проверка флага «Flag» (если флаг = 0 переход на метку – 2). 13 Включаешь светик, после паузы выключаешь. 14 Работа основной программы с проверкой порта РВ0… если вход РВ0 равен 0, переход на метку-1, когда на РВ0 появится лог 1. 15 Переход на пункт 4 (Метка-1).
В зависимости от того, какие цели ты преследуешь ( - нужна данная программа и более ничего; - хочу научится писать программы для МК и в дальнейшем.), от того мой ответ будет отличатся. А пока, вот какой совет: 1 Внимательно посмотри выводы МК (ATtiny13). Внимательней изучи внешнее прерывание по INT0. 2 Почитай про режимы сна МК (со всеми рекомендациями). Как будешь готов, продолжим по твоему алгоритму (программе)...
|
|
|
 |
Добавлено: 27 окт 2015, 16:41 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Переписал всё снова.... так мне вроде бы понятнее, тем не менее не могу заставить работать. Посмотрите пожалуйста, где что не так... 
Переписал всё снова.... так мне вроде бы понятнее, тем не менее не могу заставить работать. Посмотрите пожалуйста, где что не так... :)
|
|
|
 |
Добавлено: 27 окт 2015, 12:59 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
А куда без бубна то? Мы, блин, ТУТ живём  .... тело программы - пока подёргать выводами.... рабочее тело написано пару лет назад, полностью на стрелочках и задержках, включается втыканием адаптера в сеть -... банальный электромассаж на спину....но ПОМОГАЕТ!!! Делал его ещё на 561ЛА7, и крутил ручечки....  Но хочется по уму.....
А куда без бубна то? Мы, блин, ТУТ живём :) .... тело программы - пока подёргать выводами.... рабочее тело написано пару лет назад, полностью на стрелочках и задержках, включается втыканием адаптера в сеть -... банальный электромассаж на спину....но ПОМОГАЕТ!!! Делал его ещё на 561ЛА7, и крутил ручечки.... :) Но хочется по уму.....
|
|
|
 |
Добавлено: 23 окт 2015, 10:16 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
На какой частоте тактируется МК? Что делает основная программа? То что ты назвал «тело программы» - это и есть основная программа, или это просто подёргать выходы? По кнопке: данный вариант тебе не подойдёт. Так как твоя задача, от кнопки будить МК. То есть нужно использовать внешнее прерывание по INT, как в первом варианте. Иначе можешь не разбудить МК. Но написать программу для кнопки так, чтобы работало как надо, без сбоев. В общем, изучи вначале сам МК (как им управлять). Только потом садись за программу. Иначе будешь устраивать пляски с бубном. 
На какой частоте тактируется МК? Что делает основная программа? То что ты назвал «тело программы» - это и есть основная программа, или это просто подёргать выходы?
По кнопке: данный вариант тебе не подойдёт. Так как твоя задача, от кнопки будить МК. То есть нужно использовать внешнее прерывание по INT, как в первом варианте. Иначе можешь не разбудить МК. Но написать программу для кнопки так, чтобы работало как надо, без сбоев.
В общем, изучи вначале сам МК (как им управлять). Только потом садись за программу. Иначе будешь устраивать пляски с бубном. :D
|
|
|
 |
Добавлено: 22 окт 2015, 15:48 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
проект пока ещё совсем в "проекте",  Поскольку предыдущий вариант был "не по феншую" , нашёл в соседней теме просто кнопку, без прерываний.... ,благополучно набил в билдере, проверил, работает. возникло два вопроса- как присоединить тело программы к этой кнопке, и как переделать светодиод , чтоб при нажатии на полсек включался и затем выключался? ну и сном пока не занимался, иду последовательно...
проект пока ещё совсем в "проекте", :) Поскольку предыдущий вариант был "не по феншую" , нашёл в соседней теме просто кнопку, без прерываний.... ,благополучно набил в билдере, проверил, работает. возникло два вопроса- как присоединить тело программы к этой кнопке, и как переделать светодиод , чтоб при нажатии на полсек включался и затем выключался? ну и сном пока не занимался, иду последовательно...
|
|
|
 |
Добавлено: 22 окт 2015, 09:51 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Вот теперь понятно, что к чему. Теперь давай свой проект, бум смотреть, что не так. 
Вот теперь понятно, что к чему. Теперь давай свой проект, бум смотреть, что не так. ;)
|
|
|
 |
Добавлено: 20 окт 2015, 17:17 |
|
|
 |
|