Первая система из трех уравнений сводится к уравнению: Vout*G = J
где:
«матрица» проводимостей: G = 1/R1 + 1/R2 + 1/R3
«вектор» узловых токов: J = Vref/R3 + Vin/R1
и сходу результат: Vout = [Vref/R3 + Vin/R1] /[1/R1 + 1/R2 + 1/R3]
по моему это проще чем решать систему с тремя неизвестными.
правильный ответ скорее всего тот что символьный метод насчитал, т.к. подинтегральная функция на интервале интегрирования имеет разрыв, численные методы в этом случае обычно врут
зачем так сложно? можно организовать кольцевой буфер.
Но вы 855 уменьшите, скажем, раз в 10-20 и вот тут уже atmega не успеет читать карту.
SPI можно тактировать до 1/2 от тактовой амеги, т.е. до 8МГц, или 1Мбайт/с. Чую все можно успеть, даже на скорости х20, да и ОЗУ тут не смотрится — лишнее.
Нда, без буффера никак, по сути надо реализовывать задержку в N отсчетов. Чего кстати в последней реализации на си не видно, думаю так будет корректнее:
#define N (4)
int filter(int x)
{
static int m[N];
static int y;
y=y+(x-m[0]);
for (int i=1;i<N;i++) m[i-1]=m[i];
m[N-1]=x;
return y/N;
}
Можно же не считать синусы косинусы в зависимости от угла «на лету», достаточно задать начальные значения для нулевого угла, и две константы — sin(1градус), cos(1градус).
Последующие значения вычисляются по формулам суммы углов синусов и косинусов, в итоге для расчета синуса/косинуса понадобится два умножения и одно сложение.
Первая система из трех уравнений сводится к уравнению: Vout*G = J
где:
«матрица» проводимостей: G = 1/R1 + 1/R2 + 1/R3
«вектор» узловых токов: J = Vref/R3 + Vin/R1
и сходу результат: Vout = [Vref/R3 + Vin/R1] /[1/R1 + 1/R2 + 1/R3]
по моему это проще чем решать систему с тремя неизвестными.
уточнение: если считать через арктангенс — возвращает деление на 0, если через атан2 — то возвращает 0.
вбил в эксель, при t=0 — пишет деление на 0.
правильный ответ скорее всего тот что символьный метод насчитал, т.к. подинтегральная функция на интервале интегрирования имеет разрыв, численные методы в этом случае обычно врут
это как? второе заведение не ВУЗ?
а бывает bga на 2-х слоях?
Скальпель, мгтф и паяльник исправят любую ошибку (на двухслойной пп).
googlemap & osm это хорошо. а есть ли ресурсы с подобными морскими картами?
кхм, а это как?
по мне так в пз хранится не приблизительное а вполне определенное число, кратное 2^m.
зачем так сложно? можно организовать кольцевой буфер.
SPI можно тактировать до 1/2 от тактовой амеги, т.е. до 8МГц, или 1Мбайт/с. Чую все можно успеть, даже на скорости х20, да и ОЗУ тут не смотрится — лишнее.
хм, для консольного варианта можно псевдографикой воспользоваться :)
хм, а тактовая частота кристалла какая? и что за мега? 8,16...?
Да точно, сначала не разглядел.
#define N (4)
int filter(int x)
{
static int m[N];
static int y;
y=y+(x-m[0]);
for (int i=1;i<N;i++) m[i-1]=m[i];
m[N-1]=x;
return y/N;
}
тогда зачем хранить n отсчетов?
Да он жрет много ресурсов, и если без него можно обойтись, нафиг он нужен?
Более того, не вернется в 0 гарантировано, ошибка будет только расти. Выход один — обнуление при проходе значений 90*n градусов.
Последующие значения вычисляются по формулам суммы углов синусов и косинусов, в итоге для расчета синуса/косинуса понадобится два умножения и одно сложение.