Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 14.05.2019, 12:22   #76
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,140
Вес репутации: 4017/87
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Кто работал с PIC32MX?

Синклер
есть где то в библиотеках от Микрочипа? - последние годы я не работал с библиотеками microchip.

если Вы не обнуляете таймер ядра, то зная частоту ядра, можно узнать значение Count сейчас, прибавить в нему значение, которое должно стать, когда пройдет время, и ждать момента, когда значение таймера ядра попадет в промежуток Ваше ожидаемое время + зазор доступа.
besogon вне форума   Ответить с цитированием
Старый 14.05.2019, 13:58   #77
Синклер
Senior Member
 
Регистрация: 06.03.2007
Адрес: Череповец
Возраст: 50
Сообщений: 484
Вес репутации: 124/51
Синклер will become famous soon enoughСинклер will become famous soon enough
По умолчанию Re: Кто работал с PIC32MX?

Цитата:
Сообщение от besogon Посмотреть сообщение
если Вы не обнуляете таймер ядра, то зная частоту ядра, можно узнать значение Count сейчас, прибавить в нему значение, которое должно стать, когда пройдет время, и ждать момента, когда значение таймера ядра попадет в промежуток Ваше ожидаемое время + зазор доступа.
Это все понятно. Можно даже найти как называется эта частота, и вставить её в свою ПП задержек, чтоб не быть привязанным к частоте кварца и т.п.

Но как я понимаю работу библиотечных задержек, это некие макросы или функции, которые генерятся компилятором уже с учетом тактовой частоты.

Программист должен написать только время задержки в мкс, мс или сек, и не забивать голову как это сделает компилятор. Единственно, будет погрешность на малых задержках. Но это уже неизбежный форс мажор который надо учитывать.

Я просто с 32 серией раньше дел не имел, и честно говоря немного в шоке, что delay не подключены по умолчанию (их похоже просто нет в базовой библиотеке), как в более младших сериях PIC.
Синклер вне форума   Ответить с цитированием
Старый 14.05.2019, 14:53   #78
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,140
Вес репутации: 4017/87
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Кто работал с PIC32MX?

Синклер
я не уверен, что подключение delay по умолчанию взвешенная идея.
на мой взгляд, delay не нужен.
besogon вне форума   Ответить с цитированием
Старый 14.05.2019, 15:15   #79
Синклер
Senior Member
 
Регистрация: 06.03.2007
Адрес: Череповец
Возраст: 50
Сообщений: 484
Вес репутации: 124/51
Синклер will become famous soon enoughСинклер will become famous soon enough
По умолчанию Re: Кто работал с PIC32MX?

Извиняюсь, не совсем наверно корректно выразился. Не подключенная а имеющееся по умолчанию в библиотеке, как для младших серий.

Почему компилятор не понимает, например: __delay_ms(10);

