roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 06:27

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 13 окт 2008, 07:29 
Не в сети
Аватара пользователя

Зарегистрирован: 24 сен 2008, 03:17
Сообщения: 8
Откуда: Хабаровск
Вот разбираюсь с протеусом и CVAVR. Хочу штобы при замыкании SW1 зажигался D1 и соответственно при размыкании SW1 светодиод D1 гас (понимаю задача дурацкая но всетаки:).
В CodeVisionAVR написал следующее:

Код:
while (1)
{
// Place your code here
if (PORTA.4==0)
         {
          PORTA.0=1;
         }
else
         {
          PORTA.0=0;
         };     
};


Нога PORTA.0 - выход, нога PORTA.4 - вход. Настраивал визардом.

При симуляции когда я включаю выключаю переключатель SW1 состосяние ноги PORTA.0 не меняется (делал код циклического моргания светодиода так он мигал:). Такое впечатление что программа не видет изменений на ноге PORTA.4. Почему не работает?


Вложения:
fig1.JPG
fig1.JPG [ 43.64 КиБ | Просмотров: 2472 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уважаемые Гуру, помогите! Что я делаю не так?
СообщениеДобавлено: 13 окт 2008, 07:49 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Посмотрите откуда надо читать что на ножке МК - "Устройство AVR" - http://avr123.nm.ru/02.htm

В реальном устройстве в цикл можно добавить паузу 30-70 мСек для устранения влияния дребезка реальных контактов.
Пауза - delay - "Си для МК AVR" - http://avr123.nm.ru/05.htm

Как ПРАВИЛЬНО подключать светодиод ! - http://avr123.nm.ru/03.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уважаемые Гуру, помогите! Что я делаю не так?
СообщениеДобавлено: 13 окт 2008, 08:27 
Не в сети
Аватара пользователя

Зарегистрирован: 24 сен 2008, 03:17
Сообщения: 8
Откуда: Хабаровск
Вот файло. Четко видно - переключатель SW1 соединяет ножку порта с землей. Если соединен, PORTD.0,1,2,3,4,5 = 0, разомкнут 1. Я правильно понял схему?


з.ы.: про подключение светодиода, да какая разница нет резистора, в симуляторе не сгорит...


Вложения:
z3_timer.png
z3_timer.png [ 62.8 КиБ | Просмотров: 2608 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уважаемые Гуру, помогите! Что я делаю не так?
СообщениеДобавлено: 13 окт 2008, 09:01 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
itor писал(а):
Вот файло. Четко видно - переключатель SW1 соединяет ножку порта с землей. Если соединен, PORTD.0,1,2,3,4,5 = 0, разомкнут 1. Я правильно понял схему?

Правильно. НО там к схеме еще и исходнички имеются - гляньте ! как прочитайть что замкнуто.

itor писал(а):
з.ы.: про подключение светодиода, да какая разница нет резистора, в симуляторе не сгорит...
Не кошерно ИМХО. Не по-спортивному.

Добавлено спустя 25 минут 10 секунд:
Вот - распечатайте !

Изображение

Вот смотрите:

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Уважаемые Гуру, помогите! Что я делаю не так?
СообщениеДобавлено: 13 окт 2008, 09:42 
Не в сети
Аватара пользователя

Зарегистрирован: 24 сен 2008, 03:17
Сообщения: 8
Откуда: Хабаровск
Ах вот оно что! Ну наконец-то дошло!

1. Если нога PA0 - выход то:
- в соответствующем регистре DDR (для этой ноги DDRA.0) стоит 1 (это и означает что нога выход);
- для изменения 1/0 на ноге надо писать: PORTA.0=1; или PORTA.0=1 (т.е. в регистр PORTA.№ для ноги PA№ регистр PORTB.№ для ноги PB№ итд, но при соблюдении условия выше);

2. Если нога PA0 - вход то:
- в соответствующем регистре DDR (для этой ноги DDRA.0) стоит 0 (это и означает что нога вход);
далее есть два варианта:
- если в соответствующем DDR, бите PORT стоит 0 то вход будет без подтяжки, чтобы получить на нем "1" нужно подать на него высокий логический сигнал (ну Vсс или +5V или около того);
- если в соответствующем DDR, бите PORT стоит 1 то вход будет c подтяжкой, чтобы получить на нем "1" нужно его просто заземлить.

Примерно как в файле (PA4 - с подтяжкой, PA7 - без подтяжки)
Все правильно?


При этом программа будет выглядеть так примерно:
Код:
if (PINA.4==0)
         {
          PORTA.0=0;
         }
else
         {
          PORTA.0=1;
         };
             
if (PINA.7==0)
         {
          PORTA.1=0;
         }
else
         {
          PORTA.1=1;
         }


Вложения:
fig2.JPG
fig2.JPG [ 52.47 КиБ | Просмотров: 2468 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 13 окт 2008, 10:05 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Поменяв порядок управления светодиодом можно сделать поэлегантней условие у IF

Код:
if (PINA.4)
         {
          PORTA.0=1;
         }
else
         {
          PORTA.0=0;
         };

delay_ms(50);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 27 окт 2008, 04:07 
Выложи свой исходник,и HEX файл.Собрал твою схему не че не работает :(


Вернуться к началу
  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 31 янв 2009, 21:18 
Не в сети
Аватара пользователя

Зарегистрирован: 21 сен 2006, 22:42
Сообщения: 76
Откуда: М.О.
Не пойму что за бред с кнопкой. Как описл товарищ двумя постами выше не получается, у меня почему-то не зависит от значения PORT. И получается так(см рис.). А необходимо сделать зависимость не от контакта с землёй а от контакта с VCC. Может последовательность DDR и PORT не та или еще чего ??? Второй день голову ломаю. :RTFM:


Вложения:
ХЗ.JPG
ХЗ.JPG [ 19.81 КиБ | Просмотров: 2418 ]

_________________
vivere militare est
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 31 янв 2009, 22:00 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
"0" на входе AVR возможно сделать только подав на нее ВНЕШНИЙ сигнал "0"
смотрите "Устройство AVR" - http://avr123.nm.ru/02.htm
Например подключив к ножке резистор 10 кОм на землю.

Главное между ножкой и кнопкой резисторы поставь 150-470 ом - а то пока будешь голову ломать случайно и AVR пожгешь.


Последний раз редактировалось avr123.nm.ru 01 фев 2009, 12:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 01 фев 2009, 10:17 
Не в сети
Аватара пользователя

Зарегистрирован: 21 сен 2006, 22:42
Сообщения: 76
Откуда: М.О.
Да PIN. т.е. не смотря на то какое значчение у PORT, PIN равен еденице при:
1) свободной ноге (!!!)
2) при замкнутой ноге на VCC
А нулю он равен только при замыкании на землю.

А неообходимо реальзовать:
1) 0 при свободной ноге
2) 1 при замкнутой на VCC

Таблицу раз 10 пересмотрел,перечитал.

P.S. резисторы стоят

_________________
vivere militare est


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 01 фев 2009, 10:24 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
а у ноги подтяжка внутреняя точно отключена?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 01 фев 2009, 10:49 
Не в сети
Аватара пользователя

Зарегистрирован: 21 сен 2006, 22:42
Сообщения: 76
Откуда: М.О.
Если Я правильно понял и подяжка- это что-то вроде соединения ноги с питанием (внутри МК), то нет она не отключена на ноге питание есть и , видать, поэтому он считает, что при свободной ноге там 1.
Как Я понял подтяжка отключается при помощи команды PORTx=0; ? - но почему-то изменения значения PORT результата не дает, на ноге всеравно +4.5 В

_________________
vivere militare est


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 01 фев 2009, 10:53 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
вот поэтому там и единица
1. конфигурируешь ногу на выход.
2. высталяешь на ней ноль.
3. конфигурируешь ногу на вход.

шлешь один рубль мне на счёт :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 01 фев 2009, 11:13 
Не в сети
Аватара пользователя

Зарегистрирован: 21 сен 2006, 22:42
Сообщения: 76
Откуда: М.О.
((( Отличная идея но увы не работат:
Код:
DDRE=0xFF;
PORTE=0;

тут всё отлично нога выход ставим на нее 0, проверяю вольметром так и есть.
Код:
DDRE=0xFF;
PORTE=0;
DDRE=0;
PORT=0;

А после этого кода на ноге Е уже +4.5В. (((
Проблема точно не в МК т.к. на двух платах тоже самое.
А может быть проблема в таинственных фьюзах ? Я с ними еще не работал, а тут прошиваю другим программатором, и фиг знает как они там настроены...

_________________
vivere militare est


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка, светодиод, ATmega16 и CVAVR - Что я делаю не так?
СообщениеДобавлено: 01 фев 2009, 11:17 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
а ты чё, JTAG не отключил чтоли?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO