реклама на сайте
подробности

 
 
> Проблемы с atmega64L
011119xx
сообщение Dec 24 2007, 07:04
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



В atmega64L столкнулся с такой проблемой.
Программу пишу на Си в AVRStudio под WINAVR. Текст программы такой:
int main(void)
{
Init_ports();

PORTD = 0xC7;

while(1);

}

void Init_ports(void)
{
DDRD = 0x38;
PORTD = 0xCF;

return;
}

В результате после программирования и включения устройства напржение на PORTD.3 = 1,
а не 0 как должно быть. Создается впечатление что микроконтроллер не выходит из подпрограммы.
Хотя в симуляторе все работает. Если текст подпрограммы вынести в главную функцию, то все работает правильно.
В чем может быть проблема? Может в настройках WINAVR?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
man with no name
сообщение Dec 24 2007, 08:01
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



Скомпилил, вот что получилось:
Код
  ...
  be:    0e 94 6a 00     call    0xd4; 0xd4 <main>
  c2:    0c 94 71 00     jmp    0xe2; 0xe2 <_exit>

000000c6 <__bad_interrupt>:
  c6:    0c 94 00 00     jmp    0; 0x0 <__vectors>

000000ca <Init_ports>:
}

void Init_ports(void)
{
    DDRD = 0x38;
  ca:    88 e3           ldi    r24, 0x38; 56
  cc:    81 bb           out    0x11, r24; 17
    PORTD = 0xCF;
  ce:    8f ec           ldi    r24, 0xCF; 207
  d0:    82 bb           out    0x12, r24; 18
  d2:    08 95           ret

000000d4 <main>:
  d4:    88 e3           ldi    r24, 0x38; 56
  d6:    81 bb           out    0x11, r24; 17
  d8:    8f ec           ldi    r24, 0xCF; 207
  da:    82 bb           out    0x12, r24; 18
  dc:    87 ec           ldi    r24, 0xC7; 199
  de:    82 bb           out    0x12, r24; 18
  e0:    ff cf           rjmp    .-2      ; 0xe0 <main+0xc>

Вроде всё нормально. Только Init_ports примерно как inline получилась smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 011119xx   Проблемы с atmega64L   Dec 24 2007, 07:04
- - DASM   Ну раз проблемы с вызовами - глядим настройки стек...   Dec 24 2007, 07:13
|- - 011119xx   Цитата(DASM @ Dec 24 2007, 12:13) Ну раз ...   Dec 24 2007, 07:18
- - DASM   Гм, поглядел доку на WinAvr - он стек ставит сам, ...   Dec 24 2007, 07:29
- - VladimirYU   Цитата(011119xx @ Dec 24 2007, 11:04) В a...   Dec 24 2007, 07:47
|- - 011119xx   в подпрограмме PORTD = 0xCF, после 0xС7, в результ...   Dec 24 2007, 07:54
|- - VladimirYU   Предыдущий пост не читайте, глупость сморозил, про...   Dec 24 2007, 07:55
- - 011119xx   похоже дело действительно в wdt использую 1 урове...   Dec 24 2007, 08:21
|- - VladimirYU   Цитата(011119xx @ Dec 24 2007, 12:21) пох...   Dec 24 2007, 08:57
- - 011119xx   окончательный вариант такой т. к. нужно одновремен...   Dec 24 2007, 09:57
- - GDI   В майне то прописали сброс ватчдога? Кодwhile...   Dec 24 2007, 10:09
|- - 011119xx   Цитата(GDI @ Dec 24 2007, 15:09) В майне ...   Dec 24 2007, 11:26
- - _Sam_   Может просто фуз M103C вырубить надо? А если остав...   Dec 24 2007, 14:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016