|
Не работают порты на выход, Mega16 (PC2-PC5) |
|
|
|
Sep 13 2008, 21:51
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
Не работают порты на выход. На портах: PC2 всегда лог. 1 PC3 всегда лог. 1 PC4 всегда лог. 0 PC5 всегда лог. 1 Код для проверки писал такой: Код while (1) { PORTA=0xFF; PORTB=0xFF; PORTC=0xFF; PORTD=0xFF; delay_ms(1000); PORTA=0; PORTB=0; PORTC=0; PORTD=0; delay_ms(1000); }; Думал что возможно статикой спалил порты и не работают..... купил еще одну мегу, картина та же.... Компилятор CodeVisionAVR Код инициализации генериться автоматически. Весь код: Код #include <mega16.h> #include <delay.h>
// Declare your global variables here
void main(void) { // Declare your local variables here
// Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0x00; DDRA=0xFF;
// Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00; DDRB=0xFF;
// Port C initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00; DDRC=0xFF;
// Port D initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00; DDRD=0xFF;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;
while (1) { PORTA=0xFF; PORTB=0xFF; PORTC=0xFF; PORTD=0xFF; delay_ms(1000); PORTA=0; PORTB=0; PORTC=0; PORTD=0; delay_ms(1000); }; } т.е. все порты настроены на вывод инфы и должны "моргать" с периодом 1с. Все ок за исключением 4 портов которые я описал выше....
|
|
|
|
|
Sep 13 2008, 21:59
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Integral @ Sep 14 2008, 01:51)  Думал что возможно статикой спалил порты и не работают..... Думать мало. Надо еще даташиты читать. Извините Вы просто не первый. Фьюз JTAGEN. Анатолий.
|
|
|
|
|
Sep 13 2008, 23:35
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Integral @ Sep 14 2008, 02:13)  Проблема вся в том что не понятно откуда копать чтобы понять в чем проблема.... соотвецтвено и какой раздел даташита читать..... а весь перечитать это  Показываю на примере как копать. Проблема: не работают пины PC2, PC3, PC4, PC5 порта С. 1. Открываем даташит изучаем оглавление. Находим раздел I/O Ports, страница 50 2. Читаем этот раздел в надежде понять почему не работает порт. 3. Дочитываем до страницы 61, раздел Alternate Functions of Port С, ага, читаем дальше внимательнее. 4. Вот оно! В описании PC2, PC3, PC4, PC5 видим фразу: "When the JTAG interface is enabled, this pin can not be used as an I/O pin." 5. Задаемся вопросом. А может быть включен JTAG? и продолжаем читать этот раздел дальше... 6. В табличках 29 и 30 в столбцах посвященных PC2, PC3, PC4, PC5 находим - JTAGEN. И ни слова включен JTAG или нет. 7. Нигде рядом ответа на этот вопрос нет..... Запускаем поиск "JTAGEN" в даташите. 8. изучаем результаты... табличка 105, на странице 263: JTAGEN Description: Enable JTAG Default Value : 0 (programmed, JTAG enabled) Все ясно, по умолчанию включен. 9. Открываем документацию на программатор и узнаем как изменить этот бит. Проблема решена. Анатолий.
Сообщение отредактировал aesok - Sep 13 2008, 23:38
|
|
|
|
|
Sep 16 2008, 06:51
|

Бывалый
  
Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853

|
Цитата(aesok @ Sep 14 2008, 02:35)  Показываю на примере как копать.
Проблема: не работают пины PC2, PC3, PC4, PC5 порта С.
1. Открываем даташит изучаем оглавление. Находим раздел I/O Ports, страница 50 2. Читаем этот раздел в надежде понять почему не работает порт. 3. Дочитываем до страницы 61, раздел Alternate Functions of Port С, ага, читаем дальше внимательнее. 4. Вот оно! В описании PC2, PC3, PC4, PC5 видим фразу: "When the JTAG interface is enabled, this pin can not be used as an I/O pin." 5. Задаемся вопросом. А может быть включен JTAG? и продолжаем читать этот раздел дальше... 6. В табличках 29 и 30 в столбцах посвященных PC2, PC3, PC4, PC5 находим - JTAGEN. И ни слова включен JTAG или нет. 7. Нигде рядом ответа на этот вопрос нет..... Запускаем поиск "JTAGEN" в даташите. 8. изучаем результаты... табличка 105, на странице 263: JTAGEN Description: Enable JTAG Default Value : 0 (programmed, JTAG enabled) Все ясно, по умолчанию включен. 9. Открываем документацию на программатор и узнаем как изменить этот бит.
Проблема решена.
Анатолий. Явно тянет на стандарт на ответы  ЗЫ: Прошу прощения за мой предыдущий пост, но нервы у меня слабеют когда задают вопросы по АВР типа: "Запрограммировал, а оно не работает", "Порт С в меге не работает", "Не прошивается мега128", и т.д. Потратить пол-дня и почитать самые свежие 5-10 страниц форума по АВР и 95% вопросов отпадут сами собой почему-то народ не хочет - сразу вопросы задают.
--------------------
|
|
|
|
|
Dec 23 2008, 16:28
|
Группа: Новичок
Сообщений: 2
Регистрация: 23-12-08
Пользователь №: 42 693

|
Братцы, сразу извиняюсь за вопрос, который может оказаться таким же тупым, как и всем надоевший JTAGEN. mega8, обвязки почти никакой, на порт D (D0-D4, D6) повешен ЖК-индикатор по 4-битному интерфейсу. Цель проекта - научиться работать с ЖК на маленькой меге. Не работает, холера. Вообще не инитится. Проверяю схемотехнику - нет глюков. Меняю мегу на другой экземпляр - то же самое. Чешу репу. Цепляю тот же ЖК на 2313, заливаю ту же софтинку (с измененными номерами выводов интерфейса ЖК, ессно) - все тип-топ, на экранчике красиво. Чешу репу. Ставлю опять все на мегу, пытаюсь замерять на выводах напряжение. На выводах дурь какая-то. Вместо ЖК цепляю на выводы линейку светодиодов. Пишу софтину для тупого поочередного переключения оных. Результат обескураживает: светодиоды мигают в странном порядке, имеющем очень отдаленное сходство с заданной последовательностью. Чешу репу. Лезу в даташит: на этих выводах асинхронный порт. Но он вроде как отключен, по умолчанию. Вроде больше ничего. Блин. Опыта у меня почти нет, так, несколько софтинок на 2313, но вроде все до сих пор работало-заводилось. Помогите, плиз!
|
|
|
|
|
Dec 23 2008, 16:57
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(Якут @ Dec 24 2008, 00:28)  Чешу репу. Ставлю опять все на мегу, пытаюсь замерять на выводах напряжение. На выводах дурь какая-то. Вместо ЖК цепляю на выводы линейку светодиодов. Пишу софтину для тупого поочередного переключения оных. Результат обескураживает: светодиоды мигают в странном порядке, имеющем очень отдаленное сходство с заданной последовательностью. Может быть какое-нибудь прерывание разрешено, но обработчик не написан, или написан неверно? А с питанием проблемы могу быть? Что с RESET'ом? (висит в воздухе, подключен куда-то). От чего МК тактируется (кварц, внутренний RC). Если кварц, то есть ли кондеры на землю, верно ли подключены (сквозных токов быть не должно)... ну в общем подробнее, плиз (схема, программа, фотка печатки, прогноз погоды в Вашем городе))))
--------------------
Выбор.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|