
Ruslan
21.11.2016
10:45:10
какой короткий код

Nikolai
21.11.2016
10:46:02
чтоза читерская функция в си cexp(..)?

Dmitry
21.11.2016
10:47:25
Экспонента

Эдуард
21.11.2016
10:47:29
комплексная

Google

Nikolai
21.11.2016
10:47:45
стандартный метод?
там гдето синусы, косинусы должны быть

Suigintou45
21.11.2016
10:48:34
это слишком долго, с синусами и косинусами

Nikolai
21.11.2016
10:48:59
если вынести в массив констант то норм
это не к вопросу производительности. а к вопросу есть ли такой метод?
может он вообще в системе команд оптимизирован
STM32F4 содержат какието команды DSP

Эдуард
21.11.2016
10:53:30
для F4 уже есть либа с FFT, которая использует DSP инструкции
посмотри в поставке CubeF4 (который зип с сайта)

Василий
21.11.2016
12:25:33
там гдето синусы, косинусы должны быть
Там только таблица рассчитанных экспонент, сложение, умножение и перемешивание. Все это хорошо в DSP ложится, как и в расширения систем команд типа MMX, т.е. в однотипные вычисления над векторами типа Multiply-Accumulate.

Дмитрий
21.11.2016
16:19:50
кто-нибудь работал с QN8027? Вроде бы всё по даташиту выставляю, в статусе 0x07 7:4 бита меняются в зависимости от сигнала. По другим битам RDS отключен, режим PA_OFF — не вспомню, что это, в даташите найти не могу снова. Где мог быть косяк?
i2c_send_byte(0b00100010);
i2c_send_byte(0b00000000);
TXREQ включен, частота 102,6МГц, но везде тишина

AzZu
21.11.2016
17:44:07
наконец-то мне программатор для стм приехал!!!
написал хеллоу ворлд

Google

AzZu
21.11.2016
17:44:27
не мегает
не мигает*
вотч дог нужно было отключать?

Дмитрий
21.11.2016
17:45:09
он же дефолтом не включен

LexsZero
21.11.2016
17:45:16
код покажи

