Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Ответ:
Отправлено
Сергей
18 марта 2007 г. 12:02
В ответ на:
Хоть и маловероятно, но могла слететь Flash. Сделай программатором Verify - сравнение Flash с тем кодом, которым прошивал
отправлено =AVR= 18 марта 2007 г. 11:32
crc совпадают. я его не прошивал када он перестал работать. щас перепрошил. тож самое. данные шлет. а вот напряжение неправильно снимает. он реагирует на изменение напряжения. 0в=0в 0..5в=5в.
Составить ответ
|
Вернуться на конференцию
Ответы
Тогда меняй МК, если уверен в своем коде. Не уверен - давай код сюда, только поставь перед кожом <pre> и после кода </pre>, и отдели все "<<" от текста пробелами. То, что код работал - не абсолютный показатель его корректности
—
=AVR=
(18.03.2007 12:11:32
80.92.96.19
,
пустое
)
код
—
Сергей
(18.03.2007 12:24:46
84.19.184.156
, 1233 байт)
Нет, все-таки я фигею от ассемблера. Уже попытка что-то понять - признак большого ума, а тут и советы дают...
—
Vladimir Ljaschko
(18.03.2007 20:22:45
194.226.120.28
,
пустое
)
Как минимум три ляпа: 1) стек инициализирован на $03D вместо $25F, 2) разрешено БЕЗ ОБРАБОТЧИКА прерывание АЦП, 3) строб выдаешь сначала, а данные потом - надо наоборот. И так не пиши никогда - в начале строки ставят только метки, а код пишут с таба или хотя бы с пробела
—
=AVR=
(18.03.2007 12:53:52
80.92.96.19
,
пустое
)
Этот(именно этот код) прекрасно работал! даже с этими ляпами!
—
Сергей
(18.03.2007 17:50:12
84.19.184.156
,
пустое
)
Да ты хоть вдумался в то, что тебе пишут? Если ты установил spl так, как в твоем "коде" а в sph оказался 0, то при возникновении прерывания ( а оно возникает) содержимое PC запишестся в SFR, а програма начнет выполняться сначала. следующее прерывание, которое может возникнуть из-за записи всякой х-ни в SFR, приведет к дальнейшему загаживанию SFR. Это блин не код, а бешеная мина. Вполне возможно, что передача данных из проги возможна лишь при определенном расположении звезд. Ты хоть в
—
pau62
(18.03.2007 18:57:0
212.26.238.3
,
пустое
)
в симуляторе это творчество погоняй. многа нового увидишь.
—
pau62
(18.03.2007 18:58:46
212.26.238.3
,
пустое
)
Совершенно верно. И хотя глобально прерывания не разрешены, ТАК писать нельзя
—
=AVR=
(18.03.2007 19:04:13
80.92.96.19
,
пустое
)
эээ..... это ты тонко подметил..... 2:0
—
pau62
(18.03.2007 19:31:33
212.26.238.25
,
пустое
)
Этот(именно этот код) прекрасно работал! даже с этими ляпами!
—
Сергей
(18.03.2007 17:49:54
84.19.184.156
,
пустое
)
эта хрень может че-та далать или нет взависимости от содержимого SPH., а ты туда нихрена не пишешь, и оно при включении случайное.
—
pau62
(18.03.2007 19:01:40
212.26.238.3
,
пустое
)
ок все поменял. результат тот же. с той "хренью" авр непрерывно и безошибочно отсылал в течении 3часов результаты измерений! все точно. и не было "а если там окажеться 0, а если нет...." с этой целью и отключены были глобальные прерывания. кароче проблема так и не решилась(даже при оформленном "по правилам" коде). завтро поменяю мк. всем спасибо.
—
Сергей
(18.03.2007 20:15:32
84.19.184.156
,
пустое
)
сначала сделай вывод результата в порт и тестером проверь или осцилом.
—
pau62
(18.03.2007 20:32:24
212.26.238.59
,
пустое
)
Это не по правилам, это по здравому смыслу.
—
pau62
(18.03.2007 20:33:28
212.26.238.59
,
пустое
)
в данном случае пофик, но почему стек на 0x3D ? У Авров стек вниз растет вообще-то, при первом же call глюк будет
—
DASM
(18.03.2007 12:35:30
212.58.192.14
,
пустое
)
мк получается менять?
—
Сергей
(18.03.2007 12:42:16
84.19.184.156
,
пустое
)
как правило в таких случаях не по делу меняют. хотяб другой канал ацп возьми и еще на порт результат выведи для контроля . мало ли чего у тебя с передачей.
—
pau62
(18.03.2007 12:54:35
212.26.243.37
,
пустое
)
тут канал А1 - это уже и есть другой) был А0
—
Сергей
(18.03.2007 18:03:15
84.19.184.156
,
пустое
)
я подобрал по стеку методом проб и ошибок ;) в данном примере этого значения хватало. ставить 0хFF?
—
Сергей
(18.03.2007 12:41:2
84.19.184.156
,
пустое
)
A чего то ты SPH не инициализируешь? может, знаешь, что там по сбросу будет? примерно так надо(+)
—
pau62
(18.03.2007 12:47:21
212.26.243.37
, 130 байт)
еще нопы не пиши в область векторов прерываний, а пиши JMPы на "аврийный" обработчик, пускай он тебе сирену включает или лампу какую-нить....
—
pau62
(18.03.2007 13:32:7
212.26.238.103
,
пустое
)
а на ref опора подана ? И Avcc в норме ?
—
DASM
(18.03.2007 12:09:59
212.58.192.14
,
пустое
)
Ответ:
—
Сергей
(18.03.2007 12:17:49
84.19.184.156
, 311 байт)
Кусок даже смотреть не буду, тем более в таком виде. Давай ВЕСЬ код, оформив так, как я говорил -->
—
=AVR=
(18.03.2007 12:21:49
80.92.96.19
,
пустое
,
ссылка
)
код в ответе на ссылку. :)
—
Сергей
(18.03.2007 12:25:53
84.19.184.156
,
пустое
)
Хе, точно :))
—
=AVR=
(18.03.2007 12:12:28
80.92.96.19
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 654:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru