Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATMega16L не могу установить пин в 0 или 1
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Savrik
Какие-то непонятки, бьюсь уже вторые сутки... В общем, сразу после монтажа устройство не заработало.. методом тыка обнаружил, что порты ведут себя довольно странно. Например, инициализирую МК только как порты на выход, по умолчанию 0. После инициализации устанавливаю пин в 1, при этом, если смотреть по схеме, на самом пине 4,6 В(при 5.1 на входе), а после резистора(который висит в воздухе!) 0.6 Вольта.. Взял другой порт, та же ситуация.. Если включить SPI, то можно установить 1, но после сброса в 0 на выходе будет 4.6 В... При этом в одном порте стоит светодиод, и он исправно работает, а другой пин не работает.. Я грешил на компилятор cavr, перешел на avr-gcc, все так же.. Выход один - перепаивать?
aaarrr
Как-то сумбурно очень.

Цитата(Savrik @ Jan 23 2010, 00:11) *
...После инициализации устанавливаю пин в 1, при этом, если смотреть по схеме, на самом пине 4,6 В(при 5.1 на входе)

После таких "чудес" надо сразу разбираться с резисторами (проверить, не оборван ли он, или не подключен ли к земле с другой стороны) и средствами измерения.
Savrik
Кажется, нашел, откуда ноги растут..
Когда я делаю так:
Код
void main(void)
{
while (1)
      {
      if (KEY_MINUS == 0)
        {
            PORTC.6 = 0;
            PORTC.7 = 0;  
           PORTB = 0x00;
        }
      if (KEY_ENTER == 0)
        {
            PORTC.6 = 1;
            PORTC.7 = 1;
            PORTB = 0xFF;
        }
      };  
}

то все отлично, везде нули, после нажатия кнопки ентер везде 1. Но! как только включаю SPI
Код
void main(void)
{
SPCR=0x50;
SPSR=0x00;

while (1)
      {
      if (KEY_MINUS == 0)
        {
            PORTC.6 = 0;
            PORTC.7 = 0;  
           PORTB = 0x00;
        }
      if (KEY_ENTER == 0)
        {
            PORTC.6 = 1;
            PORTC.7 = 1;
            PORTB = 0xFF;
        }
      };  
}

Сразу же на PORTC.6 и PORTB.5 по 4.5 В. На плате эти контакты рядом, хотя видимого контакта нету.. Нет осциллографа, что-то в той области нечисто....
Александр Куличок
C6 и В5 не закорочены? В5 при включенном SPI - выход, который "сигналом" PORTB.5 не контролируется. Попробуйте независимо поуправлять этими портами при отключенном SPI, если нет рядом осциллографа. Хотя тут и тестера достаточно.
Savrik
Господа, прошу прощения за беспокойство и спасибо за помощь, вопрос закрыт) между дорожками обнаружено инородное телоsmile.gif
К модераторам - тему можно закрыть или удалить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.