Easyelectronics.ru

Электроника для всех
Текущее время: 06 дек 2019, 17:44

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Мне нужно разбудить пик
СообщениеДобавлено: 09 фев 2015, 16:18 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
у меня есть прога которая усыпляет пик на 4сек и пробуждает на 1сек, и если в эту секунду придет приказ проснуться то он держится в бодром состоянии 10сек.но суть в том что WDT у меня при таймауте перезагружает проц,а мне надо просто чтоб он разбудил пик и выполнение проги началось после команды sleep() а не с начала программы как в случае перезагрузки проца.
вот на одном сайте я нашел такие слова:
Цитата:
Сторожевой таймер также может вывести процессор из режима SLEEP. При этом произойдет не сброс, а продолжение нормального исполнения программы.

может кто показать кодом пример реализации моей проги с продолжение проги а не начальным входом,желательно применительно к CCS.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 09 фев 2015, 18:34 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
Цитата:
#include <18F452.H>
#fuses XT, WDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 4000000, restart_wdt)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, restart_wdt, ERRORS)

void main()
{

printf("Start\n\r");


while(1)
{
printf("Sleep\n\r");

restart_wdt();
sleep(); // Go to sleep and wait for WDT to wake-up

printf("Wake up\n\r");

delay_ms(500);
}

}

в протеусе не работае почему то?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 09 фев 2015, 18:59 
Старожил

Зарегистрирован: 19 июн 2012, 14:17
Сообщения: 3440
rakka писал(а):
в протеусе не работае почему то?

В шпротах много чего не работает или работает некорректно. Это не повод заморачиваться.
У PIC`ов достаточно включить WDT, настраивать для wake-up ничего не надо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 09 фев 2015, 19:21 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
т.е. включаю ватчдог ,устанавливаю setup_wdt(WDT_4S); и сразу ухожу в сон, и пока пик спит когда ватчдог закончит считать то он не сделает reseт а просто разбудит пик и программа продолжить выполнять с оператора который стоит сразу за функцией sleep()?так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 09 фев 2015, 19:47 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
яверт писал(а):
rakka писал(а):
в протеусе не работае почему то?

В шпротах много чего не работает или работает некорректно. Это не повод заморачиваться.
У PIC`ов достаточно включить WDT, настраивать для wake-up ничего не надо.

Код:
#include <main.h>

void main()
{
   printf("Start\n\r");
   setup_wdt(WDT_4S);      //~4.0 s reset
   while(1)
   {
      printf("Sleep\n\r");


      sleep();          // Go to sleep and wait for WDT to wake-up

      printf("Wake up\n\r");

      delay_ms(500);   
   }

}

вот написал прогу,в протеусе он не продолжает выполнение программы когда просыпается после функции слиип,а делает резет и в итоге на экране терминала я не вижу слова Wake up


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 10 фев 2015, 10:53 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
вот написано в даташите что если пик спит и в это время ватчдог заканчивает считать он не делает ресет а просто будит и продолжает прогу со следующей команду после sleep()
Цитата:
10.5
Operation During Sleep
When the device enters Sleep, the WDT is cleared. If
the WDT is enabled during Sleep, the WDT resumes
counting.
When the device exits Sleep, the WDT is cleared
again. The WDT remains clear until the OST, if
enabled, completes. See Section 5.0 “Oscillator
Module (With Fail-Safe Clock Monitor)” for more
information on the OST.
When a WDT time-out occurs while the device is in
Sleep, no Reset is generated. Instead, the device
wakes up and resumes operation. The TO and PD bits
in the STATUS register are changed to indicate the
event. See Register 3-1 for more information.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 11 фев 2015, 20:46 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
ну что вопрос то важный,так и не нашел ответ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 12 фев 2015, 12:23 
Старожил

Зарегистрирован: 08 янв 2011, 21:54
Сообщения: 231
Откуда: Ставрополь
Вот пример на С , но для pic18
Код:
ClrWdt()
Sleep()
LED0_IO = 1;
ScanKey1Tast();
ScanKey2Tast();
ScanKey3Tast();
ScanKey4Tast();
ScanKeyboard();
LED0_IO = 0;

А это на ASM для pic16
Код:
;***************************************
CICL_WAIT
   CALL   ERROR_AKB
   CALL   POWER_STOP_PROC
   CALL   CD_GREEN_PROC
   CALL   CD_RED_PROC
CICL_WAIT1
;   SLEEP
   NOP
   NOP
   GOTO   CICL_WAIT   ;
;********************************


Сторожевой таймер пробуждает , но не делает ресет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 12 фев 2015, 13:25 
Заглядывает иногда

Зарегистрирован: 22 июн 2014, 14:36
Сообщения: 197
что то совсем невнятный ответ.касательно моего примера почему он не работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мне нужно разбудить пик
СообщениеДобавлено: 12 фев 2015, 13:33 
Старожил

Зарегистрирован: 08 янв 2011, 21:54
Сообщения: 231
Откуда: Ставрополь
rakka писал(а):
в протеусе не работае почему то?


Проверяйте в железе. В железе РАБОТАЕТ.
Проверьте поставил ли компилятор в коде после команды SLEEP две команды NOP , рекомендуемые производителем для нормального выхода из сна.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB