Форум русскоязычного сообщества Ubuntu


Автор Тема: Вопрос по прошивке atmega64.  (Прочитано 2219 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн OPENANDFREEALEX

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Вопрос по прошивке atmega64.
« : 27 Февраль 2012, 00:58:20 »
Очень хочеться помигать светодиодиками.

Прошивка вот

#include <avr/io.h>
#include <util/delay.h>

  void init(void);

  int main(void)
{
  init();
  PORTE |= (1<<2);
  while(1)
{
PORTA = 0b10101010;
_delay_ms(100);
_delay_ms(100);
PORTA = 0b01010101;
_delay_ms(100);
_delay_ms(100);
}
}

  void init(void)
{

DDRE = 0xFF;
PORTE = 0x00;
DDRA = 0xFF;
PORTA = 0x00;
}

Компилиться все ок. Ошибок не говорит.

Прошиваю

avrdude -c JTAG1 -pm64 -P /dev/ttyUSB0 -U flash:w:/home/openandfreealex/avr/main.hex

Прошиваеться вроде тоже все ок. Говорит спасибо, у вас все нормально, я прошил.

Но светодиодики не мигают.

Програматор ise jtag собранный дома (рабочий).
Стенд учебный (рабочий)

Под виндой отец прошивает, а у меня под линухой не получаеться прошу помощи.

Пользователь решил продолжить мысль 27 Февраль 2012, 01:17:24:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 27 Февраль 2012, 01:17:24 от OPENANDFREEALEX »

Оффлайн dimmmy

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Вопрос по прошивке atmega64.
« Ответ #1 : 28 Февраль 2012, 01:24:20 »
Раз уж нет возможности отлаживать на кристалле, попробуй понять, выполняется-ли хоть что-нть.
сделай так:

void main(void){
  Init();
  PORTA = 0b10101010;
  while(1);
}

и посмотри тестером состояние порта А.
Если там есть значение 10101010, то, скорее всего , неправильно работает _delay_ms. Посмотри ее код-  возможно она привязана к какой-то конкретной частоте тактирования кристалла, а у тебя выбран не тот источник тактирования, либо кварц не с той частотой.
Ну, а если даже статика не выдается в порт - то вычитай fuses. Возможно неправильно выбран источник тактирования.

Оффлайн dmig

  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Вопрос по прошивке atmega64.
« Ответ #2 : 28 Февраль 2012, 22:07:37 »
Раз уж нет возможности отлаживать на кристалле, попробуй понять, выполняется-ли хоть что-нть.
Возможность есть. Автор же написал, что через jtag шьёт. Можно через него и подебажить.

Оффлайн OPENANDFREEALEX

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Вопрос по прошивке atmega64.
« Ответ #3 : 02 Март 2012, 13:21:47 »
"Возможность есть. Автор же написал, что через jtag шьёт. Можно через него и подебажить."

Как?

Оффлайн dmig

  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Вопрос по прошивке atmega64.
« Ответ #4 : 02 Март 2012, 15:52:50 »
сам не пробовал (у меня atmega8, без jtag), но в gdb-avr есть возможность дебага через jtag.

 

Страница сгенерирована за 0.095 секунд. Запросов: 25.