Мне пох!!!a5021 писал(а):будете выглядеть очень прескверно
Я и до этого... код никогда не выкладывал... что с этого???
Мне пох!!!a5021 писал(а):будете выглядеть очень прескверно
Да ничего. Вы сами назначили цену своим словам.HHIMERA писал(а):Я и до этого... код никогда не выкладывал... что с этого???
Мне показалось или в ваших словах прорезались верноподданические нотки ?nahimovv писал(а):Зато свои слова, как "кукареку" у петуха!
_delay_us(x) - это библиотечная функция AVR GCC.Леонид Иванович писал(а):Заодно хочу спросить, а как реализуют обычно функцию Delay_us() для STM32?
Код: Выделить всё
////////////////////////////////////////////////////////////////////////////////
void SysTimerIRQHandler(void)
{
POI_dEventTimerCallBack();
SysTickCount--;
}
////////////////////////////////////////////////////////////////////////////////
void SysTimer_Init(uint32_t SysClock_Hz, float IRQ_Period_sec)
{
uint32_t SysTmPrescaller = (uint32_t)(SysClock_Hz / (1 / IRQ_Period_sec));
SysTick_Config(SysTmPrescaller);
}
////////////////////////////////////////////////////////////////////////////////
int SysTimerTest(int64_t *timers, uint32_t n_timer)
{
if(SysTickCount <= timers[n_timer])
{
return 0;
}
else
{
return 1;
}
}
////////////////////////////////////////////////////////////////////////////////
void SysTimerSet(int64_t *timers, uint32_t n_timer, int32_t value)
{
timers[n_timer] = (SysTickCount - value);
}
////////////////////////////////////////////////////////////////////////////////
void SysDelay(int32_t value)
{
int64_t SysTickDelay = (SysTickCount - value);
while(SysTickCount > SysTickDelay)
{
asm("nop");
}
}
Код: Выделить всё
SysTimer_Init(72000000, 0.001f); //Инициализация (частота_таймера_Гц, период_срабатывания_прерывания_системного_таймера_Сек)
SysDelay(100); //Тупим 100 миллисекунд
................
int64_t timers[2]; //Объявляем нужное нам количество таймеров
SysTimerSet(timers, 0, 100);//Устанавливаем первый таймер на 100 мсек
SysTimerSet(timers, 1, 500);//Устанавливаем второй таймер на 500 мсек
while(1)
{
if(SysTimerTest(timers, 0) != 1)
{
Task_1(); // Первая задача будет выполняться каждые 100 мсек
SysTimerSet(timers, 0, 100);//Перезапускаем таймер
}
if(SysTimerTest(timers, 1) != 1)
{
Task_2(); // Вторая задача будет выполняться каждые 500 мсек
SysTimerSet(timers, 1, 500);//Перезапускаем таймер
}
}
100% !a5021 писал(а): Мне показалось
Интересно, командор, что бы вы сейчас говорили, если бы Георг Ом тоже "код никогда не выкладывал" ?nahimovv писал(а):Это от отсутствия у тебя знаний! Считать не умеешь, закон Ома не знаешь, звездишь бездоказательно!
Вы думаете у адмирала есть пиписька?Ратмир писал(а):Я заметил, что в Мяяяу все темы приходят к одному! Мериться пиписками!
У ардуинщика - мокрощелка!Ратмир писал(а):Мериться пиписками!
Недоумки решили блеснуть своей злобой и отсталостью. Ахтунги, что с них взять!DX168B писал(а):Объясните мне, к чему весь этот срач?
Ещё бы! Можно семисегментники повесить только через резисторы в цепях сегментов, без ключей, а разнояркость разрядов компенсировать через ДМА автоматом. Зашибись! Всё само, голова ни за что не болит. При копеечных ценах на 030-е можно вообще забыть про весь ПИК/АВР хлам.Но в целом - STM32 вполне годные камни и чем-то они мне даже нравятся.
А то! Но сейчас же опять эти недалёкие будут соплями/слюнями брызгать и картины фекалиями рисовать! Художники, мля!Много чего хорошего там есть.
О, какая самокритика... Неужто одумались?nahimovv писал(а): Недоумки решили блеснуть своей злобой и отсталостью..
Это уже диагноз. Живите в своем выдуманном черно-белом мирке, в виде окопа, вне которого вы себя не представляете. Чего с вас взять. Апломба много, ума, увы, мало.Да вы не только ...