Страница 2 из 2

Добавлено: Пт апр 11, 2008 22:16:06
Negor
Нет что вы. 50 баксов это не много. Это ДАХРЕНА! Да 50 баксов мне хватит на дорогу к нему и обратно если он живет на Украине. Не не стоит отдавать такую сумму если прошивать МК для себя. если на фирме серьезный проэкт тогда да...

Добавлено: Пт май 09, 2008 14:15:32
Инженер
Ватсон писал(а): Ещё раз повторяю: достань где нибудь фирменный программатор и прошей. В Киеве вроде с этим проблем нету. Например, AVRISP mkII сейчас раздают по 50$ за штуку, неужели много?
Если самодельный программатор прошил и проверил и сказал: "все ОК". Значит так оно и есть. У меня два программатора и оба самодельные. Сотни раз программировал tiny2313. И ни разу мыслей не возникало что программатор мог ошибиться. Это цифровые вещи и после успешной верификации 100% гарантия что все записано верно.
Если конечно у кого-то много денег и мало времени тогда можно и за 50$ купить. А вот у меня скорее наоборот и я соберу себе в 10 раз дешевле.

Добавлено: Сб май 10, 2008 01:20:45
V-SV
Инженер писал(а): 1. команда rcall заносит в СТЕК неверный адрес
2. команда ret возвращает из СТЕКа невернвй адрес (и передает управление этому загадочному адресу)
3. СТЕК находиться в незаписывемой области памяти
4. у меня кривой компилятор (кривой файл m8def.inc)
Я может чего курнул не того или ночь, но чего-то я не вкуриваю, а где собственно программа?
Если это те строчки что Вы привели, то Asm не C++
Тута все определять нужно что куда...
Хотя может это у Вас все делается автоматически... несли нет, то программа совсем не верная...

Для примера...

Вы пишите про стек... А Хде вы его определяете?

Вы поставили org 0, в строке после этого должен идти вектор (или как там по русски) на начало программы...
А потом список векторов ппрерывания, а у Вас при компиляции код записывается на место этих векторов

Продолжать?

P.S. Если я не прав, скажите! Брошу курить! :shock:

Добавлено: Сб май 10, 2008 20:15:11
Инженер
V-SV писал(а):
Инженер писал(а): 1. команда rcall заносит в СТЕК неверный адрес
2. команда ret возвращает из СТЕКа невернвй адрес (и передает управление этому загадочному адресу)
3. СТЕК находиться в незаписывемой области памяти
4. у меня кривой компилятор (кривой файл m8def.inc)
Я может чего курнул не того или ночь, но чего-то я не вкуриваю, а где собственно программа?
Если это те строчки что Вы привели, то Asm не C++
Тута все определять нужно что куда...
Хотя может это у Вас все делается автоматически... несли нет, то программа совсем не верная...

Для примера...

Вы пишите про стек... А Хде вы его определяете?
Попрошу не путать меня с Основателем темы и главным вопрошающим.
Мне уже подсказали я неверно инициализировал СТЕК - у меги8 для адресации ОЗУ используется 2 байта, а я до сих пор работал с tiny2313 и tiny13 где для тех же целей хватает одного.
V-SV писал(а): Вы поставили org 0, в строке после этого должен идти вектор (или как там по русски) на начало программы...
А потом список векторов ппрерывания, а у Вас при компиляции код записывается на место этих векторов

Продолжать?

P.S. Если я не прав, скажите! Брошу курить! :shock:
Вообще то ты прав. Но прерывания в программе не используются так что это НЕ КРИТИЧНО. (хоть и не проффессионально, неграмотно и вообще :shock: )

Добавлено: Сб май 10, 2008 20:17:48
ARV
если прерывания не используются, то занять выделяемую под вектора память чем-то полезным - профессионально, грамотно и т.п. :)

Добавлено: Сб май 10, 2008 20:21:42
Инженер
sad_deamon писал(а): да прозвонил вроде бы все,
проверил монтаж по схеме, которую сам же рисовал с натуры, т.е. с готового изделия, которое теперь по этой схеме проверяю :(
Попробуй резистор на диод поставить 500 Ом или около того (300-1000 Ом)

Добавлено: Сб май 10, 2008 21:43:13
V-SV
Инженер писал(а): Попрошу не путать меня с Основателем темы и главным вопрошающим.
Мне уже подсказали...
Сорри, если чего не так...

В даташитах было явно написано, что первый байт с адреса 0, смещение на начало программы, а тут с "0" начинается программа...

P.S. Никого не хотел обидеть!

Добавлено: Сб май 10, 2008 23:06:27
__Alexander
/* В даташитах было явно написано, что первый байт с адреса 0, смещение на начало программы, а тут с "0" начинается программа... */

Здесь чуть не так, контроллер начинает віполнять программу с адреса 0 во flash памяти. А где дальше будут объявляться переходы и остальное - это дело компиляторов. Тебе никто не мешает начать прогу с середины МК, но при этом компилятор в первые адреса сам поместит инфу, что начало прогри у тя там.
Вспомни bootloader, он расположен далеко, но ссылка на него все-же в начале.

Так что, можешь начинать и с нуля. Flash - это обычная память, процу наплевать на всякие там .org, откуда вычислит прочесть байт - от туда и прочтет.

Добавлено: Вт май 13, 2008 13:00:07
sgarris
ИМХО - надо просто взять стопроцентно работающую HEX прошивку (что-то типа "моргаем светодиодами") коих в нете полно, зашить и сразу будет ясно , что виновато - сама схема, или неправильно откомпиленный код автора топика.