AzZu
21.11.2016
17:45:56
int main(void) {
/* SystemInit() ??? ?????????? ? startup_stm32f10x_md_vl.S */
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_GPIO, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED1_PIN | LED2_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( LED_PORT , &GPIO_InitStructure);
LED_PORT->ODR ^= LED2_PIN;
while (1) {
LED_PORT->ODR ^= LED2_PIN;
LED_PORT->ODR ^= LED1_PIN;
Delay(0x7FFFF);
}
так, стоп, это помоему не моя прошивка
точно не моя
а нет, все таки моя. но что то не верится, что это я так писал =/
еще и
void Delay(volatile uint32_t nCount) {
for (; nCount != 0; nCount--);
}откуда то взял.... хм... =/
надо заного короче писать, все забыл что в даташите читал =/

Dmitry
21.11.2016
17:54:24
Какая среда?

AzZu
21.11.2016
17:54:46
Keil 4

Dmitry
21.11.2016
17:55:04
Хм, про кейл хз тогда

AzZu
21.11.2016
17:58:08
мне просто через месяц нужно будет миландровский контроллер осваивать, писать говнокод и в продакшн. А там скорей всего иммено на кеил прийдется, поэтому решил сразу его тут освоить

Человек-Даук
21.11.2016
17:58:34

AzZu
21.11.2016
17:58:51

LexsZero
21.11.2016
17:59:15
вангую импортозамещение или оборонку

Человек-Даук
21.11.2016
17:59:37
или кинетис

Dmitry
21.11.2016
17:59:47
Не в оборонку же

Google

Человек-Даук
21.11.2016
17:59:48
с криптоускорителем на борту

AzZu
21.11.2016
18:00:02

Человек-Даук
21.11.2016
18:00:23
вообще хз
как там с документацией ? примерами ?
код как писать !?

Dmitry
21.11.2016
18:00:53
Если человеку такое интересно - то он больной, либо интерес ему привили паяльником

Человек-Даук
21.11.2016
18:01:18
всмысле все эти компиляторы должны же быть подстроены под переферию МК

AzZu
21.11.2016
18:01:52

Dmitry
21.11.2016
18:02:08

Человек-Даук
21.11.2016
18:02:12

LexsZero
21.11.2016
18:02:15

Дмитрий
21.11.2016
18:02:18
1887ВЕ7

AzZu
21.11.2016
18:02:23

Дмитрий
21.11.2016
18:02:25
вот вам импортозамещение

Человек-Даук
21.11.2016
18:02:48

LexsZero
21.11.2016
18:02:52
tfw люди называют IDE компилятором

Человек-Даук
21.11.2016
18:02:56
или получше ?

AzZu
21.11.2016
18:03:50
ой, вот не надо только соль на рану своими напоминаниями о глупости всего этого говна с импортозамещением

Google

LexsZero
21.11.2016
18:04:02
компилятору глубоко похуям. ядро там обычный кортекс, а адреса регистров периферии все прописываются в хидерах.

AzZu
21.11.2016
18:04:18

LexsZero
21.11.2016
18:04:32

AzZu
21.11.2016
18:04:44

Dmitry
21.11.2016
18:05:01
Тогда и смысла сейчас дрочиться с кортексом нету

LexsZero
21.11.2016
18:05:20
гм, а что?

AzZu
21.11.2016
18:06:03
я вообще плис прогаю, программирование МК только в теории знаю, нужно срочно осваиваться. через месяц уже конкретно начать миландровский осваивать

Человек-Даук
21.11.2016
18:06:20

LexsZero
21.11.2016
18:10:37
хм не знал.адресса в hex типо для
out xxxxx
ну вот открыл попавшийся под руку stm32f10x.h, там такое:
#define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
эти волшебные циферки в даташите прописаны. если наплевать на читабельность, можешь хоть *(uint32_t *)0x4000080C вместо GPIOA->ODR писать

Roman
21.11.2016
18:15:07
ДА, научи как нужно, чтоб потом люди за голову брались

AzZu
21.11.2016
18:15:47
http://milandr.ru/index.php?page=programmnoe-obespech

Dmitry
21.11.2016
18:17:25

LexsZero
21.11.2016
18:17:59

Dmitry
21.11.2016
18:18:21
Я подозревал, что так и устроено, но не особо копал

LexsZero
21.11.2016
18:20:40
я даже видел компилятор под некий хитрый процессор, который паковал битфилды в структурах известным образом и в хидерах камней были все битики прописаны, можно было идиоматично делать что-то в духе FOO->BAR.EN = 1
а не думать про сдвиги и маски

Dmitry
21.11.2016
18:22:28
Хм, емнип, в иаре для AVR фигня типа PORTB.Bit_0 = 1; прокатывала

Человек-Даук
21.11.2016
18:36:57

Dmitry
21.11.2016
18:37:51
__IO == volatile

Google

LexsZero
21.11.2016
18:37:52

Человек-Даук
21.11.2016
18:39:33
volatile же значит для компилятора не трогать оптимизатором ?

Dmitry
21.11.2016
18:40:10
Кстати, а вот как понять, что вообще защищать? Вот gcc для avr вырезает глобальные переменные зачастую, gcc для arm за такой фигнёй не был замечен
Можно просто облепить всё подряд, но хочется не быть идиотом)

Alex
21.11.2016
18:41:37
volatile говорит компилятору не кешировать переменную. он может подумать что она не меняется, и запихать её в кеш

LexsZero
21.11.2016
18:41:40

Dmitry
21.11.2016
18:42:23
Хм, теперь стало яснее, спасибо)

Человек-Даук
21.11.2016
18:43:04
а понял спасибо

Alex
21.11.2016
18:43:17
можешь полистать stm32.chrns.com
недоделал ещё, правда

Человек-Даук
21.11.2016
18:46:02

Alex
21.11.2016
18:47:10
там же написано — вел факультативные занятия для студентов)) меня просто УрФУ подвёл — обещали 20 кроликов, дали 10, осталось 10 наборов. потом появились школьники куда можно было сбыть ещё 6 наборов. как ни странно материал всасывают лучше чем студенты
правда школьники не простые, СУНЦ

Человек-Даук
21.11.2016
18:48:30
а понял
почему так любят стм32 ?
серьезно
так то дофига кортексов

AzZu
21.11.2016
18:49:19