|
|
  |
atMega16 |
|
|
|
Apr 4 2011, 17:25
|
Группа: Новичок
Сообщений: 1
Регистрация: 4-04-11
Пользователь №: 64 125

|
Помогите, пожалуйста, написать программу для решения поставленной задачи:
Организовать подсчёт нажатий на кнопку SW3, подключённую к PB1, и выдачу 4-битного результата в двоичном коде на выводы PB4, PB3, PB2, PB0 (светодиоды VD4-VD1).
Используется компилятор AVRstudio. Буду благодарен, я сам чайник, но хочу разобраться на конкретном примере.
|
|
|
|
|
Apr 4 2011, 17:34
|

Участник

Группа: Участник
Сообщений: 54
Регистрация: 13-01-09
Пользователь №: 43 304

|
Ассемблер: -вектора прерываний -инициализация портов -порты ввода/вывода все примеры есть в даташите -программный антидребезг пока не рассматриваю, сейчас лучше аппаратный (кондер на выводы кнопки) а если серьезно, то тебе в обучалку какую-нибудь или в раздел для начинающих.
|
|
|
|
|
Apr 4 2011, 18:11
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Пин PB1 на контроллере этого типа является по совместительству счетным входом 1-го таймера (Timer/Counter1 External Counter Input). Отсюда следует самый простой алгоритм решения задачи: Timer1 программируется в режим счета внешних импульсов, а младшие 4 бита двоичного счетчика этого таймера оправляются в порт зажигать светодиоды.
Косвенным свидетельством того, что задача решается именно так, является использование для кнопки именно PB1, несмотря на то, что порядок пинов, зажигающих светодиоды при этом нарушается: PB4, PB3, PB2, PB0, где PB1 пропущен. Если бы задача решалась периодическим опросом пина с кнопкой, то не имело бы смысла устраивать чехарду с порядком пинов.
Поскольку автор топика утверждает, что он в этом деле чайник, то очевидно, что данная задача чисто учебная. В противном случае автор должен был бы знать причину, по которой ему приспичило использовать для кнопки именно PB1, но тогда бы он и сам знал, как эта задача решатся.
|
|
|
|
|
Apr 4 2011, 19:42
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
Как уже стало понятно, решений может быть много  Особенно, разнообразия вносит реализация антидребезга (тут у каждого свой рояль в кустах  ) Вы хоть уточните, на чем программка должна быть (C, ASM) и какой алгоритм Вы хотите - простой цикл, с использованием таймера+прерываний итп.
|
|
|
|
|
Apr 7 2011, 23:06
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Xenia @ Apr 5 2011, 00:10)  Конечно, учебная. Это - лабораторная работа  И вот уже три форума (включая наш) во всю над нею корпят: http://forum.cxem.net/index.php?showtopic=84107Мда... к чему котится мир, студент может зайти на форум, найти добродушного дурачка добрячка, готового на двух языках радостно решить учебную задачку, - в результате лаба сдана, знаний 0.... При этом добрячку написавшему программу, можно и "спасибо" не говорить... эх  Всё таки еще раз убеждаюсь Electronix самый адекватный форум, тут народ хоть понимает, что студентам решение лаб/курсовиков на блюдечке подносить нельзя, иначе завтра не будет специалистов. Xenia  за проницательность! еще в первом посте разгядели не только, что задачка учебная, но и суть работы - изучение работы таймера. Цитата(domowoj @ Apr 5 2011, 04:47)  Никто не собирается писАть ТС програмульку, Не поверите, таки нашлись уникумы по ссылкам выше... написали на двух языках... думаю и на четырех бы написали. Идтить колотить!
|
|
|
|
|
Apr 8 2011, 19:14
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 8-12-09
Пользователь №: 54 138

|
 Раз уж пошли разоблачения, то вставлю свои 3 копейки. Преподаватели, которые дали это задание, Вы читаете наш форум? Отзовитесь! Если нет, то вы безнадежно отстали от жизни. Грош вам цена. Немедленно на пенсию. Уже достали ваши выпускники с красными(!) дипломами, которые не могут даже месячный испытательный срок выдержать. Похоже система образования, которая в прежние времена была одной из лучших в мире, погибла (рухнула, сдохла). Обидно. Радует то, что остались еще жаждущие знаний молодые люди, которые самостоятельно грызут орешек знаний. Жаль, что современный университетский планктон ничего им дать не может. Сорри, за оффтоп.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|