Перепробовал по разному написать, но ничего со словом delay он не обрабатывает. Возможно синтаксис там написания другой? У 32 серии даже порты по другому называются (надо ручками править имена с примера для другой серии), все в 32 серии по синтаксису в привычных названиях - как то не по людски((

Последний раз редактировалось Синклер; 14.05.2019 в 15:26.
Синклер вне форума   Ответить с цитированием
Старый 14.05.2019, 15:25   #80
Синклер
Senior Member
 
Регистрация: 06.03.2007
Адрес: Череповец
Возраст: 50
Сообщений: 484
Вес репутации: 124/51
Синклер will become famous soon enoughСинклер will become famous soon enough
По умолчанию Re: Кто работал с PIC32MX?

Цитата:
Сообщение от besogon Посмотреть сообщение
[на мой взгляд, delay не нужен.
Это если юзать RTOS. А если классика с прерываниями и блоком начальной инициализации при старте программы. Вот зачем мне задействовать таймер для организации задержек при инициализации ЖКИ?

Пишу ему сделай мне delay - классик на столько то мс. А он мне в ответ: Моя твоя не понимай, какой такой delay?
Синклер вне форума   Ответить с цитированием
Старый 14.05.2019, 16:10   #81
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,140
Вес репутации: 4017/87
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Кто работал с PIC32MX?

Синклер
Вот зачем мне задействовать таймер для организации задержек при инициализации ЖКИ? - в обычном случае чтобы за счет параллельной загрузки драйверов устройств обеспечить быстрый старт системы.

часто ЖКИ медлительные и за время их загрузки можно прогрузить еще какие-то драйвера.
besogon вне форума   Ответить с цитированием
Старый 14.05.2019, 18:19   #82
Синклер
Senior Member
 
Регистрация: 06.03.2007
Адрес: Череповец
Возраст: 50
Сообщений: 484
Вес репутации: 124/51
Синклер will become famous soon enoughСинклер will become famous soon enough
По умолчанию Re: Кто работал с PIC32MX?

Осподя, можно подумать на этом камне будут собирать центр управления космическими полетами. 10 мс при вкл.питания это для пользователя - ничто.

Ладно, все понятно, жаль что 32 серию микрочип по части delay_ms - обрезал, придется задержку самому писать.
Синклер вне форума   Ответить с цитированием
Старый 14.05.2019, 19:45   #83
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,505
Вес репутации: 4829/115
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Кто работал с PIC32MX?

Цитата:
Сообщение от Синклер Посмотреть сообщение
Осподя, можно подумать на этом камне будут собирать центр управления космическими полетами. 10 мс при вкл.питания это для пользователя - ничто.

Ладно, все понятно, жаль что 32 серию микрочип по части delay_ms - обрезал, придется задержку самому писать.
Совершенно неожиданно можно оказаться и к этому причастным, а привычки уже никуда не денутся. По делу: макрос этот пишется самостоятельно. Легко.
ampersant на форуме   Ответить с цитированием
Старый 15.05.2019, 17:35   #84
Abivan
Member
 
Регистрация: 26.02.2007
Сообщений: 71
Вес репутации: 242/48
Abivan has a spectacular aura aboutAbivan has a spectacular aura aboutAbivan has a spectacular aura about
По умолчанию Re: Кто работал с PIC32MX?

Цитата:
Сообщение от Синклер Посмотреть сообщение
Ладно, все понятно, жаль что 32 серию микрочип по части delay_ms - обрезал, придется задержку самому писать.
немного истории: в HT-PICC не было никакого макроса, а был код в экзамплах. Потом это перекочевало в макросы(я этот период прошел мимо)
А для пик 32 есть гармония, а в ней фриртос а в ней есть vTaskDelay.
Так что все в пик 32 есть, нужно только этим пользоваться.
Abivan вне форума   Ответить с цитированием
Старый 16.05.2019, 01:06   #85
al.kl
Senior Member
 
Регистрация: 11.10.2011
Возраст: 24
Сообщений: 296
Вес репутации: 862/39
al.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to behold
Отправить сообщение для al.kl с помощью ICQ
По умолчанию Re: Кто работал с PIC32MX?

Цитата:
Сообщение от Синклер Посмотреть сообщение
Ладно, все понятно, жаль что 32 серию микрочип по части delay_ms - обрезал, придется задержку самому писать.
Прежде, чем такое писать, открыли бы мануальчик, что-ли, на компилятор. И почитали бы рекомендации от производителя :
Миниатюры
2019-05-16_01-04-35.png  
al.kl вне форума   Ответить с цитированием
Старый 16.05.2019, 12:43   #86
rubel
Senior Member
 
Регистрация: 19.01.2009
Адрес: EARTH
Сообщений: 134
Вес репутации: 385/43
rubel is just really nicerubel is just really nicerubel is just really nicerubel is just really nice
По умолчанию Re: Кто работал с PIC32MX?

Пример из "деревянного" проекта .

Код:
#define SYS_FREQ (80000000L)

const UINT countPerMicroSec = ((SYS_FREQ / 1000000) / 2);
const UINT countPerMilliSec = ((SYS_FREQ / 1000) / 2);

void delay_us(unsigned int us)                        {
  /********************************************************************
   * Function: 	delay_us()
   *
   * Precondition:
   *
   * Input: 		Micro second
   *
   * Output:		None.
   *
   * Side Effects:	Uses Core timer. This may affect other functions using core timers.
        For example, core timer interrupt may not work, or may loose precision.
   *
   * Overview:     Provides
   *  in microsecond.
   *
   *
   * Note:		 	None.
   ********************************************************************/
  UINT32 targetCount;
  UINT32 bakupCount;
  //UINT8 loop = 0;
  // Assert "us" not zero. This must be caught during debug phase.
  //ASSERT(us!=0);
  // backup current count of the core timer.
  bakupCount = ReadCoreTimer();
  // Core timer increments every 2 sys clock cycles.
  // Calculate the counts required to complete "us".
  targetCount = (countPerMicroSec * us); 
  // Restart core timer.
  WriteCoreTimer(0);
  // Wait till core timer completes the count.

  while (ReadCoreTimer() < targetCount);
  // Restore count back.
  WriteCoreTimer(bakupCount + targetCount);
} 
void delay_ms(unsigned int ms)                        {

  UINT32 targetCount;
  UINT32 bakupCount;
  //UINT8 loop = 0;
  // Assert "us" not zero. This must be caught during debug phase.
  //ASSERT(us!=0);
  // backup current count of the core timer.
  bakupCount = ReadCoreTimer();
  // Core timer increments every 2 sys clock cycles.
  // Calculate the counts required to complete "us".
  targetCount = ((countPerMilliSec * ms)); 
  // Restart core timer.
  WriteCoreTimer(0);
  // Wait till core timer completes the count.
  while (ReadCoreTimer() < targetCount);
  // Restore count back.
  WriteCoreTimer(bakupCount + targetCount);
}
rubel вне форума   Ответить с цитированием
Старый 16.05.2019, 19:50   #87
al.kl
Senior Member
 
Регистрация: 11.10.2011
Возраст: 24
Сообщений: 296
Вес репутации: 862/39
al.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to behold
Отправить сообщение для al.kl с помощью ICQ
По умолчанию Re: Кто работал с PIC32MX?

Цитата:
Сообщение от rubel Посмотреть сообщение
Пример из "деревянного" проекта .
Ну, Core Timer используется. Всё правильно
al.kl вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто работал с aP89341 подскажите Дмитрий2212 Общетехнические вопросы 0 29.04.2010 10:31
HELP! Кто работал с PIC14000 avgust Продукция MICROCHIP 3 27.11.2008 07:11
Кто работал с модулями TIBBO (виртуальный СОМ порт по езернет) IgorV Общетехнические вопросы 15 28.10.2008 07:18
кто работал с MultiPIC Programmer 5 ver.2 wws63 Общетехнические вопросы 1 02.08.2008 20:40
Кто работал с WML-C20??? Alexxxx Общетехнические вопросы 2 19.04.2007 15:12


Часовой пояс GMT +3, время: 21:57.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot