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

 
 
 
Reply to this topicStart new topic
> Сброс LPC2142.
DreamTwister
сообщение Jan 27 2009, 11:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 5-08-08
Из: Челябинск
Пользователь №: 39 436



Скажите пожалуйста, как программно сбросить микроконтроллер?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 27 2009, 11:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



WatchDog'ом. Как конкретно - почитайте соответствующий раздел UM.
Go to the top of the page
 
+Quote Post
DreamTwister
сообщение Jan 27 2009, 12:10
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 5-08-08
Из: Челябинск
Пользователь №: 39 436



Ну про WatchDog я знаю, просто думал, что есть иной способ.
Получается только WatchDog?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 27 2009, 12:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(DreamTwister @ Jan 27 2009, 15:10) *
Получается только WatchDog?

На LPC21xx, насколько я помню, да. Неужели этого недостаточно?
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Jan 28 2009, 17:27
Сообщение #5


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

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Извиняюсь, что влезаю, но чтоб зря темы не плодить...

Настроил сторожевую собаку вот так:
Код
//Watchdog
  WDTC = 15000000;
  WDMOD = 3;
  WDFEED = 0xAA;
  WDFEED = 0x55;


А скидываю вот так:
Код
/*----------------------------------------------------------------------------
*        Task 'watchdog': watchdog task
*---------------------------------------------------------------------------*/
__task void watchdog_task( void )
{
while( 1 )
    {
    WDFEED = 0xAA;
    WDFEED = 0x55;
    os_dly_wait( 50 );
    }
}


Стоит ОС RTX Kernel от Keil.
Задачу создал так:
Код
t_watchdog = os_tsk_create( watchdog_task, 3 );


Проблема в том, что периодически скидывается МК LPC2134.
Когда я отключил собаку, то МК перестал сбрасываться.

Что бы это означало ?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 28 2009, 17:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Папа Карло @ Jan 28 2009, 20:27) *
А скидываю вот так:



Как минимум так:

Код
      __disable_interrupt();
         WDFEED = 0xAA;
         WDFEED = 0x55;
         __enable_interrupt();

Ну а приоритетами задач и перегрузками разбирайтесь отдельно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Jan 28 2009, 17:50
Сообщение #7


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

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Что то в Keil-е сообщает об ошибке, если писать __disable_interrupt() и __enable_interrupt().

Приоритет выставил 3, другие остальные задачи запускал под 1 и 2 приоритетами.

Как я понял, что задача имеет более высокий приоритет.

Чип работает на 60МГц и PCLK = 15МГц.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 28 2009, 18:08
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Папа Карло @ Jan 28 2009, 20:50) *
Что то в Keil-е сообщает об ошибке, если писать __disable_interrupt() и __enable_interrupt().



А что они делают совсем не понятно??? Используйте соответствующий inline keil-овский, или вызов системный вызов операционки.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 28 2009, 19:02
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Папа Карло @ Jan 28 2009, 20:50) *
Что то в Keil-е сообщает об ошибке, если писать __disable_interrupt() и __enable_interrupt().

В Кейле - __disable_irq(), __enable_irq();

Цитата(Папа Карло @ Jan 28 2009, 20:50) *
Как я понял, что задача имеет более высокий приоритет.

Светодиодом в задаче помигайте - сразу станет ясно, клинит ее, или нет.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Jan 28 2009, 19:47
Сообщение #10


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

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Задачи не клинит, а завтра попробую __disable_irq...

Кстати, в симуляторе работает нормально.
Только, если в МК зашить, то перегружается.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Jan 29 2009, 19:06
Сообщение #11


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

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Заработало, как добавил __disable_irq
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:21
Рейтинг@Mail.ru


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