Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работают порты на выход
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Integral
Не работают порты на выход.

На портах:
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 портов которые я описал выше....
Flasher
Есть 2 варианта- можешь читать даташит и сам найти ответ . А можешь во фузах отключить jtag
aesok
Цитата(Integral @ Sep 14 2008, 01:51) *
Думал что возможно статикой спалил порты и не работают.....


Думать мало. Надо еще даташиты читать. Извините Вы просто не первый.

Фьюз JTAGEN.

Анатолий.
Integral
Проблема вся в том что не понятно откуда копать чтобы понять в чем проблема.... соотвецтвено и какой раздел даташита читать..... а весь перечитать это 07.gif
bloodden
И поиска не существует? Каждый месяц только на электрониксе вылазит эта тема!
aesok
Цитата(Integral @ Sep 14 2008, 02:13) *
Проблема вся в том что не понятно откуда копать чтобы понять в чем проблема.... соотвецтвено и какой раздел даташита читать..... а весь перечитать это 07.gif


Показываю на примере как копать.

Проблема: не работают пины 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. Открываем документацию на программатор и узнаем как изменить этот бит.

Проблема решена.

Анатолий.
Flasher
[CENSORED]
Сергей Борщ
Цитата(aesok @ Sep 14 2008, 02:35) *
Показываю на примере как копать.
Браво! Мне кажется этот ответ должен быть прибит гвоздями в шапке форума.
IgorKossak
Цитата(Сергей Борщ @ Sep 14 2008, 12:57) *
Браво! Мне кажется этот ответ должен быть прибит гвоздями в шапке форума.

А предшествующий Вашему - на лбу у его писателя в напоминание о том, как не следует отвечать (в следующий раз будет предупреждение гораздо более строгое).
bloodden
Цитата(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. Открываем документацию на программатор и узнаем как изменить этот бит.

Проблема решена.

Анатолий.


Явно тянет на стандарт на ответы smile.gif



ЗЫ: Прошу прощения за мой предыдущий пост, но нервы у меня слабеют когда задают вопросы по АВР типа: "Запрограммировал, а оно не работает", "Порт С в меге не работает", "Не прошивается мега128", и т.д. Потратить пол-дня и почитать самые свежие 5-10 страниц форума по АВР и 95% вопросов отпадут сами собой почему-то народ не хочет - сразу вопросы задают.
IgorKossak
bloodden, моё замечание относилось к Flasher.
Integral
Всем спасибо, в даташите все нашёл.....
bloodden
Цитата(IgorKossak @ Sep 16 2008, 09:56) *
bloodden, моё замечание относилось к Flasher.

Сорри за bb-offtopic.gif
Эт я понял. Так каяться и без пендюля можно smile.gif
Якут
Братцы, сразу извиняюсь за вопрос, который может оказаться таким же тупым, как и всем надоевший JTAGEN.

mega8, обвязки почти никакой, на порт D (D0-D4, D6) повешен ЖК-индикатор по 4-битному интерфейсу. Цель проекта - научиться работать с ЖК на маленькой меге.

Не работает, холера. Вообще не инитится. Проверяю схемотехнику - нет глюков. Меняю мегу на другой экземпляр - то же самое.

Чешу репу. Цепляю тот же ЖК на 2313, заливаю ту же софтинку (с измененными номерами выводов интерфейса ЖК, ессно) - все тип-топ, на экранчике красиво.

Чешу репу. Ставлю опять все на мегу, пытаюсь замерять на выводах напряжение. На выводах дурь какая-то. Вместо ЖК цепляю на выводы линейку светодиодов. Пишу софтину для тупого поочередного переключения оных. Результат обескураживает: светодиоды мигают в странном порядке, имеющем очень отдаленное сходство с заданной последовательностью.

Чешу репу. Лезу в даташит: на этих выводах асинхронный порт. Но он вроде как отключен, по умолчанию. Вроде больше ничего.

Блин. smile3046.gif

Опыта у меня почти нет, так, несколько софтинок на 2313, но вроде все до сих пор работало-заводилось. Помогите, плиз! 1111493779.gif
haker_fox
Цитата(Якут @ Dec 24 2008, 00:28) *
Чешу репу. Ставлю опять все на мегу, пытаюсь замерять на выводах напряжение. На выводах дурь какая-то. Вместо ЖК цепляю на выводы линейку светодиодов. Пишу софтину для тупого поочередного переключения оных. Результат обескураживает: светодиоды мигают в странном порядке, имеющем очень отдаленное сходство с заданной последовательностью.

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

Подозреваю, нужно смотреть WDT - цирк похож.
_Pasha
Цитата(Якут @ Dec 23 2008, 20:28) *
Блин. smile3046.gif

Код в студию, а не блин! smile.gif
1. Телепатов нет.
2. Здесь каждый по всей Земле сидит за компом и тихо матерится. Когда ничего не получается. smile.gif
rezident
Я хоть с AVR и не работал, но настолько наслышан о них, что попробую протелепатировать smile.gif
Вы случайно не используете запись в регистры PINx? В каких-то там Мегах запись вместо чтения этого регистра приводит к инвертированию состояния выходного пина.
http://www.telesys.ru/wwwboards/mcontrol/1...ges/35295.shtml
ut1wpr
Цитата(haker_fox @ Dec 23 2008, 19:57) *
(схема, программа, фотка печатки, прогноз погоды в Вашем городе))))
+ На чем писано, какой уровень оптимизации включен?
Goodefine
Цитата
...Меняю мегу на другой экземпляр - то же самое...

А если порт поменять?
P.S. Кстати, в Proteus-е работает?

Цитата(Огурцов @ Dec 23 2008, 20:05) *
Подозреваю, нужно смотреть WDT - цирк похож.

По умолчанию у tiny2313 собака отключена, а у меги8 - включена. Так что скорее всего она...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.