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

 
 
 
Reply to this topicStart new topic
> Проблема с ATMega1281
kiv121
сообщение Nov 12 2009, 16:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586



Писал проект не меге 128.
Использую графику и оперативки стало мало.
Сдул 128 - поставил 1281.
Использую IAR 5.3
Отличия поправил.
Как не пытался через собаку сделать перезагрузку 1281 - голяк.
Решил только через jmp 0x0000.
Размер прог достаточно большой - теряю extern переменные.
В настройке проекта вроде все перекрутил.
Помогите дельным советом.
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 12 2009, 16:58
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586



Проц. ATMega1281
Прог. достаточно большая.
Дописался до того, что теряю extern переменные.
Помогите!
Go to the top of the page
 
+Quote Post
SysRq
сообщение Nov 12 2009, 17:39
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



На 1281 собака после сброса по ней останется включена. Выключать надо, если не нужна.
Go to the top of the page
 
+Quote Post
Злодей
сообщение Nov 12 2009, 23:35
Сообщение #4


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

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Цитата(kiv121 @ Nov 12 2009, 19:13) *
... теряю extern переменные.

Ошибки линкера?
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 14 2009, 21:32
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586



Хочу перезагрузить МК:

__disable_interrupt();
__watchdog_reset();
WDTCSR = (1<<WDCE) | (1<<WDE);
WDTCSR = (1<<WDE) | (1<<WDP0) | (1<<WDP3);
__enable_interrupt();
while(1) {}

Результат - темный экран LCD и
дальше - только через выключение питания
???
Go to the top of the page
 
+Quote Post
SysRq
сообщение Nov 15 2009, 02:03
Сообщение #6


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



После перезагрузки watchdog остаётся включен, и, если вы его не сбрасываете в программе, будет ещё раз перезагрузка, и потом ещё раз, и ещё, и ещё.... пока питание не снимете.

Впишите выключение watchdog'а в начало своей прогроаммы.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 15 2009, 04:41
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(SysRq @ Nov 15 2009, 04:03) *
Впишите выключение watchdog'а в начало своей прогроаммы.

Может лучше просто поддержу WDT сделать - __watchdog_reset(); вставить где следует.
Go to the top of the page
 
+Quote Post
Ronin
сообщение Nov 17 2009, 09:24
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 10-02-05
Из: Краснодар
Пользователь №: 2 558



WDRF сбрасываете ?

Цитата
Bit 3 - WDE: Watchdog System Reset Enable
WDE is overridden by WDRF in MCUSR. This means that WDE is always set when WDRF is
set. To clear WDE, WDRF must be cleared first. This feature ensures multiple resets during conditions
causing failure, and a safe start-up after the failure.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 12:12
Рейтинг@Mail.ru


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