Перейти к содержанию
    

да что же я не так делаю? mega64 и 128

да какая разница,какая программа, если девайс работает ? когда его запустишь, он работает, как часы.

Может там какие-то щелчки на ногах проскакивают, когда питалово подаешь.только от куда им братся? надо осцил запоминающий сварганиь, тогда мож что-то и увижу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

надо осцил запоминающий сварганиь, тогда мож что-то и увижу...

По моему все же проще и быстрее попробовать стандартный пример от поставщиков компилятора. Если есть проблема, то надо исключать возможные проблемные места, а не множить их... ваш собственный стартап может являться такой проблемой, даже если в других приложениях он и работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моему все же проще и быстрее попробовать стандартный пример от поставщиков компилятора. Если есть проблема, то надо исключать возможные проблемные места, а не множить их... ваш собственный стартап может являться такой проблемой, даже если в других приложениях он и работает.

+1. Разработчики компилятора тоже не плохо разбираются в предмете. Поэтому ИМХО в 99,99% случаев нет необходимост править штатный стартап.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вы опять за свое... :) не работает ЖЕЛЕЗО, а не софт.

 

софт точно не рабочий, а начет железа не спорю, возможно Вы и правы.

 

 

avr-libc-user-manual, FAQ #13, What registers are used by the C compiler?

 

r1 - assumed to be always zero in any C code, may be used to remember something for a while within one piece of assembler code, but must then be cleared after use (clr r1). This includes any use of the [f]mul[s] instructions, which return their result in r1:r0. Interrupt handlers save and clear r1 on entry, and restore r1 on exit (in case it was non-zero).

Анатоий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если мне не изменяет память, то ИАР в своем стартапе как раз использует зеро-регистр для инициализации переменных. А если проинициализировать все переменные случайной величиной (различной при каждом включении), то похожие глюки и могут происходить B)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это avr-LIBC-user-manual. а у нас libc не используется. повторяю, девайс работает на реальной машине и уже отлажен. r1 у меня используется, как нормальный регистр для расчетов.. компиллер - gcc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это avr-LIBC-user-manual. а у нас libc не используется. повторяю, девайс работает на реальной машине и уже отлажен. r1 у меня используется, как нормальный регистр для расчетов.. компиллер - gcc

В AVR Libc указано:

Typically, it should be save to use r2 through r7 that way.

Registers r8 through r15 can be used for argument passing by the compiler in case many or long arguments are being passed to callees. If this is not the case throughout the entire application, these registers could be used for register variables as well.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сегодня сварганил новую платку, вместо атмеги всунул lpc2131. работает, как часики, да и производительность раз в 16 возросла, и красивее стало - люблю LQFP ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это avr-LIBC-user-manual. а у нас libc не используется. повторяю, девайс работает на реальной машине и уже отлажен. r1 у меня используется, как нормальный регистр для расчетов.. компиллер - gcc

 

Звучит как анедот.

 

Перевожу Вам фразу "r1 - assumed to be always zero in any C code,..." на русский:

r1 - предпологаеться что всегда содержит ноль в любом С коде. avr-gcc генерирует код котрый предпологает что региср r1 (он же __zero_reg__) содержит 0.

 

Например, для этого С кода:

volatile unsigned int i = 1;
volatile unsigned char b = 1;
int
main (void)
{
  i = i + b;
  return 0;
}

бедет сгенерирован ассемблерный код

....
    add r24,r18;  8    *addhi3_zero_extend    [length = 2]
    adc r25,__zero_reg__
....

 

И чему будет равно i если в регистр r1 записано чтото отличное от нуля?

 

Анатолий.

Изменено пользователем aesok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

анекдот про дядька Мыкыта :)))

такие преобразования я не использую, разве что,если никак иначе,.. и то стараюсь обойти.

Если i int, то и b тож int...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

анекдот про дядька Мыкыта :)))

 

Если Вы думаете что мне жалко ваше время .... нет, мне его не жалко.

Если Вы думаете что я хочу чтобы ваше устройстово заработало ... нет, мне все равно.

 

Мне просто жалко времени людей которые пытались Вым помочь. И своего времени. Я его больше на Вас не трачу.

 

Анатолий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да что вы так... простите, если получилось так, что вас обидел.. просто дело не в софте, тк я использую нестандартные решения..

вчера возился с шимом(регулировка контрастности). достал свой осцил цифровой, начал анализировать.. сделал шим, думаю, дай ткну его в ту плату с атмегой.. оказывается, при включении атмега почему-то потребляет ток около 300ма! по ногam dvdd. при чем бросок всегда разный, но кратковременный, где-то 500-1000нс. Сразу заменил стабилизатор LM1117-5 на LF50. Запускатся стало увереннее. Поставил кондер на 10u тантал. Далее разрезал дорожку и втыкнул такую цепочку. теперь запускается всегда :)

Изменено пользователем brag

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

достал свой осцил цифровой, начал анализировать..

 

А я давно предлагал. Но все равно, 300ма при включении - это что-то многовато. Предлагаю копать дальше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...