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

 
 
> Использование Watchdog в C8051F310
Mechanical men
сообщение Oct 30 2006, 14:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 29-08-06
Из: Россия, Санкт-Петербург.
Пользователь №: 19 911



Если есть у кого примерчик, с использованием Watchdog для C8051F310 или похожего камня - скинте пжлста. В документации много слов всяких, но с примером разбираться проще. Заранее благодарен...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
RedFroggy
сообщение Nov 1 2006, 10:46
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 7-11-05
Пользователь №: 10 549



Цитата(Mechanical men @ Oct 30 2006, 18:13) *
Если есть у кого примерчик, с использованием Watchdog для C8051F310 или похожего камня - скинте пжлста. В документации много слов всяких, но с примером разбираться проще. Заранее благодарен...


Для C8051F005

// В начале программы запрещаете
WDTCN = 0xde; // запрет
WDTCN = 0xad; // WatchDogTimer

// Делаете настройку регистров и т.д.
.................................

// В нужном месте разрешаете (перезагружаете)
WDTCN = 0xA5; // перезагрузить WatchDog
.................................
// Не забывать перезагружать в других местах
WDTCN = 0xA5; // перезагрузить WatchDog

Биты WDTCN.[2:0] управляют временем срабатывания (интервалом). Расчёт нужно проводить по формуле:
43+WDTCN[2:0] x TSYSCLK , (где TSYSCLK - the system clock period).
Например, для 2 МГц, WatchDog можно настроить в интервале 0.032msec - 524msec.
WDTCN.7 должен быть в 0, когда устанавливается этот интервал. WDTCN.[2:0] после сброса имеют значение 111b.
Go to the top of the page
 
+Quote Post
RedFroggy
сообщение Nov 1 2006, 12:23
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 7-11-05
Пользователь №: 10 549



Цитата(RedFroggy @ Nov 1 2006, 14:46) *
Цитата(Mechanical men @ Oct 30 2006, 18:13) *

Если есть у кого примерчик, с использованием Watchdog для C8051F310 или похожего камня - скинте пжлста. В документации много слов всяких, но с примером разбираться проще. Заранее благодарен...


Для C8051F005

// В начале программы запрещаете
WDTCN = 0xde; // запрет
WDTCN = 0xad; // WatchDogTimer

// Делаете настройку регистров и т.д.
.................................

// В нужном месте разрешаете (перезагружаете)
WDTCN = 0xA5; // перезагрузить WatchDog
.................................
// Не забывать перезагружать в других местах
WDTCN = 0xA5; // перезагрузить WatchDog

Биты WDTCN.[2:0] управляют временем срабатывания (интервалом). Расчёт нужно проводить по формуле:
43+WDTCN[2:0] x TSYSCLK , (где TSYSCLK - the system clock period).
Например, для 2 МГц, WatchDog можно настроить в интервале 0.032msec - 524msec.
WDTCN.7 должен быть в 0, когда устанавливается этот интервал. WDTCN.[2:0] после сброса имеют значение 111b.

Прошу прощения, при копировании смазалось
Вот правильная формула:
4^(3+WDTCN[2:0] ) x TSYSCLK
Go to the top of the page
 
+Quote Post
Mechanical men
сообщение Nov 7 2006, 09:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 29-08-06
Из: Россия, Санкт-Петербург.
Пользователь №: 19 911



Для C8051F005

// В начале программы запрещаете
WDTCN = 0xde; // запрет
WDTCN = 0xad; // WatchDogTimer

[/quote]
Нич не выходит... У проклятого F310 нет такого регистра... Вышел с праздника, ковыряюсь с переводом....
Go to the top of the page
 
+Quote Post
RedFroggy
сообщение Nov 7 2006, 09:39
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 7-11-05
Пользователь №: 10 549



[quote name='Mechanical men' date='Nov 7 2006, 13:22' post='172927']
Для C8051F005

// В начале программы запрещаете
WDTCN = 0xde; // запрет
WDTCN = 0xad; // WatchDogTimer

[/quote]
Нич не выходит... У проклятого F310 нет такого регистра... Вышел с праздника, ковыряюсь с переводом....
[/quote]

У 310 WatchDog доступен через четвёртый модуль PCA. Сам не использовал этот микроконтроллер, но сейчас посмотрел даташит - в описании вроде всё по шагам написано, как конфигурировать и использовать.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Nov 7 2006, 13:29
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



[quote name='Mechanical men' date='Nov 7 2006, 12:22' post='172927']
Для C8051F005

