Страница 1 из 2
atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 17:57:05
DerMeister
Мяуу вам, уважаемые коты!
Возникла такая проблема:
Mega8 - задействованы все порты т.е. PORTB, PORTC, PORTD. PORTB частично начтроен на выход, а PORTC весь на выход. Но в PORTB единички проходят как надо, а вот в PORTC вообще ничего. Он ника и на на что не реагирует. То есть ни один PIN PORTC не реагирует когда я пытаюсь отправить в него 1.
JTAG в Меге8 нет, питание я подал как положено: на все линии для этого предназначеные.
ОЧЕНЬ большое подозрение, что это именно програмная ерунда, а не глюк микрухи, тем более что она новая. Програмирую я в CVAVR.
Подскажите что я не правильно делаю?
Спасибо всем огромное!
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 18:09:32
Goodefine
DerMeister писал(а):
ОЧЕНЬ большое подозрение, что это именно програмная ерунда, а не...
Есть еще большее подозрение что нужно привести код..
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 18:11:49
pyzhman
На AVcc подать питающие +5 вольт.
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 18:26:15
DerMeister
Напряжения все подал. Код - просто проверка входящих пинов и вывод значения на соответстыующие выходящие. Проще не придумаешь! С PORTB ведь работает...
Какие будут соображения?
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 18:28:21
Goodefine
DerMeister писал(а):..Код - просто..
Какие будут соображения?
Вы издеваетесь? Сами пишете что проблема, вероятно, в коде, а не приводите. Тут не форум экстрасенсов.
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 18:36:03
DerMeister
Вот тестовая програмуля.
Какой бы разряд порта С я не подставлял вместо PORTC.1 - глухо... В тоже время с PORTB.1=1; - работает.
Прога во вложении.
Я же говорю элементарщина.
В чем же может быть загвоздка. Неужели просто руки у меня настолько неудобные....
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 19:45:59
pyzhman
А так?:
Код: Выделить всё
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
DerMeister
Простите, я в програмировании новичок (потому и пользуюсь пока мастером начального кода в CVAVR), а чего мы добьемся сделав как вы советуете?
Схемку распаял немного, сейчас запаяю, попробую запрограмировать.
Спасибо за совет!
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 21:16:26
Goodefine
В программе криминила не видно. Только подтяжка на PD6 нужна, конечно. Косяк где-то в другом, если на другом порту работает..
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 21:35:17
pyzhman
Еще раз проверить: оба Gnd на землю, Vcc и AVcc к +5 вольтам.
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 23:23:12
DerMeister
Да, подтяжку я сделал по всем портам на входах. И RESET к плюсу подтянул даже. Так, на всякий случай.
По питанию все сделал как положено - GND оба на минус, Vcc и AVcc - к плюсу. ХЗ чего за ерунда такая.
Наверно действительно контроллет какой-то контрафактный попался... Хотя странно это...
Буду Mega16 покупать, а то на этом все равно мне портов не хватает.
Спасибо Вам всем ОГРОМНОЕ за помощь!

Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 23:25:38
Goodefine
А выложите на всякий случай хекс еще - чтоб для чистоты эксперимента не компилировать, в протеусе проверю...
Re: atMega8: Не работает PORTC
Добавлено: Вт июл 17, 2012 23:47:31
DerMeister
В AVR Studio и в Proteus работает как надо (что для такоо рода сложности программы не удивительно), а вот в железе...
Я сейчас на работе, пока не могу ничего поделать - буду дома закину hex. Только есть ли смысл, если я уже где только не эмулировал - все гуд.
Да говорю микруха пиратская небось какая. куплю новую, и хай с ним. Портов а то мало - чего заморачиваться тогда.
Спасибо еще раз!!!
Re: atMega8: Не работает PORTC
Добавлено: Чт июл 19, 2012 18:40:41
DerMeister
Здравствуйте опять! Подскажите почему на 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
pyzhman
Инициализация верная. Как определили, что не подтягивается?
Re: atMega8: Не работает PORTC
Добавлено: Чт июл 19, 2012 19:22:50
DerMeister
По схеме вижу. Эти три пина в воздухе висят как-будто. На касание пальца реагируют - наводки сети. Подключаю внешний резистор 10кОм - начинает функционировать как задумано. Чего за блин...
Re: atMega8: Не работает PORTC
Добавлено: Чт июл 19, 2012 19:30:57
pyzhman
Блок питания прежний используете, что и в предыдущем случае?
Re: atMega8: Не работает PORTC
Добавлено: Чт июл 19, 2012 19:35:06
DerMeister
Да, питаю все от одного блока - стабильный 5В.
Re: atMega8: Не работает PORTC
Добавлено: Чт июл 19, 2012 19:51:09
pyzhman
Попробуйте просто от батареек.
Re: atMega8: Не работает PORTC
Добавлено: Чт июл 19, 2012 20:08:08
DerMeister
От 4,3В вобще не работае ничего, щас еще раз попробую.
А еще комп у меня видит и читает контроллер даже когда я на него питания не подаю! Разве так бывает?! Программирую через LPT, пять проводов. Прогой Uniprof. Правда вот при программировании уже ошибку выдает
