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

 
 
> Помогите разобраться с WDT
TamTam
сообщение May 31 2006, 10:35
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Если я все правильно понима то данная строка
Код
WDTCR=0x08;
Код
WDTCR=0x08;

включает WDT \ 8 от частоты

Запускаю CVAVR , и в визарде создаю новый проджект, ниже код
Код
#include <90s2313.h>
#include <delay.h>

// Declare your global variables here
#define TOCH_MEMORY_LED_ON      PORTB |= (1<<0);           // Включить индикатор (подключенный к PB0)
#define TOCH_MEMORY_LED_OFF     PORTB &= ~(1<<0);          // Выключить индикатор (подключенный к PB0)
#define TOCH_MEMORY_LED_INV     PORTB ^= (1<<0);           // Инверсия индекатора (подключенный к PB0)

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0
PORTB=0x00;
DDRB=0x01;

// Watchdog Timer initialization
// Watchdog Timer Prescaler: OSC/16k
WDTCR=0x08;

while (1)
      {
      // Place your code here
      delay_ms(500);
                          TOCH_MEMORY_LED_ON;
      };
}


если я правильно понимаю свето диод должен перемаргивать, ведь я не обнуляю счетчик.

Но он все время горит

В чем прикол ???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TamTam
сообщение May 31 2006, 11:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Цитата(otrog @ May 31 2006, 15:15) *
Цитата(S_agent @ May 31 2006, 14:57) *

Ваша программа не доходит до
Код
TOCH_MEMORY_LED_ON;

, так как
Код
delay_ms(500);
более длительная задержка по сравнению с периодом WDT. Он ресетит ранее чем Вы измените состояние порта.

Если посмотреть ассемблерный листинг, сгенерированный CV-м, то видно что в функциях delay происходит сброс WDT-а.

А прикол в том, что нужно написать
Код
PORTB=0x01;

А вместо
Код
delay_ms(500);

Использовать например
Код
unsigned int i;
for(i=0;i<0xFFFF;i++){}

Успехов.



кстати строка
Код
TOCH_MEMORY_LED_ON;

// Описана в дефайне и делает роде самое что и

PORTB=0x01;


а вот за пояснения по делай огромное спасибо.

Мне вот интересно как можно подвесить мк чтоб проверить работает собака или нет
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TamTam   Помогите разобраться с WDT   May 31 2006, 10:35
- - S_agent   Ваша программа не доходит до КодTOCH_MEMORY_LED_ON...   May 31 2006, 10:57
|- - otrog   Цитата(S_agent @ May 31 2006, 14:57) Ваша...   May 31 2006, 11:15
|- - S_agent   то что delay_ms() wdr обнуляет не знал, точнее не ...   May 31 2006, 11:32
- - beer_warrior   Если предполагать, что светодиод подключен анодом ...   May 31 2006, 11:01
- - TamTam   МНЕ ЭТО НУЖНО НЕ ДЛЯ МОРГАНИЯ, просто в один прекр...   May 31 2006, 11:20
|- - S_agent   2 TamTam. Это говорит о том что wdt исправен   May 31 2006, 11:35
- - TamTam   Цитата(S_agent @ May 31 2006, 15:35) 2 Ta...   May 31 2006, 11:44
|- - IgorKossak   Цитата(TamTam @ May 31 2006, 14:44) ... а...   May 31 2006, 11:54
|- - otrog   Цитата(IgorKossak @ May 31 2006, 15:54) Ц...   Jun 1 2006, 07:43
- - Pyku_He_oTTyda   ЦитатаЕсли посмотреть ассемблерный листинг, сгенер...   May 31 2006, 11:48
- - TamTam   Цитата(IgorKossak @ May 31 2006, 15:54) Ц...   May 31 2006, 12:14
|- - IgorKossak   Цитата(TamTam @ May 31 2006, 15:14) А мож...   May 31 2006, 13:08
- - IgorKossak   Речь шла не о подаче питания, а о рестарте по вотч...   Jun 1 2006, 11:33
- - otrog   Цитата(IgorKossak @ Jun 1 2006, 15:33) Ре...   Jun 1 2006, 11:46
- - IgorKossak   Цитата(otrog @ Jun 1 2006, 14:46) Цитата(...   Jun 1 2006, 14:44


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

 


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


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