Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Это я сразу увидел, что вывод INT0 ты перепутал, да и в сон отправлял не по Феншую. Сразу не хотел об этом писать, а лишь подтолкнул тебя советом в правильном направлении, чтобы сам попробовал разобраться. Это наилучший результат для понимания. Удачи в дальнейших проектах. ![Всё путём 8-)](./images/smilies/icon_cool.gif)
Это я сразу увидел, что вывод INT0 ты перепутал, да и в сон отправлял не по Феншую. Сразу не хотел об этом писать, а лишь подтолкнул тебя советом в правильном направлении, чтобы сам попробовал разобраться. Это наилучший результат для понимания. Удачи в дальнейших проектах. 8-)
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 30 окт 2015, 15:37 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
SVN, огромное спасибо за помощь, все мои вопросы решились... Я перепутал вывод кнопки, поэтому ничего не работало... как только разобрался и подключил кнопку на нужный пин - сразу попёрло.....появилась движуха на все изменения в программе и советы стали помогать.....Всё оказалось так просто!
SVN, огромное спасибо за помощь, все мои вопросы решились... Я перепутал вывод кнопки, поэтому ничего не работало... как только разобрался и подключил кнопку на нужный пин - сразу попёрло.....появилась движуха на все изменения в программе и советы стали помогать.....Всё оказалось так просто!
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 30 окт 2015, 09:58 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
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], которое может не совпадать с профессиональными рекомендациями. ;)
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 27 окт 2015, 17:25 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
На оба вопроса =да, так что пошёл лопатить интернет по поводу работы прерываний и спящего режима.... Спасибо за описание того, что я настроил на нормальном языке... ![Улыбается :)](./images/smilies/07-smile.gif)
На оба вопроса =да, так что пошёл лопатить интернет по поводу работы прерываний и спящего режима.... Спасибо за описание того, что я настроил на нормальном языке...:)
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 27 окт 2015, 16:55 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
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 Почитай про режимы сна МК (со всеми рекомендациями). Как будешь готов, продолжим по твоему алгоритму (программе)...
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 27 окт 2015, 16:41 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Переписал всё снова.... так мне вроде бы понятнее, тем не менее не могу заставить работать. Посмотрите пожалуйста, где что не так... ![Улыбается :)](./images/smilies/07-smile.gif)
Переписал всё снова.... так мне вроде бы понятнее, тем не менее не могу заставить работать. Посмотрите пожалуйста, где что не так... :)
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 27 окт 2015, 12:59 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
А куда без бубна то? Мы, блин, ТУТ живём ![Улыбается :)](./images/smilies/07-smile.gif) .... тело программы - пока подёргать выводами.... рабочее тело написано пару лет назад, полностью на стрелочках и задержках, включается втыканием адаптера в сеть -... банальный электромассаж на спину....но ПОМОГАЕТ!!! Делал его ещё на 561ЛА7, и крутил ручечки.... ![Улыбается :)](./images/smilies/07-smile.gif) Но хочется по уму.....
А куда без бубна то? Мы, блин, ТУТ живём :) .... тело программы - пока подёргать выводами.... рабочее тело написано пару лет назад, полностью на стрелочках и задержках, включается втыканием адаптера в сеть -... банальный электромассаж на спину....но ПОМОГАЕТ!!! Делал его ещё на 561ЛА7, и крутил ручечки.... :) Но хочется по уму.....
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 23 окт 2015, 10:16 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
На какой частоте тактируется МК? Что делает основная программа? То что ты назвал «тело программы» - это и есть основная программа, или это просто подёргать выходы? По кнопке: данный вариант тебе не подойдёт. Так как твоя задача, от кнопки будить МК. То есть нужно использовать внешнее прерывание по INT, как в первом варианте. Иначе можешь не разбудить МК. Но написать программу для кнопки так, чтобы работало как надо, без сбоев. В общем, изучи вначале сам МК (как им управлять). Только потом садись за программу. Иначе будешь устраивать пляски с бубном. ![Очень доволен :D](./images/smilies/icon_e_biggrin.gif)
На какой частоте тактируется МК? Что делает основная программа? То что ты назвал «тело программы» - это и есть основная программа, или это просто подёргать выходы?
По кнопке: данный вариант тебе не подойдёт. Так как твоя задача, от кнопки будить МК. То есть нужно использовать внешнее прерывание по INT, как в первом варианте. Иначе можешь не разбудить МК. Но написать программу для кнопки так, чтобы работало как надо, без сбоев.
В общем, изучи вначале сам МК (как им управлять). Только потом садись за программу. Иначе будешь устраивать пляски с бубном. :D
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 22 окт 2015, 15:48 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
проект пока ещё совсем в "проекте", ![Улыбается :)](./images/smilies/07-smile.gif) Поскольку предыдущий вариант был "не по феншую" , нашёл в соседней теме просто кнопку, без прерываний.... ,благополучно набил в билдере, проверил, работает. возникло два вопроса- как присоединить тело программы к этой кнопке, и как переделать светодиод , чтоб при нажатии на полсек включался и затем выключался? ну и сном пока не занимался, иду последовательно...
проект пока ещё совсем в "проекте", :) Поскольку предыдущий вариант был "не по феншую" , нашёл в соседней теме просто кнопку, без прерываний.... ,благополучно набил в билдере, проверил, работает. возникло два вопроса- как присоединить тело программы к этой кнопке, и как переделать светодиод , чтоб при нажатии на полсек включался и затем выключался? ну и сном пока не занимался, иду последовательно...
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 22 окт 2015, 09:51 |
|
|
![](images/spacer.gif) |
|
|
Заголовок сообщения: |
Re: Помогите написать кнпку на тини13 |
Цитата |
|
Вот теперь понятно, что к чему. Теперь давай свой проект, бум смотреть, что не так. ![Подмигивает ;)](./images/smilies/icon_e_wink.gif)
Вот теперь понятно, что к чему. Теперь давай свой проект, бум смотреть, что не так. ;)
|
|
|
![Сообщение Сообщение](./styles/subsilver2/imageset/icon_post_target.gif) |
Добавлено: 20 окт 2015, 17:17 |
|
|
![](images/spacer.gif) |
|