24.04.2013, 19:42
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от stmfaq
|
что то не получилось под IAR, ругается , видать есть отличия при объявлении асм вставок
|
Конечно не получится , там же Cosmic .
Переделывал под IAR , но в нем никакой инлайн асм . Задержки менее 1ms творили ересь.
__________________
Осторожно , злой кот
|
|
|
|
24.04.2013, 19:51
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,907
Сказал спасибо: 2,542
Сказали Спасибо 11,818 раз(а) в 5,924 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
задержка отсюда: http://eugenemcu.ru/publ/11-1-0-66
Код:
|
long i;
......
for(i=0;i‹200000;i++)
{
asm("nop");
} |
проверил на платке - около секунды при 16мГц тактовой
|
Без астмы - "пока ›0, декремент", не проверял, но по времени должно быть примерно так же.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
24.04.2013, 19:58
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: FAQ по STM8
IAR, автор, если не ошибаюсь - dosikus
Код:
|
#ifndef DELAY_H
#define DELAY_H
#define F_CPU 16000000UL
#include ‹stdint.h›
#ifndef F_CPU
#error "F_CPU not defined!"
#endif
#define US(x) \
(unsigned int)((((x*(F_CPU/1000000.0))‹=6)*6 + ((x*(F_CPU/1000000.0))›6)*(x*(F_CPU/1000000.0)) - 2)/4)
#define MS_SHORT_MAX ((262140000UL/F_CPU))
#pragma inline //=forced
void delay(uint16_t __cycle_count)
{
__asm("loop: \n"
"decw x \n"
"jrne loop \n"
" nop \n");
}
#define delay_us(x) delay(US(x))
#pragma inline =forced
void delay_ms(uint16_t ms)
{
if(ms ‹ MS_SHORT_MAX)
{
delay(US((uint16_t)ms*1000));
}
else
{
while(ms--) delay(US(999));
}
}
#endif // #ifndef DELAY_H |
попробовал - delay_ms(1000) вроде похоже на секунду, даже ds18b20 c delay_us() работает
Последний раз редактировалось oleg110592; 24.04.2013 в 20:01.
|
|
|
|
24.04.2013, 20:13
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от oleg110592
|
IAR, автор, если не ошибаюсь - dosikus
|
Не совсем так , оригинальная идея и авторство kisona .
Я лишь допилил на IAR.
Минус есть , не инлайнится как в Cosmic .
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 24.04.2013 в 20:16.
|
|
|
|
24.04.2013, 20:58
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от dosikus
|
не инлайнится
|
А что это такое?
|
|
|
|
24.04.2013, 21:09
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
__________________
Осторожно , злой кот
|
|
|
|
24.04.2013, 21:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от dosikus
|
Минус есть , не инлайнится как в Cosmic
|
Инлайнится обычно для скорости, а нафига торопиться в данном случае?
__________________
There's always more than one way to skin a cat.
|
|
|
|
24.04.2013, 21:32
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tempora
|
Инлайнится обычно для скорости, а нафига торопиться в данном случае?
|
Дык все расчеты летят лесом ...
__________________
Осторожно , злой кот
|
|
|
|
24.04.2013, 21:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от dosikus
|
Дык все расчеты летят лесом ...
|
Да какое там "лесом", он же пишет:
Сообщение от stmfaq
|
точность особо не нужна, нужны задержки от 20 до 200 ms
|
При этом, интервалы - в миллисекундах. Пролог/эпилог там - копейки будут означать.
__________________
There's always more than one way to skin a cat.
|
|
|
|
24.04.2013, 21:51
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: FAQ по STM8
tempora, ну это , если хочешь , я для себя выводы сделал.
Да и подобные задержки только начинающим и нужны , на этапе познания сущностей..
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:30.
|
|