Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Вт июл 17, 2012 17:57:05
Мяуу вам, уважаемые коты!
Возникла такая проблема:
Mega8 - задействованы все порты т.е. PORTB, PORTC, PORTD. PORTB частично начтроен на выход, а PORTC весь на выход. Но в PORTB единички проходят как надо, а вот в PORTC вообще ничего. Он ника и на на что не реагирует. То есть ни один PIN PORTC не реагирует когда я пытаюсь отправить в него 1.
JTAG в Меге8 нет, питание я подал как положено: на все линии для этого предназначеные.
ОЧЕНЬ большое подозрение, что это именно програмная ерунда, а не глюк микрухи, тем более что она новая. Програмирую я в CVAVR.
Подскажите что я не правильно делаю?
Спасибо всем огромное!
Вт июл 17, 2012 18:09:32
DerMeister писал(а):ОЧЕНЬ большое подозрение, что это именно програмная ерунда, а не...
Есть еще большее подозрение что нужно привести код..
Вт июл 17, 2012 18:11:49
На AVcc подать питающие +5 вольт.
Вт июл 17, 2012 18:26:15
Напряжения все подал. Код - просто проверка входящих пинов и вывод значения на соответстыующие выходящие. Проще не придумаешь! С PORTB ведь работает...
Какие будут соображения?
Вт июл 17, 2012 18:28:21
DerMeister писал(а):..Код - просто..
Какие будут соображения?
Вы издеваетесь? Сами пишете что проблема, вероятно, в коде, а не приводите. Тут не форум экстрасенсов.
Вт июл 17, 2012 18:36:03
Вот тестовая програмуля.
Какой бы разряд порта С я не подставлял вместо PORTC.1 - глухо... В тоже время с PORTB.1=1; - работает.
Прога во вложении.
Я же говорю элементарщина.
В чем же может быть загвоздка. Неужели просто руки у меня настолько неудобные....
- Вложения
-
- KOD.txt
- (2.62 KiB) Скачиваний: 567
Вт июл 17, 2012 19:45:59
А так?:
- Код:
PORTD=0x40;
....
if(PIND.6==1)
{PORTC.1=1;
delay_ms(25);
PORTC.1=0;
delay_ms(25);
}
Вт июл 17, 2012 20:11:41
Простите, я в програмировании новичок (потому и пользуюсь пока мастером начального кода в CVAVR), а чего мы добьемся сделав как вы советуете?
Схемку распаял немного, сейчас запаяю, попробую запрограмировать.
Спасибо за совет!
Вт июл 17, 2012 21:16:26
В программе криминила не видно. Только подтяжка на PD6 нужна, конечно. Косяк где-то в другом, если на другом порту работает..
Вт июл 17, 2012 21:35:17
Еще раз проверить: оба Gnd на землю, Vcc и AVcc к +5 вольтам.
Вт июл 17, 2012 23:23:12
Да, подтяжку я сделал по всем портам на входах. И RESET к плюсу подтянул даже. Так, на всякий случай.
По питанию все сделал как положено - GND оба на минус, Vcc и AVcc - к плюсу. ХЗ чего за ерунда такая.
Наверно действительно контроллет какой-то контрафактный попался... Хотя странно это...
Буду Mega16 покупать, а то на этом все равно мне портов не хватает.
Спасибо Вам всем ОГРОМНОЕ за помощь!
Вт июл 17, 2012 23:25:38
А выложите на всякий случай хекс еще - чтоб для чистоты эксперимента не компилировать, в протеусе проверю...
Вт июл 17, 2012 23:47:31
В AVR Studio и в Proteus работает как надо (что для такоо рода сложности программы не удивительно), а вот в железе...
Я сейчас на работе, пока не могу ничего поделать - буду дома закину hex. Только есть ли смысл, если я уже где только не эмулировал - все гуд.
Да говорю микруха пиратская небось какая. куплю новую, и хай с ним. Портов а то мало - чего заморачиваться тогда.
Спасибо еще раз!!!
Чт июл 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;
Чт июл 19, 2012 19:19:35
Инициализация верная. Как определили, что не подтягивается?
Чт июл 19, 2012 19:22:50
По схеме вижу. Эти три пина в воздухе висят как-будто. На касание пальца реагируют - наводки сети. Подключаю внешний резистор 10кОм - начинает функционировать как задумано. Чего за блин...
Чт июл 19, 2012 19:30:57
Блок питания прежний используете, что и в предыдущем случае?
Чт июл 19, 2012 19:35:06
Да, питаю все от одного блока - стабильный 5В.
Чт июл 19, 2012 19:51:09
Попробуйте просто от батареек.
Чт июл 19, 2012 20:08:08
От 4,3В вобще не работае ничего, щас еще раз попробую.
А еще комп у меня видит и читает контроллер даже когда я на него питания не подаю! Разве так бывает?! Программирую через LPT, пять проводов. Прогой Uniprof. Правда вот при программировании уже ошибку выдает
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.