Помогите разобраться с кодом на Си
Написал tema54rr дата Пт, 02/18/2011 - 16:42
Здравствуйте,
Есть контроллер Atmega8, возможно ли присвоить значение одной ножке микроконтроллера не трогая остальные? Т.е. хочется что то вроде PB0 = 1( или 0), а не PORTB = 0b00000001.
»
Объясни задачу, а именно что
Объясни задачу, а именно что происходит на других ногах???
Если другие ноги работают на прием данных то просто сконфигурируй изначально этот выход порта на вывод данных.
А вообще очень полезная програмулина есть BinHexDec в ней очень наглядно можно выставить состояния выводов порта. и сразу получить код для конфигурации порта.
Как вариант есть старый вид записи:
Задача состоит в следующем,
Задача состоит в следующем, соединить 2 проекта этого сайта управление RGB светодиодом и клавиатура 4х4 с дисплеем. Изначально реализовал управление RGB через ножки PB1,PB2,PB3. А в проекте с клавиатурой идет обнуление порта полностью PORTB=0x00; Нашел так же на сайте про порты ввода-вывода они могут быть частично сконфигурированы. Отсюда появился вопрос об частичном обнулении порта. После кода еще несколько вопросов.
Почему при отладке нет перемещение в вечный цикл?
Где можно прочитать про объявление PINxy порта как переменные?
Где можно прочитать о прерываниях по переполнению или книгу посоветуйте толковую с примерами на С
Заранее спасибо всем откликнувшимся.
Сбрасивыть пин
Сбрасивыть пин порта:
Поднять пин:
Тоже самое применимо к регистрам DDRB, DDRD.
При отладке курсор не перемещается в вечный цикл из-за того, что не сработало условие if ((i!=4)&&(j!=4))
Чтобы заставить загнать курсор в вечный цикл - следует вручную повыставлять в эмуляторе состояние входов как будто была нажата клавиша. Это разумеется нужно делать перед перед самой проверкой условия.
Это я не ножку переименовал, это переименован регист таймера 1.
Ножки с помощью дефайнов не советую переименовывать.
Про прерывания можно почитать:
Евстифеев. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL
и как мне рекомендовали:
"Применение МК АВР.Схемы, алгоритмы, программы" Н. В. Баранов.