|
STM8 как правильно сделать функцию Delay |
|
|
|
Dec 15 2015, 13:20
|
Частый гость
 
Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488

|
Кто плотно сталкивался с подобной задачей, как правильно написать универсальную функцию Delay для STM8 Пробывал такой вариант, так вот uS до 7-10 не чувствует, да и перевести в сон процессор нельзя...насколько понимаю если уводить в сон, то только по прерыванию делать? Кто как реализовывает? Код void delays_init (void) { CLK_PCKENR1_bit.PCKEN12 = 1; TIM4_PSCR_bit.PSC = 0x01; TIM4_EGR_bit.UG = 1; TIM4_CR1_bit.CEN = 1; }
void delay_us (unsigned char us) { TIM4_CNTR = 0; while (TIM4_CNTR < us); }
void delay_ms (unsigned int ms) { ms = ms<<2; while (ms--) delay_us(250); }
Сообщение отредактировал IgorKossak - Dec 15 2015, 19:17
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
|
|
|
|
|
 |
Ответов
|
Jan 18 2016, 13:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Разные бывают задачи. Вы знакомы с апликацией ТС? Там используются все перечисленные вами ресурсы? Вы знакомы с концепцией компараторов? Они как раз на свободнобегущих таймерах работают. А если есть и такие устройства в таймерах, то реальность оказывается шире представления о ней. Если вы исполнили задержку на прерывании и в момент срабатывания прерывания от таймера обрабатывалось другое прерывание, то задержка будет точно такая же как и в том варианте, что я предложил. А если прерывания в этот момент не случится, то и мое предложение даст верную задержку. Тщательнее надо придумывать аргументы. Посмотрел в интернете и нигде не нашел хорошего описания триггеров. Пришлось обратиться к первоисточнику. Здесь все изложено подробно. Ищите output compare. http://www.nxp.com/files/microcontrollers/...anual/GPTRM.pdf
|
|
|
|
|
Jan 18 2016, 13:42
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Tarbal @ Jan 18 2016, 16:26)  Тщательнее надо придумывать аргументы. Вы о чём вообще сейчас??? Мне аргументы не нужны... у меня всё работает... и работает так как надо... без всех ваших свободноубегающих микросекунд... Цитата Посмотрел в интернете и нигде не нашел хорошего описания триггеров. Пришлось обратиться к первоисточнику. Здесь все изложено подробно. Ищите output compare. http://www.nxp.com/files/microcontrollers/...anual/GPTRM.pdfЭто прикол??? При чём здесь NXP к STM??? Я что... референс на STM8 не видел... и не знаю как и что там работает??? Пишите тут что хотите... мне это не интересно... и пользы от этого никакой...
|
|
|
|
|
Jan 18 2016, 14:56
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(HHIMERA @ Jan 18 2016, 17:42)  Вы о чём вообще сейчас??? Мне аргументы не нужны... у меня всё работает... и работает так как надо... без всех ваших свободноубегающих микросекунд... Ну а зачем тогда спорите? Человек спросил как сделать достоверную задержку, я ответил, а вы начали нам рассказывать, что вам это не подходит. Цитата(HHIMERA @ Jan 18 2016, 17:42)  Это прикол??? При чём здесь NXP к STM??? Я что... референс на STM8 не видел... и не знаю как и что там работает??? Пишите тут что хотите... мне это не интересно... и пользы от этого никакой... Это не прикол. В этом документе красиво описана концепция input capture и output compare. Это первоисточник. Если вас убеждают только документы по конкретному процессору, то вот вам http://www.st.com/st-web-ui/static/active/.../DM00072019.pdfв нем вскользь тоже упоминается о свободнобегущем 16 битном таймере: "TIM1 is a 16-bit timer which is allowed to free run." в начале 3-ей страницы. Я полагал вас интересует объяснение почему это так и дал вам хороший документ, но если вас интересуют только конкретные комбинации процессоров и решений, то я не буду настаивать.
|
|
|
|
|
Jan 18 2016, 15:40
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Tarbal @ Jan 18 2016, 17:56)  Ну а зачем тогда спорите? Где??? Это вы что-то там пытаетесь доказать... не владея предметом спора... кстати... Цитата Человек спросил как сделать достоверную задержку, я ответил На что вам и заметили... что фигня всё это... что это костыли перевязанные скотчем... Эта тема... если заметили... поднимается уже не один раз... Итог - если нужны точные интервалы... то юзать хардварные или полухардварные решения... если точность особая не нужна... то как и что уже не особо важно... То что предлагаете вы... подразумевает запрет прерываний... следовательно на универсальность никак претендовать не может... и по сути... ничем от обычного цикла не отличается... потому что в цикле и находится... это хоть понятно??? Цитата Это не прикол. В этом документе красиво описана концепция input capture и output compare. Это первоисточник. А красиво никому не нужно... это не художественная галерея... всем нужно чтобы правильно... как есть... Цитата вскользь тоже упоминается о свободнобегущем 16 битном таймере Что вы ещё за уши притянете??? Это не просто конкретные решения... это правильные решения... =================== Чтобы было понятно о чём речь... нефиг юзать старые замшелые решения прошловековых МК на современных МК... где более развитая периферия и более широкие возможности... Сейчас многие производители тяготеют к хардварным решениям... достаточно глянуть на новые PIC16F16xx от Микрочип... чего там только нет... и это правильно...
Сообщение отредактировал HHIMERA - Jan 18 2016, 15:58
|
|
|
|
|
Jan 18 2016, 16:58
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(HHIMERA @ Jan 18 2016, 19:40)  Чтобы было понятно о чём речь... нефиг юзать старые замшелые решения прошловековых МК на современных МК... где более развитая периферия и более широкие возможности... Сейчас многие производители тяготеют к хардварным решениям... достаточно глянуть на новые PIC16F16xx от Микрочип... чего там только нет... и это правильно... Ну это вы не ко мне, а к производителям МК обращайтесь с указаниями что им юзать. Чтобы было понятно. Я всегда "тяготел" к хардверным решениям и ваши инсинуации отвергаю. Вопрос был как сделать короткую микросекундную задержку, чтобы она была стабильной. Я как "тяготеющий" к хардверным решениям разработчик и предложил читать время из хардвера. У меня есть сильное подозрение, что вы не использовали в своих разработках компаратор. Я прав? И что-то мне подсказывает, что это не замшелые решения виноваты.
|
|
|
|
Сообщений в этой теме
phenixs STM8 как правильно сделать функцию Delay Dec 15 2015, 13:20 jcxz А каким местом STM8 относится к ARM?? Dec 15 2015, 18:08 IgorKossak Перенёс. Dec 15 2015, 19:18 uriy микросекундные задержки я делаю просто бесполезным... Dec 16 2015, 05:43 phenixs Цитата(uriy @ Dec 16 2015, 08:43) микросе... Dec 16 2015, 07:30 _Pasha да. задержки дело мутное.
пришлось на таймерах ... Dec 16 2015, 11:19 phenixs Цитата(_Pasha @ Dec 16 2015, 14:19) да. з... Dec 16 2015, 14:13  scifi Цитата(phenixs @ Dec 16 2015, 17:13) А ка... Dec 16 2015, 14:19   phenixs Цитата(scifi @ Dec 16 2015, 17:19) 1nS - ... Dec 16 2015, 14:26 scifi Когда требуемая задержка приближается по длительно... Dec 16 2015, 14:35 phenixs Цитата(scifi @ Dec 16 2015, 17:35) Когда ... Dec 16 2015, 14:39  scifi Цитата(phenixs @ Dec 16 2015, 17:39) и ин... Dec 16 2015, 14:48   phenixs Цитата(scifi @ Dec 16 2015, 17:48) Видимо... Dec 16 2015, 15:11    scifi Цитата(phenixs @ Dec 16 2015, 18:11) Прим... Dec 16 2015, 20:09    Эдди Цитата(phenixs @ Dec 16 2015, 18:11) Прим... Jan 18 2016, 06:26 Spider В stm8 вообще сложно добиться нужных задержек даже... Dec 17 2015, 14:23 phenixs Цитата(Spider @ Dec 17 2015, 17:23) В stm... Dec 17 2015, 16:50 _Pasha вот я с 1wire на совершенно отфонарном пине сделал... Dec 17 2015, 15:36 HHIMERA Цитата(_Pasha @ Dec 17 2015, 18:36) вот я... Dec 17 2015, 19:34 Tarbal Цитата(phenixs @ Dec 15 2015, 17:20) Кто ... Jan 16 2016, 02:04 uriy ТС нужны микросекундные задержки! С миллисекун... Jan 16 2016, 19:04 Tarbal Тады ой. В реалтайме может не получиться если заде... Jan 16 2016, 19:17 HHIMERA Цитата(Tarbal @ Jan 16 2016, 22:17) я бы ... Jan 16 2016, 20:10  _Pasha Цитата(HHIMERA @ Jan 16 2016, 23:10) Отку... Jan 17 2016, 07:18  Tarbal Цитата(HHIMERA @ Jan 17 2016, 00:10) Если... Jan 17 2016, 14:49   HHIMERA Цитата(Tarbal @ Jan 17 2016, 17:49) Я не ... Jan 17 2016, 17:00    Tarbal Цитата(HHIMERA @ Jan 17 2016, 20:00) Не..... Jan 18 2016, 03:32     HHIMERA Цитата(Tarbal @ Jan 18 2016, 06:32) С кон... Jan 18 2016, 07:24      Эдди Цитата(HHIMERA @ Jan 18 2016, 10:24) Да в... Jan 18 2016, 19:08       HHIMERA Цитата(Эдди @ Jan 18 2016, 23:08) У l-ки,... Jan 18 2016, 19:37        Эдди Цитата(HHIMERA @ Jan 18 2016, 22:37) LCD ... Jan 18 2016, 19:54         HHIMERA Цитата(Эдди @ Jan 18 2016, 23:54) И в ито... Jan 18 2016, 20:07          Эдди Цитата(HHIMERA @ Jan 18 2016, 23:07) Да и... Jan 18 2016, 22:03         jcxz Цитата(Эдди @ Jan 19 2016, 01:54) И в ито... Jan 19 2016, 08:06          Tarbal Цитата(jcxz @ Jan 19 2016, 12:06) при опр... Jan 19 2016, 12:06           jcxz Цитата(Tarbal @ Jan 19 2016, 18:06) Не зн... Jan 19 2016, 14:51            Эдди Цитата(jcxz @ Jan 19 2016, 17:47) процеду... Jan 19 2016, 14:51             HHIMERA Цитата(Эдди @ Jan 19 2016, 18:51) Если ну... Jan 19 2016, 15:13              Эдди Цитата(HHIMERA @ Jan 19 2016, 18:13) Ну п... Jan 19 2016, 15:58             jcxz Цитата(Эдди @ Jan 19 2016, 20:51) Фигасе,... Jan 21 2016, 03:35              Tarbal Цитата(jcxz @ Jan 21 2016, 06:35) Это хор... Jan 21 2016, 13:06               Эдди Цитата(Tarbal @ Jan 21 2016, 16:06) Вы не... Jan 21 2016, 15:05                Tarbal Цитата(Эдди @ Jan 21 2016, 19:05) ++
Жут... Jan 21 2016, 18:33                 Эдди Цитата(Tarbal @ Jan 21 2016, 21:33) Такое... Jan 22 2016, 08:40                  Tarbal Цитата(Эдди @ Jan 22 2016, 12:40) Если на... Jan 22 2016, 19:45               jcxz Цитата(Tarbal @ Jan 21 2016, 19:06) Да у ... Jan 22 2016, 04:39            Tarbal Цитата(jcxz @ Jan 19 2016, 18:51) Вы не п... Jan 19 2016, 15:01          Эдди Цитата(jcxz @ Jan 19 2016, 11:06) В общем... Jan 19 2016, 13:47 HHIMERA Ну и что??? Для микросекунд он всё равно не годитс... Jan 17 2016, 10:19     HHIMERA Цитата(Tarbal @ Jan 18 2016, 20:58) предл... Jan 18 2016, 17:05 Tarbal Верно. Я напрасно теряю время. Jan 18 2016, 17:53
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|