Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
13.01.2009, 13:35
|
|
Прописка
Регистрация: 05.05.2007
Сообщений: 201
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Atmega 16 не работает кнопка через порт PC4 ?
На порту РС4 установлена кнопка которая просто коротит порт на землю, порт настроен на вход с внутренними нагрузочными резисторами. PORTC = 0b00111111; DDRC = 0b00000000;
Проблема в том что на РС 4 постоянно 1,25В, при нажатой кнопке 0В, при напряжении на порте 1,25В контроллер принимает решение что кнопка нажата.
Порт РС4 является также выходом интерфейса JTAG, в Понипрог галочка напротив GTAGEN не стоит, значит JTAG отключён? Также отключил JTAG программно MCUCSR|=_BV(JTD);
Может, кто сталкивался с подобной проблемой, подскажите, как заставить порт нормально работать?
|
|
|
|
13.01.2009, 15:03
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Не знаю что означает в пони галочка - единицу или "запрограммировано". Как вариант - переключите этот фуз на противоположный и сравните результат. Делов-то на две минуты.
|
|
|
|
13.01.2009, 15:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Atmega 16 не работает кнопка через порт PC4 ?
Сообщение от uriy-ch
|
как заставить порт нормально работать?
|
Посмотреть о программированиии AVR и фьюзов
http://avr123.nm.ru/07.htm
и выключить JTAG
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
13.01.2009, 20:24
|
|
Прописка
Регистрация: 05.05.2007
Сообщений: 201
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от nml
|
Не знаю что означает в пони галочка - единицу или "запрограммировано". Как вариант - переключите этот фуз на противоположный и сравните результат. Делов-то на две минуты.
|
Проверил всё осталось без изменений. Как было 1,25В так и осталось. Галочка в Понипрог означает запрограммировано, т.е. соответствующий бит в Атмеге установлен в 0.
Да к тому же я JTAG программно отключаю. Может не в JTAG вообще проблема.
Для проверки целостности внутренних защитных стабилитронов, подал через резистор номиналом 220 Ом плюс пять вольт на порт РС 4 минус на общую шину, так вот на порте РС 4 напряжение 3,68 В, а на соседнем РС3 1,63В, получается что внутрисхемный диод между портом и землёй порта РС4 целый, верхний под вопросом, или перегорел или его там нет.
|
|
|
|
13.01.2009, 22:13
|
|
Прописка
Регистрация: 05.05.2007
Сообщений: 201
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
int main(void)
{
PORTC = 0b00111111;
DDRC = 0b00000000;
MCUCSR|=_BV(JTD);
while(1)
{
if (bit_is_clear(PINC,PC4))
PORTD|=_BV(PD1); // Подключен светодиод
else
PORTD&=~_BV(PD1);
}
}
Написал программку для проверки порта, всё осталось по прежнему, порт уверенно сидит в 1,26В, видать я что-то в нутрии МК все-таки подпалил. Придётся изыскивать другой порт.
|
|
|
|
13.01.2009, 23:09
|
|
Частый гость
Регистрация: 02.11.2006
Сообщений: 33
Сказал спасибо: 1
Сказали Спасибо 14 раз(а) в 5 сообщении(ях)
|
Установка портов осуществляетсяв обратном порядке.
Сначала конфигурация DDRC = ..,
потом порт PORTC = ..
|
|
|
|
14.01.2009, 00:29
|
|
Прописка
Регистрация: 05.05.2007
Сообщений: 201
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Не помогло.
|
|
|
|
14.01.2009, 00:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от leonidk
|
Установка портов осуществляетсяв обратном порядке.
Сначала конфигурация DDRC = ..,
потом порт PORTC = ..
|
Что за БРЕДЯТИНА ??? !!!
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
14.01.2009, 00:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
"Устройство микроконтроллера AVR на русском языке"
http://www.avr123.nm.ru/02.htm
и библиотека книг по электронике для скачивания.
Ааааа ... теперь все ясно !
Не читание Даташита и моего краткого курса дают о себе знать ...
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
14.01.2009, 00:54
|
|
Частый гость
Регистрация: 02.11.2006
Сообщений: 33
Сказал спасибо: 1
Сказали Спасибо 14 раз(а) в 5 сообщении(ях)
|
По умолчанию (если в программе не установлен) порт конфигурируется как вход (я имею ввиду PORTD к которым подключены светодиоды.
1. Если светодиоды подключены через ограничивающий резистор к +5В, то
DDRC = 0b00000000;
PORTC = 0b00111111;
DDRD = 0b00000000;
PORTD = 0b00000000;
while(1)
{
if (bit_is_clear(PINC,PC4))
DDRD|=_BV(PD1); // бит 1 установлен, порт на выход
// на выходе 0, светодиод включен
else
DDRD&=~_BV(PD1); // бит 1 сброшен, порт на вход
// светодиод выключен
}
}
2. Если светодиоды подключены через ограничивающий резистор к GND, то
DDRC = 0b00000000;
PORTC = 0b00111111;
DDRD = 0b00000001;
while(1)
{
if (bit_is_clear(PINC,PC4))
PORTD|=_BV(PD1); // бит 1 установлен, порт на выход
// на выходе 1, светодиод включен
else
PORTD&=~_BV(PD1);// бит 1 сброшен, порт на выход
// на выходе 0, светодиод выключен
}
}
Нужно соблюдать полярность включения светодиода, ограничивающий резистор около 1 кОм (ток 2 - 3 мА).
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
PonyProg через СОМ порт - кабель
|
ramilkazus |
Микроконтроллеры, АЦП, память и т.д |
9 |
07.07.2009 12:17 |
Синхронизация mega8l с ПК через COM порт
|
ArtUrl1986 |
Микроконтроллеры, АЦП, память и т.д |
15 |
06.08.2008 07:14 |
У кого нибудь работает ICD2 RS232 версия, через шнурок USB2C
|
Ilya |
Микроконтроллеры, АЦП, память и т.д |
18 |
20.12.2006 19:19 |
Связь с Winamp'ом через InfraRed порт
|
Trojan |
Микроконтроллеры, АЦП, память и т.д |
3 |
17.06.2005 05:23 |
Плохо работает сенсорная кнопка
|
init_sub |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.12.2004 18:34 |
Часовой пояс GMT +4, время: 18:45.
|
|