// В начале программы запрещаете
WDTCN = 0xde; // запрет
WDTCN = 0xad; // WatchDogTimer

[/quote]
Нич не выходит... У проклятого F310 нет такого регистра... Вышел с праздника, ковыряюсь с переводом....
[/quote]


Добрый день.
Узаю 330, но они схожи с 310. По крайней мери с PCA

Код
void PCA_Init()
{
    PCA0MD      &= ~0x40;
    PCA0MD      = 0x00;
}


Отключает WDT.

Взгляните в Конфиг Визард.

Удачи.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
Mechanical men
сообщение Nov 8 2006, 10:58
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 29-08-06
Из: Россия, Санкт-Петербург.
Пользователь №: 19 911



Цитата
Добрый день.
Узаю 330, но они схожи с 310. По крайней мери с PCA

Код
void PCA_Init()
{
    PCA0MD      &= ~0x40;
    PCA0MD      = 0x00;
}


Отключает WDT.

Взгляните в Конфиг Визард.

Удачи.


Получилось странное...
написал такой код:
void PCA_Init()
{
PCA0MD &= ~0x40;
PCA0MD = 0x00;
PCA0CPL4 = 0xFE;
OSCICN = 0x83;
PCA0MD |= 0x40;
}
Плата работать отказалась, причем похоже все время перезагружается, т.к какая-то активность видна, но не та, которая требуется.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Nov 8 2006, 15:05
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(Mechanical men @ Nov 8 2006, 13:58) *
Получилось странное...
написал такой код:
void PCA_Init()
{
PCA0MD &= ~0x40;
PCA0MD = 0x00;
PCA0CPL4 = 0xFE;
OSCICN = 0x83;
PCA0MD |= 0x40;
}
Плата работать отказалась, причем похоже все время перезагружается, т.к какая-то активность видна, но не та, которая требуется.



Так последней строкой вы опять включили WDT (PCA0MD |= 0x40;). Я не совсем понял, что вам нужно?? Вы хотите использовать WDT или нет???
Если нет, то сделайте как я вам написал. Иначе необходимо каждый раз сбрасывать WDT (или он вас сбросит wink.gif
Для сброса WDT (его перезапуска), вам необходимо периодически (не реже периода срабавтвания таймера) записывать значение (в доке написано любое смотри стр 202 докуменат ревизии 1.5) в PCA0CPH4. Это перезапустит таймер WDT и даст вам отсрочку.

Вы уверены что хотите использовать WDT?? Вы точно понимаете для чего он нужен????

Удачи.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
Mechanical men
сообщение Nov 9 2006, 08:04
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 29-08-06
Из: Россия, Санкт-Петербург.
Пользователь №: 19 911



Цитата
Для сброса WDT (его перезапуска), вам необходимо периодически (не реже периода срабавтвания таймера) записывать значение (в доке написано любое смотри стр 202 докуменат ревизии 1.5) в PCA0CPH4. Это перезапустит таймер WDT и даст вам отсрочку.

Вы уверены что хотите использовать WDT?? Вы точно понимаете для чего он нужен????


ЙЙЙЙессс! Последний элемент мозаики! И менно куда писать сбрасывающее значение я и не догонял! Теперь все зажужжало как нада. Спсб!!

А WDT мне нужен, чтоб выходить из ступора после всяких суровых электромагнитных воздействий, помех по питанию и разрядов на корпус шкафа. Для системв пожарообнаружения/тушения девайс делаю.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Nov 9 2006, 08:41
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(Mechanical men @ Nov 9 2006, 11:04) *
Для системв пожарообнаружения/тушения девайс делаю.


Добрый день.

Вопрос не по теме.

А какой тип огнетушителей?? Вернее марка. Случаем не СОТ-1????


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
Mechanical men
сообщение Nov 9 2006, 10:06
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 29-08-06
Из: Россия, Санкт-Петербург.
Пользователь №: 19 911



Цитата(AndreyS @ Nov 9 2006, 11:41) *
Цитата(Mechanical men @ Nov 9 2006, 11:04) *

Для системв пожарообнаружения/тушения девайс делаю.


Добрый день.

Вопрос не по теме.

А какой тип огнетушителей?? Вернее марка. Случаем не СОТ-1????


У нас не локальные огнетушители, а отсек с баллонами с ОГВ и пиропатроны, которые открывают доступ ОГВ в нужный отсек. Мы с газом работаем, поэтому там все строго!
Go to the top of the page
 
+Quote Post

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

 


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


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