Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

atMega8: Не работает PORTC

Вт июл 17, 2012 17:57:05

Мяуу вам, уважаемые коты!
Возникла такая проблема:
Mega8 - задействованы все порты т.е. PORTB, PORTC, PORTD. PORTB частично начтроен на выход, а PORTC весь на выход. Но в PORTB единички проходят как надо, а вот в PORTC вообще ничего. Он ника и на на что не реагирует. То есть ни один PIN PORTC не реагирует когда я пытаюсь отправить в него 1.
JTAG в Меге8 нет, питание я подал как положено: на все линии для этого предназначеные.
ОЧЕНЬ большое подозрение, что это именно програмная ерунда, а не глюк микрухи, тем более что она новая. Програмирую я в CVAVR.
Подскажите что я не правильно делаю?
Спасибо всем огромное!

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 18:09:32

DerMeister писал(а):ОЧЕНЬ большое подозрение, что это именно програмная ерунда, а не...

Есть еще большее подозрение что нужно привести код..

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 18:11:49

На AVcc подать питающие +5 вольт.

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 18:26:15

Напряжения все подал. Код - просто проверка входящих пинов и вывод значения на соответстыующие выходящие. Проще не придумаешь! С PORTB ведь работает...
Какие будут соображения?

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 18:28:21

DerMeister писал(а):..Код - просто..
Какие будут соображения?

Вы издеваетесь? Сами пишете что проблема, вероятно, в коде, а не приводите. Тут не форум экстрасенсов.

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 18:36:03

Вот тестовая програмуля.
Какой бы разряд порта С я не подставлял вместо PORTC.1 - глухо... В тоже время с PORTB.1=1; - работает.
Прога во вложении.
Я же говорю элементарщина.
В чем же может быть загвоздка. Неужели просто руки у меня настолько неудобные....
Вложения
KOD.txt
(2.62 KiB) Скачиваний: 567

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 19:45:59

А так?:
Код:
PORTD=0x40;
....
      if(PIND.6==1)
       {PORTC.1=1;
       delay_ms(25);
       PORTC.1=0;
       delay_ms(25);
}

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 20:11:41

Простите, я в програмировании новичок (потому и пользуюсь пока мастером начального кода в CVAVR), а чего мы добьемся сделав как вы советуете?
Схемку распаял немного, сейчас запаяю, попробую запрограмировать.
Спасибо за совет!

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 21:16:26

В программе криминила не видно. Только подтяжка на PD6 нужна, конечно. Косяк где-то в другом, если на другом порту работает..

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 21:35:17

Еще раз проверить: оба Gnd на землю, Vcc и AVcc к +5 вольтам.

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 23:23:12

Да, подтяжку я сделал по всем портам на входах. И RESET к плюсу подтянул даже. Так, на всякий случай.
По питанию все сделал как положено - GND оба на минус, Vcc и AVcc - к плюсу. ХЗ чего за ерунда такая.
Наверно действительно контроллет какой-то контрафактный попался... Хотя странно это... :cry:
Буду Mega16 покупать, а то на этом все равно мне портов не хватает.
Спасибо Вам всем ОГРОМНОЕ за помощь! :beer:

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 23:25:38

А выложите на всякий случай хекс еще - чтоб для чистоты эксперимента не компилировать, в протеусе проверю...

Re: atMega8: Не работает PORTC

Вт июл 17, 2012 23:47:31

В AVR Studio и в Proteus работает как надо (что для такоо рода сложности программы не удивительно), а вот в железе...
Я сейчас на работе, пока не могу ничего поделать - буду дома закину hex. Только есть ли смысл, если я уже где только не эмулировал - все гуд.
Да говорю микруха пиратская небось какая. куплю новую, и хай с ним. Портов а то мало - чего заморачиваться тогда.
Спасибо еще раз!!!

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 18:40:41

Здравствуйте опять! Подскажите почему на Mega8 програмно не подтягиваются к плюсу 3 разряда PORTB - 3, 4, 5?
Остальные 5 разрядов на выход настрены.
Может компилятор глючит или все-таки я?

Вот инициализация портов CVAVR:

// Input/Output Ports initialization
// Port B initialization
// Func7=Out Func6=Out Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=P State4=P State3=P State2=0 State1=0 State0=0
PORTB=0x38;
DDRB=0xC7;

// Port C initialization
// Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State6=P State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x40;
DDRC=0x3F;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTD=0xFF;
DDRD=0x00;

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 19:19:35

Инициализация верная. Как определили, что не подтягивается?

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 19:22:50

По схеме вижу. Эти три пина в воздухе висят как-будто. На касание пальца реагируют - наводки сети. Подключаю внешний резистор 10кОм - начинает функционировать как задумано. Чего за блин...

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 19:30:57

Блок питания прежний используете, что и в предыдущем случае?

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 19:35:06

Да, питаю все от одного блока - стабильный 5В.

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 19:51:09

Попробуйте просто от батареек.

Re: atMega8: Не работает PORTC

Чт июл 19, 2012 20:08:08

От 4,3В вобще не работае ничего, щас еще раз попробую.
А еще комп у меня видит и читает контроллер даже когда я на него питания не подаю! Разве так бывает?! Программирую через LPT, пять проводов. Прогой Uniprof. Правда вот при программировании уже ошибку выдает :)
Тема закрыта